CISCN2019华东南赛区_Web11

发布于 2021-08-06  65 次阅读


image-20210715101150748

打开题目是这样的一个界面,可以发现三处关键信息:

  1. 上面记录了我们的IP
  2. 中间给了XFF请求头(这个对于我这种菜鸡来说,可真是太懂了)
  3. 最下面给了网站搭建使用Smarty

不懂什么是Smarty?

Smarty是一个使用PHP写出来的模板引擎,是业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。

这不一下子思路就清晰起来了,纯纯PHP的SSTI嘛,注入点纯纯XFF请求头!

PHP的SSTI利用方式也非常的简单,利用if标签即可命令执行

Smarty的{if}条件判断和PHP的if 非常相似,只是增加了一些特性。每个{if}必须有一个配对的{/if}. 也可以使用{else} 和 {elseif}. 全部的PHP条件表达式和函数都可以在if内使用,如*||*, or, &&, and, is_array(), 等等

按照这个思路,继续进行题目

image-20210715103603769

抓包添加XFF头,IP发生变化,证明我们的第一个猜想是正确的,XFF是我们的可控变量。

image-20210715103903553

使用模板语法,执行phpinfo() 成功了,证明所有猜想都是正确的。

image-20210715104242250

成功得到FlAG