进入题目,发现有两个框,一个提示填写url地址,一个是叫填写验证码,然后题目提示是考ssrf漏洞
然后先右键查看源代码有没有其他发现
发现有个hint提示说靶机不能访问内网,所以盲猜url会是请求本地地址127.0.0.1,但是你填127.0.0.1和正确验证码它会重新刷新页面然后再显示出一个同样的两个框框
先讲讲验证码怎么解吧,captcha是会变的 ,刷新一次变一次
Captcha: substr(md5(captcha), -6, 6) == "bbaddc"
取captcha这个变量的md5值然后取后面的的六位来判断是否等于bbaddc
<?php
$captcha=0;
while(true)
{
if(substr(md5($captcha), -6, 6) == "bbaddc") //bbaddc会变
{
echo $captcha;
break;
}
$captcha++;
}
?>
运行就可得验证码
然后根据提示,不出网,然后url传本地也不行
那就试试php伪协议吧
file://协议,作用是用于访问本地文件系统,用file://来读取文件看看
先看操作系统再来判断要去读的文件,是linux系统
那就读/etc/passwd看看效果
读/flag看看行不行
返回hacker,说明有过滤
思考一下,这个url那里提交的file:///flag可能拼接到url后面当参数提交,那我们试试url编码提交看看
拿到flag
官方答案不一样,大家有兴趣的自行了解