Webgoat挑战刷关:
第一关:
提示:Admin管理员丢失密码
一开始想到爆破,后面发现太蠢了有点。。。万一人家的密码设置的稍微有点复杂,那我这老年机还不跑废了啊。
然后我想着用sql注入的万能密码:
发现也给限制死了,然后我看了一下某位大佬的方法,发现是最上面那个图片有问题,图片隐写,我尝试下载下来看看
果然搜索到了admin账号的密码,然后登录提交flag就行了。
第二关:
提示我们要用Larry登录,但是我们并不知道Larry的密码,先用burpsuite抓包看看
在password处尝试一下密码注入吧,
果然成功了,发现flag,提交!
第三关:
提示我们最好用tom身份登录,这样比larry登录简单一些,但是我们并不知道tom的账户密码。先尝试抓包删除password参数提交,不行;再尝试密码注入,都不行。
旁边还有个注册的模块,我们尝试注册一下:
发现注册的用户并不能登录,我们尝试一下注册tom
我们发现tom这个用户是存在的,并且不能再重新注册,直接丢sqlmap里面去看看有没有注入
发现有三种注入,我们选择布尔盲注,先用bp抓包
构造payload,然后发现tomqw’ and length(password)=1–返回值为真,那么说明存在password字段,那么大概率这个字段也是用来存储密码的。
紧接着我们手工盲注找回显的差别:
发现当查看password第一个字符时,如果存在就返回already exist,如果不存在就会创建,
所以我们接下来用爆破
然后添加个区别的字符
然后开始爆破
发现确实出现密码了,整理一下字符,发现密码是thisisasecretfortomonly,然后登录,提交flag!