【攻防世界】Cat
进入题目,要求输入域名,输了它举例的域名、百度的域名都没有任何回显

输入127.0.0.1

发现执行成功,第一反应是直接拼接命令,但是很多字符都被过滤了

尝试用 Burp 爆破出没有被过滤的字符(长度为464的被过滤了,453无回显,但说明没有被过滤),字典来自:sqli注入fuzz字典---waf fuzz测试,ctf_fuzz waf的字典-CSDN博客


响应了一大段代码,是html格式的,复制下来打开

发现是一个 Django 框架的错误追踪(traceback)页面(认不出的尽管交给ai)

拉到最下面看到一行小字:You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code.
他提到 in your Django settings file!有可能flag文件在 settings file 中,去settings中找
路径名都是 /opt/api 开头,看到这个路径名有 database ,flag的味道~

尝试直接访问,失败

我们前面爆破出了@未被过滤
而php中可以通过@+完整路径来读取文件
于是构造出如下payload:
?url=@/opt/api/database.sqlite3
还是给出一大串html的报错代码,不过可以在里面查找到flag:
WHCTF{yoooo_Such_A_G00D_@}


浙公网安备 33010602011771号