攻防世界wp-Cat

发布于 2022-04-26  194 次阅读


访问题目环境

1.1信息搜集

Servernginx/1.10.3 (Ubuntu)

在输入框输入提示的域名loli.club发现没有响应,观察url

发现是get传参,在输入框中输入的数据会以get传参形式上传

当输入127.0.0.1本地回环地址时,出现回显信息,说明此输入框功能跟shell差不多。

尝试使用管道进行命令执行,输入 127.0.0.1 | ls,然而得到的回显是Invalid URL,127.0.0.1 | phpinfo 的执行结果也是 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

查看报错信息可以发现是一个python站,并且使用Django 框架

1.2解题

在比赛的时候有个提示:
RTFM of PHP CURL===>>read the fuck manul of PHP CURL???
是关于 php curl 的,然而最为菜鸡我当然还是不会的,看大佬们的操作是找到
了一个解题点:

并且在报错信息中找到datebase路径

payload:?url=@/opt/api/database.sqlite3

在回显中搜搜CTF或者flag等关键字

得到Flag: WHCTF{yoooo_Such_A_G00D_@}


我从未觉得繁琐,说浪漫些,我很爱你。