目录 基本概念 模板引擎 SSTI Jinja2 Python基础 漏洞原理 代码复现 Payload解析 常规绕过姿势 其他Payload 过滤关键字 过滤中括号 过滤下划线 过滤点.(适用于Flask) 过滤花括号{{}} 使用 Jinja2 过滤器绕过 实战例题 [网络安全管理员职业技能大赛]EZSS [Dest0g3 520迎新赛]EasySSTI 参考链接 基本概念 模板引擎 模板引擎是在 Web 开发中,为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,模板引擎…
flask Flask 是一个 web 框架.也就是说 Flask 为你提供工具,库和技术来允许你构建一个 web 应用程序.这个 wdb 应用程序可以使一些 web 页面.博客.wiki.基于 web 的日历应用或商业网站. Flask 属于微框架(micro-framework)这一类别,微架构通常是很小的不依赖于外部库的框架.这既有优点也有缺点,优点是框架很轻量,更新时依赖少,并且专注安全方面的 bug,缺点是,你不得不自己做更多的工作,或通过添加插件增加自己的依赖列表.Flask 的依赖…
原理 参考文章: https://www.blackhat.com/docs/us-15/materials/us-15-Kettle-Server-Side-Template-Injection-RCE-For-The-Modern-Web-App-wp.pdf http://rickgray.me/use-python-features-to-execute-arbitrary-codes-in-jinja2-templates 测试 编译及运行测试环境: cd vulhub~master/…
  原理: 服务端模板注入是由于服务端接收了用户的输入,将其作为 Web 应用模板内容的一部分,在进行目标编译渲染的过程中,执行了用户插入的恶意内容,因而导致了敏感信息泄露.代码执行.GetShell 等问题.其影响范围主要取决于模版引擎的复杂性.   模板引擎 模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档. 参考:https://baike.baidu.com/item/%…
