代码审计利器-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源代码审计系统的主要内容,如果未能解决你的问题,请参考以下文章