如何学习代码审计

发布时间:2019-09-25 10:31:10 阅读:11560

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

什么是逆向跟踪  

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

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

1、查看全局文件web.xml

图片1.png

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

2、寻找漏洞触发点

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

图片2.png

因为安全的写法是这样的:

图片3.png

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

图片4.png

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

图片5.png

发现该“searchword”是从前端页面传入,因此可以确定漏洞存在,SQLmap截图如下:

图片6.png

返回顶部
意见反馈
意见内容
您的姓名
您的电话
验证码