Seay压缩文件
解压Seay后进行安装
一路默认即可
下载安装.net相关组件即可正常使用
主界面如图
5.2 实验任务二
这次还是以dvwa为例
左上角新建项目,选择dvwa源码文件夹
点击确定后在左侧列出了文件组织结构
点击上方菜单栏的自动审计
点击开始
就会开始审计
进度显示在下方
我们可以点击生成报告,方便持续跟踪审计
在浏览器中查看,漏洞类型,文件路径,可疑函数都一目了然
回到审计系统中,仔细看看扫描结果
不难发现,审计的结果大部分还是比较准的,比如ID为156-163的,审计出来的结果是命令执行,看文件路径是属于exec的,我们知道dvwa的源码中exec文件夹下就是存放命令执行的web服务的.再比如ID为166,167的,审计出来是文件包含漏洞,同样对比源码可知,在dvwa下fi文件夹中放的就是文件包含的web服务.
我们再看漏洞详细这一栏,可以看到它给出了具体文件路径中疑似出现漏洞的语句.
以160,161的命令执行为例
在漏洞详情中可以看到疑似造成漏洞的语句
不过具体情况还是得分析上下文,所以我们双击,打开完整的文件
可以看到第10行和第14行正是前面发现的两处漏洞所在地,之所以还有两条是因为首先判断操作系统,然后根据系统不同执行不同的ping语句.
我们是在windows上,所以shell_exec执行的是ping t a r g e t , 而 target,而 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.