The mystery of ip/[CISCN2019 华东南赛区]Web11 关于php下模板注入的思考

93 阅读1分钟

1. 题目:The mystery of ip

拿到题目开始并未发现奇怪的地方,有一个flag.php页面会显示出我的ip,hint.php页面源码下有如下提示

<!-- Do you know why i know your ip? -->

因此猜测可能与ip有关,而常见的ip控制方法我们可以想到利用X-Forwarded-For属性,抓包flag.php页面,构造

X-Forwarded-For:127.0.0.1

查看回显,果然ip发生的变化。
在这里插入图片描述
这里尝试进行sql注入,但是无反应,通过翻阅大佬的wp发现这题目是模板注入ssti。确实是第一次遇见,之前都是python下的模板注入。
存在注入的情况下,可以直接执行php函数,如

{if phpinfo()}{/if}

常规的类似于python的写法也是可以的

{{phpinfo()}}

本题没有别的过滤了,因此直接构造payload读取flag

X-Forwarded-For:{{system('cat /flag')}}

成功获取flag
在这里插入图片描述

2 . 题目:[CISCN2019 华东南赛区]Web11

这题和上一道题基本一样,根据提示构造X-Forwarded-For属性,然后执行命令即可。
想要有更多的了解可以看看这位大佬的博客。
blog.csdn.net/qq_45521281…

3. 模板注入的一些特性

常见的注入可以用下图的方法进行测试。
在这里插入图片描述
在这里插入图片描述