攻防世界29-cat-CTFWeb

ping一下127.0.0.1

image-20241019193525516

信息有限,扫描一下目录,也没找到有效信息,抓包也没发现

输入127.0.0.1 | ls 发现被过滤了一些字符,返回invalid URL

burp,fuzz测试一下(没有好的字典,用的sql的过滤字典),发现有些字符时被过滤了

image-20241019195744392

还没过滤的:

image-20241019195852425

在这里插入图片描述

我们可以输入一些刁钻的字符试试

url=%80时,页面变化,发生报错

拷贝出来做成html

image-20241019201208126

得到的信息时,这个系统无法接吗%80才报错,且这个系统是个django系统

到这其实已经超出了我的知识范围,然后看了大佬们的解题思路,

20190828234335.png

意思是可以用@读取文件内容。结合django的报错得知了项目的绝对路径为/opt/api

django项目下一般有个settings.py文件是设置网站数据库路径(django默认使用的的是sqlites数据库),如果使用的是其它数据库的话settings.py则设置用户名和密码。除此外settings.py还会对项目整体的设置进行定义。

读取settings.py文件,这里需要注意django项目生成时settings.py会存放在以项目目录下再以项目名称命名的文件夹下面。

image-20241019201554053

@/opt/api/database.sqlite3 找到flag

image-20241019201719309

等于掌握一个django的新知识:用@读取文件内容。