【攻防世界】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_@}

 

posted @ 2025-05-02 20:50  Antoniiiia  阅读(122)  评论(0)    收藏  举报