目录

第2页

第3页

第4页

第6页


第2页

这一页是讲base64编码和Basic Authentication的

简单来说Basic Authentication中使用了base64编码,以本页的题目举例,如果有个HTTP头长这样

Authorization: Basic ZmFuY3llbGU6c2VjcmV0

那这个网站就是用了Basic Authentication,并且ZmFuY3llbGU6c2VjcmV0就是base64编码的用户名和密码,格式是 用户名:密码

网上随便找个base64解码器解码,或者用burpsuite的decoder模块也可以。

比如下图用的是burpsuite的decoder模块,在上面的框框中输入base64编码,右边点击decode as,然后选base64,就解码啦

结果是 fancyele:secret

根据之前说的格式,用户名是fancyele,密码是secret

过关啦

第3页

这一页简单介绍了其他几种编码,包括XOR

其实我有点疑惑为啥XOR算编码不算加密,毕竟人家也是要密钥的。。

而且题目可难住我了。。无语。。只告诉了编码后的密码是 {xor}Oz4rPj0+LDovPiwsKDAtOw==,也不说密钥是什么,在网上找XOR解码器都是要输入密钥的,没有密钥怎么玩啊

然后我灵机一动,看到上面介绍的 IBM WebSphere Application Server 默认用xor编码保存密码,和题目一联系,似乎可以直接搜索“WebSphere解码”,“WebSphere password”之类的,倒是能找到一个,但是不好使。。

万念俱灰之下,我只能直接搜索WebGoat Crypto Basics。。中文的没搜到,但是好歹搜到个日文的。。感谢伟大的google翻译