服务端模版注入漏洞产生的根源是将用户输入的数据被模版引擎解析渲染可能导致代码执行漏洞 下表涵盖了java,php,python,javascript语言中可能使用到的模版引擎,如果网站存在服务端模版注入在能回显的情况下会将验证栏的数据当模版执行,利用引擎提供的功能进行了计算大部分执行结果都会变成1522756. 模版引擎 语言 验证 代码执行 盲检测 Smarty(secured) php {1234*1234} x x Smarty(unsecured) php {1234*1234} {ph…
  0x00 实验环境 攻击机:Win 10 0x01 影响版本 Python利用的一些静态框架 0x02 漏洞复现 (1)实验环境:docker运行的vulhub漏洞环境 首先,可直接访问到页面的显示为: (2)查看到Hello guest的字样,使用别的方式查看漏洞风险是否存在: http://xxx:8000/?name={{233*233}}  (3)直接查询flask框架的代码执行语句 获取eval函数并执行任意python代码的POC: {% for c in [].__class_…
打开题目出现3个链接 /flag.txt 中提示flag in /fllllllllllllag /welcome.txt 中提示 render /hints.txt 中提示 md5(cookie_secret+md5(filename)) 直接访问/fllllllllllllag失败. 百度了render可知,render是python的一个模板,他们的url都是由filename和filehash组成,filehash即为他们filename的md5值. 当filename或filehash…
SSTI-服务端模板注入漏洞 原理: 服务端模板注入是由于服务端接收了用户的输入,将其作为 Web 应用模板内容的一部分,在进行目标编译渲染的过程中,执行了用户插入的恶意内容,因而导致了敏感信息泄露.代码执行.GetShell 等问题. 其影响范围主要取决于模版引擎的复杂性. 模板引擎 模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档. 参考:https://baike.baid…
0x00 漏洞描述 Atlassian Jira是澳大利亚Atlassian公司的一套缺陷跟踪管理系统.该系统主要用于对工作中各类问题.缺陷进行跟踪管理. Atlassian Jira Server和Jira Data Center存在服务端模板注入漏洞,成功利用此漏洞的攻击者可对运行受影响版本的Jira Server或Jira Data Center的服务器执行任意命令,从而获取服务器权限,严重危害网络资产. 0x01 CVE编号 CVE-2019-11581 0x02 漏洞危害等级 高危 0…
前面大致讲解了下客户端的安全漏洞,现在来讲解下服务端的安全漏洞. 1.SQL注入(SQL Injection),是一种常见的Web安全漏洞,攻击者利用这个漏洞,可以访问或修改数据,或者利用潜在的数据库漏洞进行攻击. 这里举个例子: 下面这个是一个正常的登录,密码为MD5加密,用户在界面输入用户名和密码后,通过post请求将值传入到后台服务器,最终通过拼接好的sql进行查询,查询返回正确则登录成功. 那么sql注入是怎么做的呢?由下图我们知道,我们用户名输入的是admin' -- ,而密码却无任何…
一.服务端请求伪造漏洞 服务端请求伪造(Server-Side Request Forgery),是指Web服务提供从用户指定的URL读取数据并展示功能又未对用户输入的URL进行过滤,导致攻击者可借助服务端实现访问其本无权访问的URL. 攻击者无权访问的URL主要是内网,而对于不是Web服务的其他端口反回的一般是端口对应的服务的banner信息,所以SSRF的一大利用是探测内网端口开放信息.(所以SSRF归类为信息泄漏类型) Weblogic服务端请求伪造漏洞出现在uddi组件(所以安装Webl…
ylbtech-微信-小程序-开发文档-服务端-模板消息:templateMessage.send 1.返回顶部 1. templateMessage.send 本接口应在服务器端调用,详细说明参见服务端API. 本接口支持云调用.需开发者工具版本 >= 1.02.1904090(最新稳定版下载),wx-server-sdk >= 0.4.0 发送模板消息 调用方式: HTTPS 调用 云调用 HTTPS 调用 请求地址 POST https://api.weixin.qq.com/cgi-b…
ylbtech-微信-小程序-开发文档-服务端-模板消息:templateMessage.getTemplateList 1.返回顶部 1. templateMessage.getTemplateList 本接口应在服务器端调用,详细说明参见服务端API. 本接口支持云调用.需开发者工具版本 >= 1.02.1904090(最新稳定版下载),wx-server-sdk >= 0.4.0 获取帐号下已存在的模板列表 调用方式: HTTPS 调用 云调用 HTTPS 调用 请求地址 POST ht…
ylbtech-微信-小程序-开发文档-服务端-模板消息:templateMessage.getTemplateLibraryList 1.返回顶部 1. templateMessage.getTemplateLibraryList 本接口应在服务器端调用,详细说明参见服务端API. 本接口支持云调用.需开发者工具版本 >= 1.02.1904090(最新稳定版下载),wx-server-sdk >= 0.4.0 获取小程序模板库标题列表 调用方式: HTTPS 调用 云调用 HTTPS 调用…
ylbtech-微信-小程序-开发文档-服务端-模板消息:templateMessage.getTemplateLibraryById 1.返回顶部 1. templateMessage.getTemplateLibraryById 本接口应在服务器端调用,详细说明参见服务端API. 本接口支持云调用.需开发者工具版本 >= 1.02.1904090(最新稳定版下载),wx-server-sdk >= 0.4.0 获取模板库某个模板标题下关键词库 调用方式: HTTPS 调用 云调用 HTTP…
ylbtech-微信-小程序-开发文档-服务端-模板消息:templateMessage.deleteTemplate 1.返回顶部 1. templateMessage.deleteTemplate 本接口应在服务器端调用,详细说明参见服务端API. 本接口支持云调用.需开发者工具版本 >= 1.02.1904090(最新稳定版下载),wx-server-sdk >= 0.4.0 删除帐号下的某个模板 调用方式: HTTPS 调用 云调用 HTTPS 调用 请求地址 POST https:/…
ylbtech-微信-小程序-开发文档-服务端-模板消息:templateMessage.addTemplate 1.返回顶部 1. templateMessage.addTemplate 本接口应在服务器端调用,详细说明参见服务端API. 本接口支持云调用.需开发者工具版本 >= 1.02.1904090(最新稳定版下载),wx-server-sdk >= 0.4.0 组合模板并添加至帐号下的个人模板库 调用方式: HTTPS 调用 云调用 HTTPS 调用 请求地址 POST https:…
注入攻击是web领域最为常见的攻击方式,其本质是把用户输入的数据当做代码执行,主要原因是违背了数据与代码分离原则,其发生的两个条件:用户可以控制数据输入:代码拼接了用户输入的数据,把数据当做代码执行了. 下面是几种常见注入攻击及其防御方法: SQL注入及常见攻击技巧 经典注入  如: $username = $_POST['username']; $sql = "select * from usertable where username="."'".$userna…
目录 SSRF SSRF漏洞的挖掘 SSRF漏洞利用 SSRF漏洞防御 SSRF SSRF(Server-Side Request Forgery,服务器端请求伪造)漏洞,是一种由攻击者构造请求,由服务器端发起请求的安全漏洞,本质上是属于信息泄露漏洞. SSRF漏洞原理:很多web应用都提供了从其他的服务器上获取数据的功能.使用用户指定的URL,web应用可以获取图片,下载文件,读取文件内容等.这个功能如果被恶意使用,可以利用存在缺陷的web应用作为代理攻击远程和本地的服务器.一般情况下, SS…
目录 解题思路 总结 解题思路 拿到手上,有四个页面 首先按照题目要求执行,尝试注册一个名为admin的账户 这种情况,路径都给出来了,很可能就是目录遍历或者文件上传了 回到初始界面,点击链接here 有一个捐赠界面,让我们输入捐赠的地址和名字 下面的collection de musee代表它是一个收藏馆,也不知道捐什么,就随意捐一个,比如baidu.com 可以看到是有报错的,为了让报错全部显示,建议直接使用"查看页面源代码" 像这种东西,就无不暗示着你,是可能有SSTI漏洞的 按…
1.在pom.xml文件中添加jar包: <properties> <spring.version>4.0.5.RELEASE</spring.version> </properties> <dependencies> <dependency> <groupId>javax.websocket</groupId> <artifactId>javax.websocket-api</artifac…
---恢复内容开始--- 本文默认采用python3 一.虚拟环境 创建环境 mkdir myproject cd myproject python3 -m venv venv //Windows平台 py -3 -m venv venv 激活环境 . venv/bin/activate //Windows平台 venv\Scripts\activate 二.安装Flask pip install Flask 三.配置sqlAlchemy 在项目根目录的__init__.py中配置 app =…
一打开就是登录页面 存在index.php.swp...(反正我是没有扫出来,题目没给提示),分析一波源码 <?php ob_start(); function get_hash(){ $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()+-'; $random = $chars[mt_rand(0,73)].$chars[mt_rand(0,73)].$chars[mt_rand…
SSTI(服务器模板注入)学习 0x01 SSTI概念 SSTI看到ss两个字母就会想到服务器,常见的还有SSRF(服务器端请求伪造).SSTI就是服务器端模板注入(Server-Side Template Injection) 说到注入,我们常见的注入有sql注入,sql注入我们都很熟悉,但SSTI和sql注入一样都是先从用户获得一个输入将其作为 Web 应用模板内容的一部分,在进行目标编译渲染的过程中,执行了用户插入的恶意内容,因而可能导致了敏感信息泄露.代码执行.GetShell 等问题.…
SSTI 一. 什么是SSTI 模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档. 模板引擎可以让(网站)程序实现界面与数据分离,业务代码与逻辑代码的分离,这就大大提升了开发效率,良好的设计也使得代码重用变得更加容易. SSTI就是服务器端模板注入(Server-Side Template Injection)和常见Web注入的成因一样,也是服务端接收了用户的输入,将其作为 We…
SSTI(Server-Side Template Injection) 服务端模板注入 ,就是服务器模板中拼接了恶意用户输入导致各种漏洞.通过模板,Web应用可以把输入转换成特定的HTML文件或者email格式 输出无过滤就注定会存在xss,当然还有更多深层次的漏洞. 前置知识 1.运行一个一个最小的 Flask 应用 from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return…
考点:SSTI注入 原理: tornado render是python中的一个渲染函数,也就是一种模板,通过调用的参数不同,生成不同的网页,如果用户对render内容可控,不仅可以注入XSS代码,而且还可以通过{{}}进行传递变量和执行简单的表达式. 网上看到的例子: #!/usr/bin/env python # -*- coding:utf-8 -*- from tornado.web import UIModule from tornado import escape class cust…
Flask模板注入 Flask模板注入漏洞属于经典的SSTI(服务器模板注入漏洞). Flask案例 一个简单的Flask应用案例: from flask import Flask,render_template_string app=Flask(__name__) @app.route('/<username>') def hello(username): return render_template_string('Hello %s'%username) if __name__=='__m…
好久没更新博客了,现在主要在作源码审计相关工作,在工作中也遇到了各种语言导致的一些SSTI,今天就来大概说一下SSTI模板注入这个老生常谈的漏洞 前言 模板引擎 模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,利用模板引擎来生成前端的html代码,模板引擎会提供一套生成html代码的程序,然后只需要获取用户的数据,然后放到渲染函数里,然后生成模板+用户数据的前端html页面,然后反馈给浏览器,呈现在用户面前. 模板引擎也会提供…
转自https://www.cnblogs.com/wangtanzhi/p/12328083.html SSTI模板注入:之前也写过:https://www.cnblogs.com/wangtanzhi/p/12238779.html SSTI模板注入: 模板注入涉及的是服务端Web应用使用模板引擎渲染用户请求的过程服务端把用户输入的内容渲染成模板就可能造成SSTI(Server-Side Template Injection) 模板引擎 模板引擎(这里特指用于Web开发的模板引擎)是为了使用…