[src = 攻防世界] cat
题目描述
WP
首先按照题目要求,输入一个任意域名,发现没有反应,输入一个IP地址,显示了PING命令对结果。初步考虑命令执行。
输入“127.0.0.1|ls”,提示“Invalid URL”,看来增加了过滤,直接执行命令不可行。
在URL的传参处?url=这里,我们传递个%79发现传递之后变成了?url=w,看来是可以传递url编码,系统会接受并进行解析,于是我们传递%80会出现报错,url编码使用的是16进制,80也就是128,ASCII码是从0-127,所以这个时候会报错。url编码表可以参考http://www.w3school.com.cn/tags/html_ref_urlencode.html
在报错信息里面发现这个应用的整体架构:我们给php发出请求,php把请求发送给本地部署的django,然后得到结果。而且从报错页面发现了database信息:/opt/api/database.sqlite3
由于django本地部署,而且php使用的cURL组件,所以这里,我们使用前面讲的php的cURL文件上传,但需要以@开头。
1 | ?url=@/opt/api/database.sqlite3 |
然后在报错也没搜索CTF得到flag。