这篇日文的通关说明(https://guri6cerin.hatenablog.com/entry/2020/09/18/WebGoat5%3A_Crypto_Basics)里面给了一个网站(http://www.poweredbywebsphere.com/decoder.html),确实可以解码WebSphere password

第4页

本页讲的是散列算法,本页的两题都用下面这个在线破解工具进行破解,破解的时候类型选自动就可以

https://cmd5.com/

注意,应该是每次登录的散列都不同,中间要是退出了webgoat,估计要再重新破解一下。

第一题在上述网页破解一下:

第二题在上述网页破解一下:

过关啦~

第6页

我的天,这页的题目搞得我累死了,终于搞出来了。。

而且我刚发现题目名称下面有个show hints的按钮,可以给一些关于答题的提示

这页第一个框要填公钥的模,第二个框要填对模的签名。

但其实公钥和私钥的模是一样的,所以这页其实并不需要先得到公钥,直接用私钥求模,再用私钥把模签名就好了。

先来求模:

用下面这个openssl命令,openssl工具kali linux上是预安装的,直接用就好。

$ openssl rsa -in test.key -modulus

test.key是一个文件,里面是本页题目中给出的私钥,内容如下:

-----BEGIN PRIVATE KEY----- MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCrwtG3vMddDbYYI36EETM21NMH1dUTLJGISfxiOsfU57v7DNqtKsTjvjfJW+LljHPGKGDkKaBVtPDDapSXZ5Fp64+wpCJVEO6dncwt23SISWclmRba/R8sgEACSXfa6OFdzgdcPqrCaeBnAejgKnIKI5QhP97wpadXgtclkNywcPR6qf7bsITtrTTHYjc1U5MIWveF0n4oAVqO14LMyFjayml66xw/9mu3SoHo5uyrbx+3Mla95AoGjRRneGVMLPB+9grBkkjOZN1MuyHi4dWmohd7RxoRYc7E/BTS3pxHKIuZfayIBcmWR+Hddh/vh3eyXE53YKHeTIqp5OswTy83AgMBAAECggEAB3Qg3bRXgnZB3LJNnzWP32VE8yYYZQieGCf9x9V9LoQP6EkahEFC4g8zJI3UPtnlfEfsTHpx9sYvXIuXfyqDaPFL/wJgawidEkHyxlqrp+5nh34pO7+YRroaDP9bMCjC/usd7qbZii5GCrJOhMvSvxXkK70104Ocy3NmGr86lH2AI9mmCdT9u9PzpXaPo2WR3LbYgpCzCAvtT5jN/J3dQb/6ok2SZNK2sFJhdvcFcZcOf6XQV9Jdher2sQLPINMn/Zt+djjuDrjjnj1l+3Ix6vrwu6DIaVoGfmK/9hfCctbxwreNRuWL4QkPalV48RILUtvGdAOf1GgEK9/ZQwZjIQKBgQDd++UMRcqPy2LJz9dNikp8v0mQTUOe/gogdqUuJhH+YLZbAQPGHni0uw6Qevd/wi2XHBkXiIfuWjO2CPNKosfVH2SCUWgxXJcZEmVm03aAFE+8ujMr3rB9oCNAi6OvJswOfEDxvVrludD3UpH9Yq2E4wbZM8IMk/DXNtaSEUKy/QKBgQDGFMB0+QBH34dQjjUex7szmryuBmbDAyxkn79UhfXqLI4UwHTGnOQDw5vq08mVLrOp2QALNo5lGWb+9ONtJcTO+P+0NePa/IUvPjQ5uVmRmF2KxUMYIekjvWYeu+ndaPeecywq6Kh62jg5zzjQOn1g5+YVJehopAas+m92BvTjQwKBgQC5tf8NoWWxnwnqpIMPT965Np8opjsoTIfUWO4gCaGMGwT0ZYjuupdpPAUXQojEzYKupMcpNQPjmHsik6JWkpBz8Gt5yvlMMpYGV6mVuNuuk0+SKISe8xLcRpi3axtpcR/ODo2WsD/XaPk1sFKKlX9taTFVjUOOmkYnBq3ETcRrUQKBgQCxqVk5UUCkNmPqp7ITaneIgIgs2kb/MHB3zCRSzlhT8iR5jmju3zdP/PlytQSADsRMWfrFE+jB2vfbQ5BcjFyqewD2BMPa3VUjm3pCL/GbOfrkhat5EKlISg83D7phwU0fTBPYZJcAoYt+plNByMQ9z6E5ZKfAeyYVrgWc6f5pewKBgQCk9TQJLErzyC0N+4aoShHLjIn6RZzlzKY9XumAuVsqLhsb3MmzQtiz6KgBxIaNrN0mdSz0jxuWxgNI/tLuRaFPZhyY+UIgTeZ0j36D3PRhb40yZ1Zymj8lICvAjcw1DcqsG8CHjy9nJ2sGgxTq1hl6BFaPkzS2dG5E3ZIW81Vdng== -----END PRIVATE KEY-----

得到的结果如下:

Modulus=ABC2D1B7BCC75D0DB618237E84113336D4D307D5D5132C918849FC623AC7D4E7BBFB0CDAAD2AC4E3BE37C95BE2E58C73C62860E429A055B4F0C36A9497679169EB8FB0A4225510EE9D9DCC2DDB74884967259916DAFD1F2C8040024977DAE8E15DCE075C3EAAC269E06701E8E02A720A2394213FDEF0A5A75782D72590DCB070F47AA9FEDBB084EDAD34C76237355393085AF785D27E28015A8ED782CCC858DACA697AEB1C3FF66BB74A81E8E6ECAB6F1FB73256BDE40A068D146778654C2CF07EF60AC19248CE64DD4CBB21E2E1D5A6A2177B471A1161CEC4FC14D2DE9C47288B997DAC8805C99647E1DD761FEF8777B25C4E7760A1DE4C8AA9E4EB304F2F37
writing RSA key
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEAq8LRt7zHXQ22GCN+hBEzNtTTB9XVEyyRiEn8YjrH1Oe7+wza
rSrE4743yVvi5Yxzxihg5CmgVbTww2qUl2eRaeuPsKQiVRDunZ3MLdt0iElnJZkW
2v0fLIBAAkl32ujhXc4HXD6qwmngZwHo4CpyCiOUIT/e8KWnV4LXJZDcsHD0eqn+
27CE7a00x2I3NVOTCFr3hdJ+KAFajteCzMhY2sppeuscP/Zrt0qB6Obsq28ftzJW
veQKBo0UZ3hlTCzwfvYKwZJIzmTdTLsh4uHVpqIXe0caEWHOxPwU0t6cRyiLmX2s
iAXJlkfh3XYf74d3slxOd2Ch3kyKqeTrME8vNwIDAQABAoIBAAd0IN20V4J2Qdyy
TZ81j99lRPMmGGUInhgn/cfVfS6ED+hJGoRBQuIPMySN1D7Z5XxH7Ex6cfbGL1yL
l38qg2jxS/8CYGsInRJB8sZaq6fuZ4d+KTu/mEa6Ggz/WzAowv7rHe6m2YouRgqy
ToTL0r8V5Cu9NdODnMtzZhq/OpR9gCPZpgnU/bvT86V2j6Nlkdy22IKQswgL7U+Y
zfyd3UG/+qJNkmTStrBSYXb3BXGXDn+l0FfSXYXq9rECzyDTJ/2bfnY47g644549
ZftyMer68LugyGlaBn5iv/YXwnLW8cK3jUbli+EJD2pVePESC1LbxnQDn9RoBCvf
2UMGYyECgYEA3fvlDEXKj8tiyc/XTYpKfL9JkE1Dnv4KIHalLiYR/mC2WwEDxh54
tLsOkHr3f8ItlxwZF4iH7loztgjzSqLH1R9kglFoMVyXGRJlZtN2gBRPvLozK96w
faAjQIujrybMDnxA8b1a5bnQ91KR/WKthOMG2TPCDJPw1zbWkhFCsv0CgYEAxhTA
dPkAR9+HUI41Hse7M5q8rgZmwwMsZJ+/VIX16iyOFMB0xpzkA8Ob6tPJlS6zqdkA
CzaOZRlm/vTjbSXEzvj/tDXj2vyFLz40OblZkZhdisVDGCHpI71mHrvp3Wj3nnMs
Kuioeto4Oc840Dp9YOfmFSXoaKQGrPpvdgb040MCgYEAubX/DaFlsZ8J6qSDD0/e
uTafKKY7KEyH1FjuIAmhjBsE9GWI7rqXaTwFF0KIxM2CrqTHKTUD45h7IpOiVpKQ
c/Brecr5TDKWBleplbjbrpNPkiiEnvMS3EaYt2sbaXEfzg6NlrA/12j5NbBSipV/
bWkxVY1DjppGJwatxE3Ea1ECgYEAsalZOVFApDZj6qeyE2p3iICILNpG/zBwd8wk
Us5YU/IkeY5o7t83T/z5crUEgA7ETFn6xRPowdr320OQXIxcqnsA9gTD2t1VI5t6
Qi/xmzn65IWreRCpSEoPNw+6YcFNH0wT2GSXAKGLfqZTQcjEPc+hOWSnwHsmFa4F
nOn+aXsCgYEApPU0CSxK88gtDfuGqEoRy4yJ+kWc5cymPV7pgLlbKi4bG9zJs0LY
s+ioAcSGjazdJnUs9I8blsYDSP7S7kWhT2YcmPlCIE3mdI9+g9z0YW+NMmdWcpo/
JSArwI3MNQ3KrBvAh48vZydrBoMU6tYZegRWj5M0tnRuRN2SFvNVXZ4=
-----END RSA PRIVATE KEY-----

模就是“Modulus=”之后,“writing RSA key”之前的那串十六进制字符。把这串字符复制粘贴到第一个框。

下面来取得模的签名:

用下面这个命令,其中echo的-n参数表示不输出末尾的换行符,双引号中的内容是上一步中得到的模。

$ echo -n "ABC2D1B7BCC75D0DB618237E84113336D4D307D5D5132C918849FC623AC7D4E7BBFB0CDAAD2AC4E3BE37C95BE2E58C73C62860E429A055B4F0C36A9497679169EB8FB0A4225510EE9D9DCC2DDB74884967259916DAFD1F2C8040024977DAE8E15DCE075C3EAAC269E06701E8E02A720A2394213FDEF0A5A75782D72590DCB070F47AA9FEDBB084EDAD34C76237355393085AF785D27E28015A8ED782CCC858DACA697AEB1C3FF66BB74A81E8E6ECAB6F1FB73256BDE40A068D146778654C2CF07EF60AC19248CE64DD4CBB21E2E1D5A6A2177B471A1161CEC4FC14D2DE9C47288B997DAC8805C99647E1DD761FEF8777B25C4E7760A1DE4C8AA9E4EB304F2F37" | openssl dgst -sign test.key -sha256 | base64

得到的结果如下:

TL9DuXgho/8yL2l7iyb2Sk0td25Ai5B9+074ABVaHz3uByb+ZKdbujjUmRxLJ+Lvb6CztlNXsWQc
Z+mF1S/3/Uv26VU1/NqFE7LISOFtt1AEnqswuX6k3YTJClHi07cFTlybhYlTAJdrJY90ewwCaAyN
IiD9Sh70XG4zV4yW+aCJFTMPFeMJEkMuS6/u154YLPEEBVNdrry3c9UIlLfpdaKhEFkr6gSKM6P/
kfVMo1KtTpDH3O8MVaPnJ2mrJUFLJt02RoOrR+tRP9OsDY1cku4OUQtAnDjVytCwDk42PePb4cb/
0wuWI6sMmFE8JP8hLRlnw1bn2R9CpiWyClj4Ig==

然后我直接把这段结果贴到第二个框里面,提交之后回显提示签名与模不匹配,我就在这边卡了好久。。。

直到我想到一个办法,通过chrome的开发者工具看报错信息:

这个叫verify的http报文的response中提示base64字符(20\n\t)不合法,我一想,哎呀,估计是因为换行了。。。

再看header,请求正文的form data中signature果然由很多空格

所以后来我把上述base64编码的签名结果先复制到文本编辑器中,去掉换行,然后再粘贴到第二个框框,提交,就通过了。

注意,这题也是每次登录题目中的私钥都不一样,一定要自己走一遍。

还剩个第8页,需要在安装环境上启动docker容器,并在容器里面操作。由于我目前是用的在线靶机,所以暂时玩不了了,这题好像还挺有意思,等之后自己安装好webgoat再补吧。。

WebGoat General Crypto Basics相关推荐

  1. 再战WebGoat之代码审计

    声明 好好学习,天天向上 回想首次接触webgoat已是两年前,当时可能连漏洞原理都不是很明白就开始上手靶场了,也是搜了很多文章,还用的word的方式写的草稿,惭愧惭愧.webgoat一直是我心中高质 ...

  2. WebGoat通关攻略

    目录 前言 一.环境配置 1.Docker配置 2.WebGoat获取 3.WebGoat连接 二.通关攻略(建设中) 1.Introduction 1)WebGoat 2)WebWolf 2.Gen ...

  3. WebGoat v8.0打靶笔记

    目录 一.环境的配置 (1)安装docker (2)WebGoat获取 (3)burp suite的配置 二.Introduction 三.General (1)HTTP Basics (2)HTTP ...

  4. webgoat全关教程手册

    Webgoat&Webwolf owaspbwa里面的两个服务 搭建 先要安装jdk.Webgoat和Webwolf Webgoat和Webwolf jdk1.8不支持了,需要安装jdk11 ...

  5. WebGoat靶场搭建及通关记录(一)

    文章目录 前言 一.搭建靶场 二.通关攻略 1.General HTTP Basics HTTP Proxies 2.Injection Flaws SQL Injection (advanced) ...

  6. WebGoat-8.2.2版靶机学习总结

    摘要:本文档介绍了WebGoat靶机平台在Windows10系统下的使用.其操作过程均在一台主机上完成.该平台涉及的训练项目有http代理.数据库注入.身份校验缺陷.XSS.访问控制缺陷.通信拦截.序 ...

  7. 2017-2018 Exp9 网络欺诈技术防范 20155214

    目录 Exp9 网络欺诈技术防范 实验内容 Webgoat General Access Control Flaws Crossing-Site Scripting Injection Flaws 知 ...

  8. 离开互联网行业_如何使用互联网再也不会离开家

    离开互联网行业 Thanks to the Internet, activities like "going outside" or "being a productiv ...

  9. 【CTF WriteUp】UTCTF 2020部分题解

    看大佬们不屑于写这种比赛的WP,那就我这个菜鸡来献丑了 Crypto [basics] crypto 先把1和0转成ascii Uh-oh, looks like we have another bl ...

