抓住那只猫….emmm
命令的cat?
题目的场景都一模一样……
不会和之前攻防世界那个执行命令一样吧,先试试:127.0.0.1。
回显:
命令执行!试试127.0.0.1&&Is
回显:
非常尴尬的无效。
那就得换个思路了:仔细观察
上面?url=xxxxxx;是一个Get传值;并且符号转成了url编码。
符号……会不会过滤了某些东西。
试试
这时候用字典跑一下:
453
的回显都是没有被过滤的字符…..输入到上面的url编码地区看看:
在输入框里输入:
输入@被转成了url编码的%40
输入/被转成了url编码的%2F
试一试%80这个临界值(可能存在宽字节注入)
了解一下宽字节注入:https://www.jianshu.com/p/4fe931da9550
这….算啥;出来一个html的界面……这是一星题 我太菜了
既然是个html的代码,另存为一个html文件打开它
打开得到:
又是啥玩意哟….难受
参考大佬WP
发现python目录为:/opt/api,并且Django的gbk编码导致错误编码宽字符。
这是啥玩意?!
百度百度
所以呢?!太菜了太菜了。
![](https://cdn.nlark.com/yuque/0/2019/png/573149/1575553758598-79e8340d-25f0-4c00-a869-b8416f2ad92c.png)
意思是可以用@读取文件内容。结合django的报错得知了项目的绝对路径为/opt/api
对哦,刚刚没有被过滤
所有构造URL:@/opt/api/api/settings.py
我吐了….又是html,再来一次。
再打开:从茫茫大海中竟然能找得到(比赛时候又要做不出了)
数据库的路径??
再用@试试:URL=@/opt/api/database.sqlite3
你不吐我都吐了…..
我日你哥!!!
WHCTF{yooooSuch_A_G00D@}