考点:
①python ssti
点进去看到url是index.php,页面上有一张图片,蛇和象。我们都知道蛇代表php,大象代表python,猜测有关php+python的题
点击login和register,发现都报错。F12又发现了flag文件存放的位置,接下来就是考虑何如读取到该文件。/opt/flag_1de36dff62a3a54ecfbc6e1fd2ef0ad1.txt

寻找别的信息,看看有没有robots.txt,发现没有该文件,御剑扫描也没扫出什么有用的信息。
ctf中出有关python的题型很大一部分是ssti,于是就尝试模板注入,发下确实存在ssti漏洞,这下就有思路来读取flag文件了。
发现模板引擎把{
{7*‘7’}}解析成了7777777,所以判断是jinja2引擎,flask模板用的是jinja2引擎。
python ssti注入常见payload思路:

常用到的几个魔术方法
__class__() 返回对象的类

博客介绍了CTF中的一道关于Python SSTI的题目,通过分析URL、页面元素和错误信息,确定存在PHP+Python的相关问题。在尝试模板注入后,发现是Jinja2引擎的SSTI漏洞。由于特定魔术方法被过滤,作者使用Flask模板特有的变量和函数构造payload,成功读取到flag文件,获取到flag:cyberpeace{0de0dfff880018a7c6a1ddc4ed427193}。
最低0.47元/天 解锁文章
3457

被折叠的 条评论
为什么被折叠?