最新文章

  1. 12种高效率热门编程语言,你会用几个?
  2. jquery queue ajax,如何通过jQuery和Queue发送ajax请求?
  3. php 取出多重数组中的一列_PHP获取数组中指定的一列实例
  4. 母版中menu控件上传后出现脚本错误
  5. Python随机选择一部分训练样本作为测试样本
  6. ZOJ Problem Set - 1009
  7. oracle 参数脚本,oracle 查看隐含参数脚本
  8. 组合数学+gcd BZOJ3505 [Cqoi2014]数三角形
  9. 2015 Objective-C 新特性
  10. 服务提供者框架讲解 之 myJDBC
  11. 9,求整数的二进制中1的个数《剑指offer》
  12. Android源码打patch
  13. 计算机无法安装cad怎么办,AutoCAD2014安装失败显示某些产品无法安装怎么办
  14. redis-trib.rb 下载
  15. 7、杂项:蓝牙beacon简述
  16. std::cunction() 简单描述
  17. 如何自学入门网络安全?
  18. Failure to find xxx:jar:0.0.1 in https://repo.maven.apache.org/maven2 was cached in the local re
  19. win10 可以复制但无法粘贴的问题
  20. java 月份缩写_关于java:如何将日期字符串解析为Date?

热门文章

  1. zabbix告警页面sql语句
  2. 详解:阿里邮箱_阿里企业邮箱_阿里邮箱企业版
  3. 错误: 未能完成程序集的安装(hr = 0x8007000b)。探测终止。
  4. c++删除文件中的空行
  5. java headless_Headless模式
  6. 【CSP 2019】格雷码
  7. 背光补偿和宽动态应该在什么情况下用
  8. 【SSL】2291分组背包
  9. 走出流量狂欢,电商直播成为农产品新的带货工具
  10. heapster部署遇到错误