代码审计利器-Seay源代码审计系统

Posted klmyoil

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代码审计利器-Seay源代码审计系统相关的知识,希望对你有一定的参考价值。

Seay源代码审计系统一款基于白盒测试的代码审计工具,具有自动代码审计功能,简化了人工审计的繁琐流程,使代码审计更加智能简洁。

技术图片

一路默认安装

技术图片

 

下载安装.net相关组件即可正常使用

技术图片

 

 

 技术图片

 

这次还是以dvwa为例

      左上角新建项目,选择dvwa源码文件夹

 

技术图片

 

 

点击确定后在左侧列出了文件组织结构

技术图片

 

 

点击上方菜单栏的自动审计

 技术图片

进度显示在下方

我们可以点击生成报告,方便持续跟踪审计

技术图片

 

在浏览器中查看,漏洞类型,文件路径,可疑函数都一目了然

 

技术图片

 

回到审计系统中,仔细看看扫描结果

技术图片

 

不难发现,审计的结果大部分还是比较准的,比如ID为156-163的,审计出来的结果是命令执行,看文件路径是属于exec的,我们知道dvwa的源码中exec文件夹下就是存放命令执行的web服务的。再比如ID为166,167的,审计出来是文件包含漏洞,同样对比源码可知,在dvwa下fi文件夹中放的就是文件包含的web服务。

我们再看漏洞详细这一栏,可以看到它给出了具体文件路径中疑似出现漏洞的语句。

以160,161的命令执行为例

 在漏洞详情中可以看到疑似造成漏洞的语句

 技术图片

 不过具体情况还是得分析上下文,所以我们双击,打开完整的文件

技术图片

 

可以看到第10行和第14行正是前面发现的两处漏洞所在地,之所以还有两条是因为首先判断操作系统,然后根据系统不同执行不同的ping语句。

 我们是在windows上,所以shell_exec执行的是ping $target,而$target正是我们传入的变量。

这里的trick在于:

windows和Linux系统中都可以用”;”、 ”&&”、”||”和”&”来执行多条命令

      ; :执行多个指令,前一个执行失败都没有关系

      &&:前一个指令执行成功后才能执行后一个指令

      ||:前一个指令执行失败后才能执行后一个指令

      &:两个命令同时执行(时间不分先后)

      程序默认我们传入的是ip地址,可是如果我们在ip地址后面加上上面提到的四个符号中的一个,那么就可以执行其他命令了

 

技术图片

 

输入127.0.0.1果然是返回ping之后的结果,然后我们再用127.0.0.1&&netstat –ano 试试

 

技术图片

 

果然,在执行了ping之外,还执行了我们额外的命令,这就是命令执行漏洞了

Seay审计系统典型的使用方法就是这样了,需要注意的是,Seay的功能不限于此,比如说全局搜索,以shell_exec为例

 

技术图片

 

 

可以帮助我们列出容易造成漏洞的函数,再快速定位到可能存在漏洞的文件

再比如说审计插件

 技术图片

 

 

可以自己开发一些插件用于审计,作者也已经内置了几款,比如信息泄露插件,可以快速审计可能存在的信息泄露风险,在站点地址输入路径以后就可以自动审计了

技术图片

 

还有很多其他功能,请自行探索使用。

事实上Seay进行审计最主要的方法就是正则匹配,就是用一些容易造成漏洞的函数语句去匹配源码中是否存在,由于这种审计机制,所以也存在一定的误报率。工具毕竟只是一方面,更重要的是人工来判断。

代码审计比较流行的两款工具已经介绍完了,在后续的实验中,我们将会开始实战一些小型的cms。

以上是关于代码审计利器-Seay源代码审计系统的主要内容,如果未能解决你的问题,请参考以下文章

Seay源代码审计系统

Seay源代码审计系统

PHP代码审计实战思路浅析

使用Seay进行代码安全审计

安装Seay代码审计工具

e语言代码如何审计