目录 前言 环境 基础学习和回显实验 语法基础 回显实验 BufferedReader Scanner SpEL漏洞复现 低版本SpringBoot中IllegalStateException CVE-2018-1273 Spring Data Commons RCE SpEL变形和bypass的tips 原型 bypass 读写文件和回显 参考 前言 主要记载一下SpEL表达式的学习和研究笔记,主要是发现了一个不受限制的回显表达式,完善了一下基于nio做文件读写的表达式,直接看poc可以跳转到…
目录 0x00前言 0x01触发原因 0x02调试分析 0x03补丁分析 0x04参考文章 影响版本: 1.1.0-1.1.12 1.2.0-1.2.7 1.3.0 修复方案:升至1.3.1或以上版本 我的测试环境:SpringBoot 1.2.0 0x00前言 这是2016年爆出的一个洞,利用条件是使用了springboot的默认错误页(Whitelabel Error Page),存在漏洞的页面在:/spring-boot-autoconfigure/src/main/java/org/sp…
前言 这是2016年的一个洞,利用条件是至少知道一个触发 springboot 默认错误页面的接口及参数名. 影响版本:1.1.0-1.1.12 1.2.0-1.2.7 1.3.0 修复方案:升级版本 环境搭建 下载链接:https://github.com/LandGrey/SpringBootVulExploit/tree/master/repository/springboot-spel-rce 用idea打开之后配置一下,如下图: 然后启动访问出现如下页面,代表搭建成功. 漏洞复现 访问…
原文地址:http://www.freebuf.com/tools/88908.html 本文原创作者:rebeyond 文中提及的部分技术.工具可能带有一定攻击性,仅供安全学习和教学用途,禁止非法使用! 0×00 前言 前段时间java 的反序列化漏洞吵得沸沸扬扬,从刚开始国外某牛的一个可以执行OS命令的payload生成器,到后来的通过URLClassLoader来加载远程类来反弹shell.但是后来公司漏扫需要加规则来识别这种漏洞,而客户的漏扫又时常会工作在纯内网的环境下,因此远程加载类的…
XML与xxe注入基础知识 1.XMl定义 XML由3个部分构成,它们分别是:文档类型定义(Document Type Definition,DTD),即XML的布局语言:可扩展的样式语言(Extensible Style Language,XSL),即XML的样式表语言:以及可扩展链接语言(Extensible Link Language,XLL). XML:可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言.它被设计用来传输和存储数据(而不是储存数据),可…
简介 表单提交失败需要再回到表单页面重新填写,原来提交的数据需要重新在页面上显示. 简单数据类型 对于简单数据类型,如:Integer.String.Float等使用Model将传入的参数再放到request域实现显示. @RequestMapping(value="/editItems",method={RequestMethod.GET}) public String editItems(Model model,Integer id)throws Exception{ //传入的i…
本文中xray高级版shiro payload来源于雷石安全实验室公众号发布的shiroExploit.jar 感谢雷石安全实验室,雷石安全实验室牛逼 本文主要描述如何从shiro的payload中提取有效payload.该方法适合从各种java反序列化漏洞中提取payload 0x01 前言 某日小伙伴发来雷石安全实验室的shiro利用工具,据称payload提取自xray.利用如下 0x02 反编译雷石利用工具 首先拖入idea中反编译,查看如何利用payload.代码如下 t是遍历数组的下…
一.内容简介 Spring Expression Language(简称SpEL)是一种强大的表达式语言,支持在运行时查询和操作对象图.语言语法类似于Unified EL,但提供了额外的功能,特别是方法调用和基本的字符串模板功能.同时因为SpEL是以API接口的形式创建的,所以允许将其集成到其他应用程序和框架中.类似于Struts2中的OGNL. SpEL对表达式语法解析过程进行了很高的抽象,抽象出解析器.表达式.解析上下文.估值(Evaluate)上下文等对象,非常优雅的表达了解析逻辑.主要的…
通过DNSLOG回显验证漏洞 前言 实际渗透测试中,有些漏洞因为没有回显导致无法准确判断漏洞是否存在,可能导致渗透测试人员浪费大量精力在一个并不存在的漏洞上,因此为了验证一些无回显漏洞,可结合DNSlog平台进行测试,本文使用的DNSlog平台链接如下:http://dnslog.cn/ 原理 DNSlog检测原理在此就不多赘述了,网上相关资料铺天盖地,此处引用一张FREEBUF的图用以说明,此图现在看不懂没关系,当做完实验后再返回查看本图思维就会很清晰了. 环境搭建 1. 安装Docker 接…
测试一些网站的时候,一些注入都是无回显的,我们可以写脚本来进行盲注,但有些网站会ban掉我们的ip,这样我们可以通过设置ip代理池解决, 但是盲注往往效率很低,所以产生了DNSlog注入.具体原理如下. 首先需要有一个可以配置的域名,比如:ceye.io,然后通过代理商设置域名 ceye.io 的 nameserver 为自己的服务器 A,然后再服务器 A 上配置好 DNS Server,这样以来所有 ceye.io 及其子域名的查询都会到 服务器 A 上,这时就能够实时地监控域名查询请求了,图…
原作者:afanti 原出处:https://www.cnblogs.com/afanti/p/8047530.html 0x00 简介 测试一些网站的时候,一些注入都是无回显的,我们可以写脚本来进行盲注,但有些网站会ban掉我们的ip,我们可以通过设置ip代理池解决. 但是盲注往往效率很低,所以产生了DNSlog注入.具体原理如下: 首先需要有一个可以配置的域名,比如:ceye.io,然后通过代理商设置域名 ceye.io 的 nameserver 为自己的服务器 A,然后再服务器 A 上配置…
测试一些网站的时候,一些注入都是无回显的,我们可以写脚本来进行盲注,但有些网站会ban掉我们的ip,这样我们可以通过设置ip代理池解决, 但是盲注往往效率很低,所以产生了DNSlog注入 DNSLOG的原理 DNS的解析是递归与迭代相结合的,下面给出了当我们访问www.cloudcrowd.com.cn时,DNS的解析过程示意图. 其中,红色部分是可控的.我们只需要搭建一个红色部分的DNS服务器,并将要盲打或盲注的回显,放到自己域名的二级甚至三级域名上去请求,就可以通过DNS解析日志来获取到它们…
看猪猪侠以前的洞,顺便总结下: 一.EL表达式简介 EL 全名为Expression Language.EL主要作用: 1.获取数据 EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象.获取数据.(某个web域 中的对象,访问javabean的属性.访问list集合.访问map集合.访问数组) 2.执行运算 利用EL表达式可以在JSP页面中执行一些基本的关系运算.逻辑运算和算术运算,以在JSP页面中完成一些简单的逻辑运算.${user==null} 3.获…
flask模板注入的学习 关于flask模版注入,之前不太理解,看了很多文章才弄懂,主要原理就是渲染函数的参数用户可控就造成了模板注入 就会使用户构造恶意的代码进行逃逸从而进行攻击 flask模板渲染函数 render_template('index.html') //渲染一个页面 index.html <p>hello</p> render_template_string('<p>hello</p>')//渲染一个字符串 上面这两个的效果是一样的 原理 i…
Java安全之反序列化回显与内存马 0x00 前言 按照我个人的理解来说其实只要能拿到Request 和 Response对象即可进行回显的构造,当然这也是众多方式的一种.也是目前用的较多的方式.比如在Tomcat 全局存储的Request 和 Response对象,进行获取后则可以在tomcat这个容器下进行回显.而某些漏洞的方式会从漏洞的位置去寻找存储Request 和 Response对象的地方. 0x01 Tomcat通用回显 根据Litch1师傅的思路来寻找request,respon…
一篇SQL注入漏洞汇总,更新中-- 如有缺陷 望大佬指正 SQL注入产生的原因? 当程序执行逻辑时没有对用户输入的参数做过滤处理,使参数直接与后台数据库产生逻辑交互,即SQL注入黑客就可以利用各种SQL注入的方法 获取数据库敏感信息 当Web应用向后台数据库传递SQL语句进行数据库操作时.如果用户输入的SQL语句没有经过严格的执行过滤且能导致非法格式正常执行并输出数据库信息,即为SQL注入. 在有与数据库产生交互的地方,都有可能产生SQL注入漏洞. SQL注入的危害? 泄露数据库敏感信息 获取目…
原文:http://netsecurity.51cto.com/art/201407/444548.htm 0×00 引言 在2014年6月18日@终极修炼师曾发布这样一条微博: 链接的内容是一个名为Jenkins的服务,可以在没有password的情况下受到攻击.而攻击方法比较有趣,Jenkins提供了一个Script Console功能,可以执行Groovy 脚本语言.下面我们来看下维基百科对于这个脚本语言的解释:  Groovy是Java平台上设计的面向对象编程语言.这门动态语言拥有类似P…
ref:https://blog.csdn.net/kk_gods/article/details/51840683 一种新的攻击方法——Java Web表达式注入 2016年07月06日 17:01:11,在2014年6月18日@终极修炼师曾发布这样一条微博: 链接的内容是一个名为Jenkins的服务,可以在没有password的情况下受到攻击.而攻击方法比较有趣,Jenkins提供了一个Script Console功能,可以执行Groovy 脚本语言.下面我们来看下维基百科对于这个脚本语言的…
XML实体注入漏洞的利用与学习 前言 XXE Injection即XML External Entity Injection,也就是XML外部实体注入攻击.漏洞是在对非安全的外部实体数据进行处理时引发的安全问题.在XML1.0标准里,XML文档结构里定义了实体(entity)这个概念.实体可以通过预定义在文档中调用,实体的标识符可访问本地或远程内容.如果在这个过程中引入了”污染”源,在对XML文档处理后则可能导致信息泄漏等安全问题 漏洞利用 当允许引用外部实体时,通过构造恶意内容,可导致读取任意…
SQL注入漏洞:Web安全方面最高危的漏洞,SQL漏洞威胁着网站后台数据的安全问题. 网上常说“万能密码”,这个万能密码则就是利用了SQL注入漏洞: ' or 1=1 -- 上述的万能密码输入在用户登录框中 ,如果把他和SQL语句拼接,就可以发现奥秘: String sql -- ' and password = '********' 上述SQL语句则是我们输入万能密码后,服务器后台拼接的SQL语句:仔细观察语句,发现 ‘ or 1=1 -- 的作用就是将前面的语句闭合为空,然后or判断1=1,…
什么是EL表达式? 表达式语言(Expression Language,EL),EL表达式是用"${}"括起来的脚本,用来更方便的读取对象! EL表达式主要用来读取数据,进行内容的显示! 为什么要使用EL表达式? 为什么要使用EL表达式,我们先来看一下没有EL表达式是怎么样读取对象数据的吧! 在1.jsp中设置了Session属性 <%@ page language="java" contentType="text/html" pageEn…
1:Struts2表单数据校验: (1)前台校验,也称之为客户端校验,主要是通过Javascript编程的方式进行数据的验证. (2)后台校验,也称之为服务器校验,这里指的是使用Struts2通过xml配置的方式进行表单数据的校验. (3)代码方式验证Action中所有的方法:代码方式验证Action中指定的方法:xml方式验证Action中所有的方法:xml方式验证Action中指定的方法: 2:代码方式验证Action中所有的方法(自己记得导jar包和我配置web.xml文件,自己脑补吧):…
一.SQL注入简介 1.1 SQL语句就是操作数据库的语句,SQL注入就是通过web程序在数据库里执行任意SQL语句. SQL 注入是一种常见的Web安全漏洞,攻击者利用这个漏洞,可以访问和修改数据,或者利用潜在的数据库漏洞进行攻击. 1.2 SQL注入漏洞威胁 (1).猜解后台数据库,这是利用最多的方式,盗取网站的敏感信息. (2).绕过认证,列如绕过验证登录网站后台. (3).注入可以借助数据库的存储过程进行提权等操作. 1.3 基础知识 1.3.1 服务器将提交的参数拼接到要执行的SQL语…
前面的文章讲了在windows和linux上的不同的无文件渗透测试的方法,那么这篇文章给大家讲解如何在漏洞没有回显的情况下,利用burpsuite自带插件进行测试的方式. 首先我们稍微提一下有哪些无回显的漏洞,一般有盲注(SQL注入的一种).盲XXE(XML外部实体注入的一种).命令执行.一些特殊的框架漏洞/没有回显的SSRF漏洞等,这些漏洞在正常测试时都没有回显,所以为了更为直观的测试,我们需要使用这类辅助测试工具. 打开burpsuite后,左上角Burp标签内有个Collaborator(…
三种注入poc where user_id = 1 or 1=1 where user_id = '1' or '1'='1' where user_id =" 1 "or "1"="1" 三种sql注释符 #     单行注释   注意与url中的#区分,常编码为%23 --空格      单行注释  注意为短线短线空格 /*()*/      多行注释  至少存在俩处的注入   /**/常用来作为空格 注入流程 是否存在注入并且判断注入类型…
一.参与调查的流程 单击导航栏上的“参与调查”按钮->EntrySurveyAction做出相应,找到所有的Survey对象并转发到显示所有survey对象的页面上供用户选择->用户单击其中一个调查进入调查页面->页面提供上一页.下一页.退出.保存等按钮供用户选择->用户单击退出直接返回到显示所有Survey对象的页面上去或者单击提交完成调查返回到参与调查的页面上去. 二.显示所有调查 请求的方法是Action中的toSurveyPage方法 public String toSur…
        在Spring XML配置文件中装配Bean的属性和构造参数都是静态的,而在运行期才知道装配的值,就可以使用SpEL实现         SpEL表达式的首要目标是通过计算获得某个值.在计算这个数值的过程中,会使用到其他的值并会对这些值进行操作.         SpEL特性:(1).使用Bean的ID来引用Bean:(2).调用方法和访问对象的属性:(3).对值进行算术.关系和逻辑运算:(4).正则表达式匹配:(5).集合操作         #{ }标记会提示 Spring这…
近期在看NodeJS相关 不得不说NodeJS+Express 进行网站开发是很不错,对于喜欢玩JS的来说真是很好的一种Web开发组合 在接触NodeJS时受平时Java或者C#中API接口等开发的思维惯性,类比着去学习了解发现其实很多都是通性的 特别是NodeJS中一个JS文件中方法通过exports可以在其他文件中进行require这种机制,不就类似Java中import(导入架包/引用类)?不就类似C#中Using(DLL组件或者引用类)么? MVC模式下Web开发,其中对应在NodeJS…
最近在学习淘淘商城中用到的技术,感觉受益良多,遇到一个比较奇怪的bug调了好久,遂心乐之分享于诸君 bug情况是这样的:在商城的后台上传图片之后图片回显不出来,右键查看链接,发现链接被加了localhost://8080 原来正常的链接是这样的: ftp://ftpuser@192.168.25.133/home/ftpuser/www/images/2017/08/11/1502405214622039.png 或缩写去掉写为(我复制的链接用的这个): 192.168.25.133/home/…
(整篇文章废话很多,但其实是为了新手能更好的了解这个sql注入是什么,需要学习的是文章最后关于如何预防sql注入) (整篇文章废话很多,但其实是为了新手能更好的了解这个sql注入是什么,需要学习的是文章最后关于如何预防sql注入) (整篇文章废话很多,但其实是为了新手能更好的了解这个sql注入是什么,需要学习的是文章最后关于如何预防sql注入) 重要的事情说三遍  ^-^ 一.什么是SQL注入 如何理解sql注入? sql注入是一种将sql代码添加到输入参数中,传递到sql服务器解析并执行的一种…