cat

[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文件上传,但需要以@开头。

cat

1
?url=@/opt/api/database.sqlite3

然后在报错也没搜索CTF得到flag。