WebGoat General Crypto Basics
目录
第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相关推荐
- 再战WebGoat之代码审计
声明 好好学习,天天向上 回想首次接触webgoat已是两年前,当时可能连漏洞原理都不是很明白就开始上手靶场了,也是搜了很多文章,还用的word的方式写的草稿,惭愧惭愧.webgoat一直是我心中高质 ...
- WebGoat通关攻略
目录 前言 一.环境配置 1.Docker配置 2.WebGoat获取 3.WebGoat连接 二.通关攻略(建设中) 1.Introduction 1)WebGoat 2)WebWolf 2.Gen ...
- WebGoat v8.0打靶笔记
目录 一.环境的配置 (1)安装docker (2)WebGoat获取 (3)burp suite的配置 二.Introduction 三.General (1)HTTP Basics (2)HTTP ...
- webgoat全关教程手册
Webgoat&Webwolf owaspbwa里面的两个服务 搭建 先要安装jdk.Webgoat和Webwolf Webgoat和Webwolf jdk1.8不支持了,需要安装jdk11 ...
- WebGoat靶场搭建及通关记录(一)
文章目录 前言 一.搭建靶场 二.通关攻略 1.General HTTP Basics HTTP Proxies 2.Injection Flaws SQL Injection (advanced) ...
- WebGoat-8.2.2版靶机学习总结
摘要:本文档介绍了WebGoat靶机平台在Windows10系统下的使用.其操作过程均在一台主机上完成.该平台涉及的训练项目有http代理.数据库注入.身份校验缺陷.XSS.访问控制缺陷.通信拦截.序 ...
- 2017-2018 Exp9 网络欺诈技术防范 20155214
目录 Exp9 网络欺诈技术防范 实验内容 Webgoat General Access Control Flaws Crossing-Site Scripting Injection Flaws 知 ...
- 离开互联网行业_如何使用互联网再也不会离开家
离开互联网行业 Thanks to the Internet, activities like "going outside" or "being a productiv ...
- 【CTF WriteUp】UTCTF 2020部分题解
看大佬们不屑于写这种比赛的WP,那就我这个菜鸡来献丑了 Crypto [basics] crypto 先把1和0转成ascii Uh-oh, looks like we have another bl ...
最新文章
- 12种高效率热门编程语言,你会用几个?
- jquery queue ajax,如何通过jQuery和Queue发送ajax请求?
- php 取出多重数组中的一列_PHP获取数组中指定的一列实例
- 母版中menu控件上传后出现脚本错误
- Python随机选择一部分训练样本作为测试样本
- ZOJ Problem Set - 1009
- oracle 参数脚本,oracle 查看隐含参数脚本
- 组合数学+gcd BZOJ3505 [Cqoi2014]数三角形
- 2015 Objective-C 新特性
- 服务提供者框架讲解 之 myJDBC
- 9,求整数的二进制中1的个数《剑指offer》
- Android源码打patch
- 计算机无法安装cad怎么办,AutoCAD2014安装失败显示某些产品无法安装怎么办
- redis-trib.rb 下载
- 7、杂项:蓝牙beacon简述
- std::cunction() 简单描述
- 如何自学入门网络安全?
- Failure to find xxx:jar:0.0.1 in https://repo.maven.apache.org/maven2 was cached in the local re
- win10 可以复制但无法粘贴的问题
- java 月份缩写_关于java:如何将日期字符串解析为Date?