Java代码审计连载之—添油加醋

在代码审计中,按业务流程审计固然是必须的,人工的流程审计的优势是可以更加全面的发现漏洞,可是缺点是查找漏洞效率低下。若是要定向的查找漏洞,逆向跟踪变量技术就显得更加突出,如查找XSS、SQL注入、命令执行……等等,逆向查找变量可以快速定位漏洞是否存在,本次已SQL注入为例。html

本文做者:黑客小平哥,i春秋首发前端

前言web

本篇文章本来是个PPT,可是一直放着没有分享,想着闲着也是闲着,那就改为文章发布吧。其实本篇重点在于两个知识点,一个是代码审计的逆向思惟,另外一个是二次攻击漏洞,其余的我都省略了,就写几个重要的吧。对于二次攻击我也是最近才研究的,研究了点皮毛,错误之处还请广大圈友指正,谢谢。数据库

代码审计学习之旅安全

总有人问我代码审计该怎么学习,该从哪学习,如今统一回复,表示我也不知道。。。函数

clipboard.png

可是对于我的的学习路线来讲,路程是漫长而艰辛的,建议学习以下(直接截图了):学习

clipboard.png

上面我写的是“熟悉”,这只是对刚入行的同窗说的,做为代码审计来讲,熟练编写代码程序是必须的,要想深度化发展,精通一门语言是必经之路。编码

知识一-变量逆向跟踪spa

在代码审计中,按业务流程审计固然是必须的,人工的流程审计的优势是可以更加全面的发现漏洞,可是缺点是查找漏洞效率低下。若是要定向的查找漏洞,逆向跟踪变量技术就显得更加突出,如查找XSS、SQL注入、命令执行……等等,逆向查找变量可以快速定位漏洞是否存在,本次已SQL注入为例。3d

什么是逆向跟踪 顾名思义,逆向跟踪就是对变量的逆向查找,开始全局查找出可能存在漏洞的触发点,而后回溯参数到前端,查看参数来源已经参数传递过程当中的处理过程。

逆向跟踪流程 怎样才能快速定位呢?下面咱们一块儿看下流程。

一、 查看全局文件web.xml

clipboard.png

Web.xml主要是配置web项目启动时加载的信息,好比<listener/>配置你的监听器,<filter/>配置过滤器,<servlet/>配置你的servlet实现。咱们主要查看全局过滤器是否过滤特殊字符已通过滤哪些字符,显然没有。

二、 寻找漏洞触发点

clipboard.png

本次以SQL注入为例,SQL注入我就不说了,相关文档一堆。当咱们看到以下形势的SQL语句,就可能存在SQL注入:

由于安全的写法是这样的:

clipboard.png

那么,参数“word”可能存在SQL注入漏洞,那咱们就回溯“word”参数,看看“word”值究竟是怎么传进来的,回溯到控制层,发现该“word”参数:

clipboard.png

追踪到控制层基本能够肯定漏洞存在,而且没有作相应的过滤,可是为防止“search”方法只是内部调用,继续回溯“searchword”值,查看是否从前端页面传入的:

clipboard.png

发现该“searchword”是从前端页面传入,所以能够肯定漏洞存在,SQLmap截图以下:

clipboard.png

以上就是简单的逆向跟踪变量小技巧,什么?太low?没办法,就这水平。
方面的资料网上不多,我本身研究了一阵子,发现二次攻击形势有不少,也没明白多少,此次就谈谈容易明白的二次命令攻击漏洞,不喜勿喷。

二次漏洞定义:

攻击者提交的恶意的代码不是直接经过一个变量提交漏洞函数而是经过变量转化或者中转,最终提交到漏洞函数。

二次漏洞特色:

一、经常存在漏洞类型的转换。

二、经常存在变量中转。

二次漏洞类型:

一、经过SQL注射漏洞转化。

二、经过编码/解码中转变量。

三、其它方式。

二次命令攻击

二次注入漏洞是一种在Web应用程序中普遍存在的安全漏洞形式。相对于一次注入漏洞而言,二次注入漏洞更难以被发现,可是它却具备与一次注入攻击漏洞相同的攻击威力。

基本流程以下:

clipboard.png

一、 构造参数

在数据库正常的插入、更新等操做中,构造特殊的命令,存储在数据库中:

clipboard.png

此处只是方便展现漏洞原理,真实代码中的状况可能复杂的多,此处构造了“cmd”参数为“ipconfig”存储在数据库中。

clipboard.png

二、 提取变量

当系统内部某处主动调用该参数时,通过了相对应的命令执行参数,就会产生命令攻击。

clipboard.png

通过Runtime函数,执行命令执行:

clipboard.png

看到这里确定有人一脸懵逼,精明的小伙伴就看出问题了,这二次攻击不是和存储型跨站同样么,没啥区别啊?

然而严格来讲存储型跨站并不属于二次攻击漏洞,存储型跨站虽然也是以数据库做为中转,可是它执行的方式仍是靠人为去点击才能生效,可是二次攻击是存储后主动攻击,这就是根本的区别。
结论

上面两点纯属我的理解,有什么错误的地方请多多指教。

相关文章
相关标签/搜索