今天继续给大家介绍渗透测试相关知识,本文主要内容是Seay代码审计系统审计实战。
免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!
一、Seay代码审计系统简介
Seay是一款基于C#语言开发的针对PHP代码进行安全审计的工具。该工具具有图形化页面,主要运行在Windows系统上,能够发现包括SQL注入、代码执行、命令执行、文件包含、文件上传、绕过转义防护、XSS跨站等的PHP漏洞。另外,在功能上,Seay具有一键审计、代码调试、函数定位、插件扩展、代码高亮、数据库执行监控等。Seay下载安装后页面如下所示:
二、Seay代码审计系统审计实战
下面,我们就使用Seay代码审计工具,对某一未知类型的CMS进行代码审计,该网站主页如下所示:
我们首先来进行SQL注入的代码审计。将该主页作为项目添加到Seay代码审计工具后,点击上方的“审计插件”——“MySQL监控”,如下所示:
在弹出的插件页面,我们输入MySQL数据库的用户名和密码,然后点击更新,结果如下所示:
这样,Seay就开始监控MySQL数据库的SQL语句执行情况了。接下来,我们就可以对搭建好的站点进行操作。来到Seay的MySQL审计插件后,再次点击“更新”,就会帮助我们显示出当前执行的所有SQL命令,如下所示:
这样,我们就可以利用这一插件,分析在有所的SQL语句中,用户可以控制的字段,这一字段就有可能存在SQL注入漏洞。从上图可得,这一个SQL语句中存在非常可疑的127.0.0.1字段。我们需要利用Seay查找该SQL语句出现的位置,Seay拥有项目全局搜索的功能,查找结果如下所示:
可以发现,该SQL语句定义在functon.php的ywdd()方法内,如下所示:
但是在index.php文件中被调用,如下所示:
该函数的输入是getIP()函数的输出,getIP()函数定义在funciton.php函数中,如下所示:
这样,我们最终从getIP()函数中终于发现了ip参数的产生来源,可以看出,我们可以通过控制X-Forwarded-For头的方式,来控制该参数的值,进而实现SQL注入的目的。
因此,我们使用BurpSuite抓包,并且在抓到的数据包中添加X-Forwarded-For头,把SQL注入的payload放到该头部字段,就可以进行SQL注入了,结果如下所示:
X-Forwarded-For: 【payload】
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200