0x00 漏洞介绍 smarty是一个基于PHP开发的PHP模板引擎.它提供了逻辑与外在内容的分离,简单的讲,目的就是要使用PHP程序员同美工分离,使用的程序员改变程序的逻辑内容不会影响到美工的页面设计,美工重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要.由于Smarty中 Smarty_Internal_Runtime_TplFunction模块通过引擎编译生成模板文件,攻击者可利用该漏洞在获得权限的情况下,构造恶意数据,最终造成远程代码执行. 0x01 漏洞环境 攻击…
看了几天的ssti注入然后了解到有python沙箱逃逸 学过ssti注入的话python沙箱逃逸还是很容易理解的. 看一道CTF题目,源码的话我改了改,一开始不能用,直接在py2上运行就好. 题目要求读取./key的值,我们这里来执行命令. def make_secure(): UNSAFE = ['open', 'file', 'execfile', 'compile', 'reload', '__import__', 'eval', 'input'] for func in UNSAFE:…
smarty模版使用php标签,如何获取模版变量 in: 后端程序 已经assign一个模版变量$assign,由于要做特殊的循环输出,使用for循环,因此使用到了php标签,但是php语句和模版语句的变量作用域是不同的,因此不能直接获取到 {{php}} ;$i<count($assign);$i=$i+){ echo ' <ul> <li> <span class="zz_pic"><a href="'._url('pict…
环境:  PHP5.2 以上版本 先去官网下载smarty模版引擎的库文件到你的电脑或服务器上 smarty官方网站库文件下载地址: https://www.smarty.net/download 下载完成后解压到本地 有用的是libs文件夹里面的文件,在你的www目录下新建一个smarty目录,将libs目录拷贝进smarty目录中, 特别需要注意你的templates_c文件夹必须要有可写的权限,如果实在不行,可以在本地设置为777, chmod 777 templates_c 然后你还需要…
NodeJS沙箱逃逸 关于nodejs的沙箱 使用场景 在线代码编辑器 第三方js代码 jsonp,like百度搜索框 https://www.baidu.com/s?wd=nodejs&ming=aa 此处wd为关键词,ming为函数名. output: a({q:"123",p:false,s:["12306","12306铁路客户服务中心","12308汽车订票官网","12306火车票网上订票官网&q…
Smarty是一个使用php写出来的模版引擎,用来将原本与html代码混杂在一起PHP代码逻辑分离,实现前后端分离. Smarty模板优点: 1. 速度:采用Smarty编写的程序可以获得最大速度的提高,这一点是相对于其它的模板引擎技术而言的. 2. 编译型:采用Smarty编写的程序在运行时要编译成一个非模板技术的PHP文件,这个文件采用了PHP与HTML混合的方式,在下一次访问模板时将WEB请求直接转换到这个文件中,而不再进行模板重新编译(在源程序没有改动的情况下) 3. 缓存技术:Smar…
<?php class MyMiniSmarty{ //模版文件的存放路径 var $template_dir="./templates/"; //编译文件的存放路径 ,编译文件的名称格式暂定为:com_对应的tpl.php var $complie_dir="./templates_c"; //模版变量数组:存放所有模版变量的值 var $tpl_vars=array(); //这里我们主要模拟两个方法 //参数1-模版变量     参数2:模版变量的值 f…
<ul>{/foreach from=$A key=k item=val/}{/php/} $val = $this->_tpl_vars[val]; $date = substr($val['date'], 8, 2).'/'.substr($val['date'], 5, 2);{//php/}{/if $k==0/} <li class="first"><span class="recommend-date">{/ph…
模板主要是用来让前端和后端分离的,前台页面只是一个前台页面,后台页面用php代码写逻辑,写完逻辑拿到前台显示. 一.写法 一般需要以下:写3个页面: 1.显示页面aa.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns=&qu…
ThinkPHP使用Smarty模板引擎的流程及注意事项在多人合作的项目中,Smarty模板使用的最多,具体原因百度. 而ThinkPHP中默认使用的模板是Think自己的模板,这就需要修改默认的模板引擎变量. 步骤如下: ①在config.php中定义如下配置项 'TMPL_ENGINE_TYPE'=>'Smarty',②上一步已经切换了模板引擎,css样式如果有{},需要使用{literal}标签禁止smarty解析,使用{literal}{/literal}标签包含起来. ③如果业内css…