目录 基本概念 模板引擎 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 的依赖…
打开题目出现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…
  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_…
原理 参考文章: 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/%…
SSTI-服务端模板注入漏洞 原理: 服务端模板注入是由于服务端接收了用户的输入,将其作为 Web 应用模板内容的一部分,在进行目标编译渲染的过程中,执行了用户插入的恶意内容,因而导致了敏感信息泄露.代码执行.GetShell 等问题. 其影响范围主要取决于模版引擎的复杂性. 模板引擎 模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档. 参考:https://baike.baid…
服务端模版注入漏洞产生的根源是将用户输入的数据被模版引擎解析渲染可能导致代码执行漏洞 下表涵盖了java,php,python,javascript语言中可能使用到的模版引擎,如果网站存在服务端模版注入在能回显的情况下会将验证栏的数据当模版执行,利用引擎提供的功能进行了计算大部分执行结果都会变成1522756. 模版引擎 语言 验证 代码执行 盲检测 Smarty(secured) php {1234*1234} x x Smarty(unsecured) php {1234*1234} {ph…
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…
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…
一打开就是登录页面 存在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注入 原理: tornado render是python中的一个渲染函数,也就是一种模板,通过调用的参数不同,生成不同的网页,如果用户对render内容可控,不仅可以注入XSS代码,而且还可以通过{{}}进行传递变量和执行简单的表达式. 网上看到的例子: #!/usr/bin/env python # -*- coding:utf-8 -*- from tornado.web import UIModule from tornado import escape class cust…
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…
0x00 漏洞描述 Atlassian Jira是澳大利亚Atlassian公司的一套缺陷跟踪管理系统.该系统主要用于对工作中各类问题.缺陷进行跟踪管理. Atlassian Jira Server和Jira Data Center存在服务端模板注入漏洞,成功利用此漏洞的攻击者可对运行受影响版本的Jira Server或Jira Data Center的服务器执行任意命令,从而获取服务器权限,严重危害网络资产. 0x01 CVE编号 CVE-2019-11581 0x02 漏洞危害等级 高危 0…
题目复现传送门 学习链接: 找了个师傅的blog先学习一下基础的flask知识 https://www.freebuf.com/column/187845.html(从零学flask) 简单记录一下: flask 中渲染的方法有两种: render_template render_template_string 两者的区别: render_template()渲染指定的文件 render_template_string()渲染指定的字符串 不正确的使用render_template_string…
ssti服务器模板注入 ssti:利用公共 Web 框架的服务器端模板作为攻击媒介的攻击方式,该攻击利用了嵌入模板的用户输入方式的弱点.SSTI 攻击可以用来找出 Web 应用程序的内容结构. slot Slot的理解:solt是"占坑",在组件模板中占好了位置,当使用该组件标签时候,组件标签里面的内容就会自动填坑(替换组件模板中位置),当插槽也就是坑有命名时,组件标签中使用属性slot="mySlot"的元素就会替换该对应位置内容,可以实现父组件对子组件的传参,要…
转自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开发的模板引擎)是为了使用…
好久没更新博客了,现在主要在作源码审计相关工作,在工作中也遇到了各种语言导致的一些SSTI,今天就来大概说一下SSTI模板注入这个老生常谈的漏洞 前言 模板引擎 模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,利用模板引擎来生成前端的html代码,模板引擎会提供一套生成html代码的程序,然后只需要获取用户的数据,然后放到渲染函数里,然后生成模板+用户数据的前端html页面,然后反馈给浏览器,呈现在用户面前. 模板引擎也会提供…
目录 基础 一些姿势 1.config 2.self 3.[].() 3.url_for, g, request, namespace, lipsum, range, session, dict, get_flashed_messages, cycler, joiner, config等 4.常用绕过 flask/jinja2 SSTI入门 SSTI注入绕过(沙盒逃逸原理一样) 探索Flask/Jinja2中的服务端模版注入(一) 探索Flask/Jinja2中的服务端模版注入(二) 从零学习f…
通过一个小组件,熟悉 Blazor 服务端组件开发.github 一.环境搭建 vs2019 16.4, asp.net core 3.1 新建 Blazor 应用,选择 asp.net core 3.1. 根文件夹下新增目录 Components,放置代码. 二.组件需求定义 Components 目录下新建一个接口文件(interface)当作文档,加个 using using Microsoft.AspNetCore.Components;. 先从直观的方面入手. 类似 html 标签对的…
1. 问题由来 在移动互联网电商领域,运营每天需要搭建多个促销页面来吸引用户去点击去购买,一开始程序员临时写个新页面去实现,可这些页面可以用几次就不用了,每次创建新页面去实现费时费力,而且,电商的运营需求是快速迭代的,每次去页面代码里去改,然后上线也太不方便了.所以产品提出了Diy 页面----配置web组件去搭建页面,事先定好页面可能到用到哪些的组件,然后运营在后台选好页面由哪些组件组成,然后分别去配置对应的组件数据,这样运营可以快速地去创建他们所需要的页面,快速响应需求变化.所以Diy 页面…
理解 REST REST(Representational State Transfer),中文翻译叫"表述性状态转移".是 Roy Thomas Fielding 在他2000年的博士论文中提出的.它与传统的 SOAP Web 服务区别在于,REST关注的是要处理的数据,而 SOAP 主要关注行为和处理.要理解好 REST,根据其首字母拆分出的英文更容易理解.表述性(Representational):对于 REST 来说,我们网络上的一个个URI资源可以用各种形式来表述,例如:XM…
一.SQL注入攻击的原理攻击者在HTTP请求中,注入恶意的SQL代码,并在服务端执行.比如用户登录,输入用户名camille,密码 ' or '1'='1 ,如果此时使用参数构造的方式,就会出现 ' 不管用户名和密码是什么,查询出来的用户列表都不为空,这样可以随意看其他用户的信息. 二.SQL注入攻击的出现场景 1.url参数提交 2.表单提交 3.cookie参数提交 4.http请求头部可修改的值比如referer,userAgent 三.SQL注入攻击的防御 1.客户端 限制字符串输入的长…