当前位置:网站首页>[CISCN2019 华东南赛区]Web11
[CISCN2019 华东南赛区]Web11
2022-08-05 03:52:00 【pakho_C】
[CISCN2019 华东南赛区]Web11
头一次见smarty ssti的题
smart ssti:
smart是php的模板引擎,模板引擎的作用就是分离前端页面和数据的,题目中显示API的URL由于环境的原因无法使用,但我们的IP依旧显示在了页面的右上角,且根据它的提示XFF我们很容易想到,在X-Forwarded-For里构造ssti:payload。
又祭出这张图了:
根据页面的提示,很可能要在XFF头中构造:
测试:
确实存在smarty ssti
看了另一位师傅的wp:
Smarty支持使用{php}{/php}标签来执行被包裹其中的php指令,那么我们可以使用{php}{/php}标签来构造payload,但是本题会报错
因为现在的smart已经不用此标签了。
可以用{$smarty.version}来看一下版本。
测试了一下,的确如此
这个版本已经不支持php标签了
虽然php标签不能用,但是还有个{if}标签。 Smarty的{if}条件判断和PHP的if
非常相似,只是增加了一些特性。每个{if}必须有一个配对的{/if}. 也可以使用{else} 和 {elseif}.
全部的PHP条件表达式和函数都可以在if内使用,如*||*,or,&&,and,is_array(), 等等既然全部的PHP条件表达式和函数都可以在if内使用,那我们在里面写php代码也行。 {if phpinfo()}{/if}
执行 {if phpinfo()}{/if}尝试
成功回显
直接执行命令:{if system('cat /flag')}{/if}
原理介绍,参考另一位师傅的wp里的:
<?php
require_once('./smarty/libs/' . 'Smarty.class.php');
$smarty = new Smarty();
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
//获取XFF
$smarty->display("string:".$ip);
//此处并不是以smart模板格式,而是以字符串形式,所以会解析我们的标签,也就是if,解析后把内容回显到页面上的相应位置
}
边栏推荐
- 用CH341A烧录外挂Flash (W25Q16JV)
- UE4 通过重叠事件开启门
- burp安装及代理设置
- Acid (ACID) Base (BASE) Principles for Database Design
- [Solved] Unity Coroutine coroutine is not executed effectively
- The second council meeting of the Dragon Lizard Community was successfully held!Director general election, 4 special consultants joined
- UE4 第一人称角色模板 添加蹲伏功能
- 达梦8数据库导出导入
- 队列题目:最近的请求次数
- 关于#SQL#的迭代、父子结构查询问题,如何解决?
猜你喜欢
public static
List asList(T... a) What is the prototype? 从企业的视角来看,数据中台到底意味着什么?
UE4 第一人称角色模板 添加蹲伏功能
UE4 在游戏运行时更改变量 (通过鼠标滑轮来更改第一人称角色的最大行走速度)
开发Hololens遇到The type or namespace name ‘HandMeshVertex‘ could not be found..
Spark Basics [Introduction, Getting Started with WordCount Cases]
How do newcomers get started and learn software testing?
presto启动成功后出现2022-08-04T17:50:58.296+0800 ERROR Announcer-3 io.airlift.discovery.client.Announcer
Increasing leetcode - a daily topic 1403. The order of the boy sequence (greed)
token、jwt、oauth2、session解析
随机推荐
[GYCTF2020]EasyThinking
Industry Status?Why do Internet companies prefer to spend 20k to recruit people rather than raise their salary to retain old employees~
2022.8.4-----leetcode.1403
MySql的索引学习和使用;(本人觉得足够详细)
The second council meeting of the Dragon Lizard Community was successfully held!Director general election, 4 special consultants joined
数据库设计的酸(ACID)碱(BASE)原则
You may use special comments to disable some warnings. Three ways to report errors
Redis key基本命令
商业智能BI业务分析思维:现金流量风控分析(一)营运资金风险
【Mysql进阶优化篇02】索引失效的10种情况及原理
UE4 第一人称角色模板 添加生命值和调试伤害
DEJA_VU3D - Cesium功能集 之 057-百度地图纠偏
Dive into how it works together by simulating Vite
Redis key basic commands
Developing Hololens encountered The type or namespace name 'HandMeshVertex' could not be found..
Redis1: Introduction to Redis, basic features of Redis, relational database, non-relational database, database development stage
ASP.NET application--Hello World
用Unity发布APP到Hololens2无坑教程
UE4 第一人称角色模板 添加冲刺(加速)功能
Leading the highland of digital medicine, Zhongshan Hospital explores to create a "new paradigm" for future hospitals