知识点:intval特性 ’==‘ linux绕过空格
进题目一串乱码,但有个bot,而网页中带bot,robots.txt
进robots.txt
进入fAke。。。
进入fl4g.php可以看到三层过滤。
1、第一层:要使得intval($num) < 2020 && intval($num + 1) > 2021
在做之前先看个东西,这两张图说明了,intval会解析科学计数法,且当解析字符串时会保留第一个字符前的数字。
那么这层可以传个num=1e10;
原因:
$num = $_GET[‘num’];传入这边时是字符串,所以intval($num) == 1;
intval($num + 1);这边时虽然传入的还是字符串但和一相加时会转化为int类型;
2、第二层:$md5==md5($md5)
同理先回顾一下==,字符和数字相比时字符为0,若字符前有数字则会保留数字,当然也能比较科学计数;
所以这层只要使得md5加密前后开头有个0e就行了,毕竟0的n次方为0;
md5=0e215962017
3、第三层:不能有空格,且把cat替换为wctf2020
ls
虽然它过滤了空格和cat,但可以用<和tac代替;
?num=1e10&md5=0e215962017&get_flag=tac<fllllllllllllllllllllllllllllllllllllllllaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaag