基于Seay的PHP源代码审计

实验项目基于Seay的PHP源代码审计
综合性实验2020年11月11日

一、实验综述

1.实验目的及要求

(1)掌握源代码分析的基本原理
(2)掌握Seay工具的使用
(3)结合源代码分析原理对DVWA平台的代码进行分析

2.实验仪器、设备或软件
VMWARE、
win7虚拟机、
phpstudy、
DVWA-master
3.实验原理
  • php代码审计对php源代码进行审查,理解代码的逻辑,发现其中的安全漏洞。如审计代码中是否存在sql注入,则检查代码中sql语句到数据库的传输 和调用过程。还有一些危险的系统函数,上传,执行函数等。
  • 这是一款基于C#语言开发的一款针对PHP代码安全性审计的系统,主要运行于Windows系统上。这款软件能够发现SQL注入、代码执行、命令执行、文件包含、文件上传、绕过转义防护、拒绝服务、XSS跨站、信息泄露、任意URL跳转等漏洞。
  • Seay源代码审计系统主要特点:
    (1)一键自动化白盒审计
    (2)代码调试
    (3)正则编码
    (4)自定义插件及规则

二、实验过程(步骤过程、数据记录)

1.步骤

(1)使用ipconfig查看虚拟机IP地址,我的虚拟机的IP地址192.168.45.128
在这里插入图片描述

(2)下载Seay源代码审计系统软件,解压安装到本地安装。

在这里插入图片描述

(3)运行Seay源代码审计系统软件

在这里插入图片描述

(4)点击新建项目,选择DVWA安装的目录,点击“确定”(新建项目就是告诉系统需要对哪部分的文件进行审计)。

在这里插入图片描述

(5)点击“自动审计”,自动审计即对所有的文件审计一遍。

在这里插入图片描述

(6)点击“开始”

在这里插入图片描述

(7)系统将列出扫描的可疑漏洞,如文件包含漏洞、任意文件读取漏洞等。通过分析可以熟悉Web安全的相关漏洞,可以将漏洞位置与代码对应起来,从而理解在代码的某个部分可能存在潜在漏洞。

在这里插入图片描述

(8)选中相关的漏洞,双击漏洞信息,以sql注入为例

在这里插入图片描述

(9)点击View Source按钮生成源码,定位代码中可能存在漏洞的部分

在这里插入图片描述

(10)选中漏洞信息,点击右键,选择“生成报告”,

在这里插入图片描述
(11)生成报告成功。

在这里插入图片描述

(12)打开生成的报告,报告包含漏洞描述、文件路径和漏洞详细。

在这里插入图片描述
(13)选择163行,命令执行漏洞进行测试。首先,会将输入ip给了target,然后第十九行会ping一下target。

在这里插入图片描述

(14)打开虚拟机中的phpstudy,并开启Apache和MySql服务,从主机中验证一下相关漏洞。

在这里插入图片描述
(15)在主机上登录DVWMA ;输入Uesrname:admin;Password:password

在这里插入图片描述
(16)选择low级别

在这里插入图片描述

(17)左侧选择“Command Injection”, 显示界面如下:

在这里插入图片描述

根据以上使用Seay系统对sql注入漏洞的分析,可知如果存在漏洞,就会Ping一下这个ip。我这里选的Ip为127.0.0.1

在这里插入图片描述

结果显示输入ip后会ping一下,验证了Seay代码审计的正确性。

在这里插入图片描述

(18)点击View Source生成源码,并对源码进行分析。Ping –c4 是在linux下,如果不加的话,会一直ping下去。在windows下,直接使用ping就行。

在这里插入图片描述

(19)与Seay分析的结果进行比较,其实两者分析结果是一样的。

在这里插入图片描述

(20)点击全局搜索,输入shell_exec,点击“查找”。如果代码中有函数:shell的话,就可能存在漏洞,通过全局搜索,查找与此函数相关的漏洞。

在这里插入图片描述
查找之后会显示DVWA目录下所有有关shell函数的语句。与ping语句对应起来,会发现他有shell exec函数。

在这里插入图片描述
(21)选择信息泄露审计,显示代码中所有存在信息泄露代码隐患的

在这里插入图片描述
(22)站点地址输入http://localhost/DVWA-master,点击“开始”,会查找该路径下所有存在信息泄露的漏洞。

在这里插入图片描述

(23)选择代码进行调试。

在这里插入图片描述
(24)代码调试功能:输入代码echo(“1”),点击执行按钮。并观察显示窗口显示的运行结果。

在这里插入图片描述
输入1,点击执行后,会在执行结果窗口显示1;执行结果会根据输入显示相应内容;如:输入hello world ,也会显示hello world

在这里插入图片描述

三、结果讨论与分析

1.实验结果

通过Seay系统和我们通过DVWA的command injection漏洞的信息进行对比,发现同一漏洞的实质是相同的,因此验证了Seay系统的正确性。

2.分析总结

在日常分析软件漏洞时,经常需要耗费比较长的分析时间,少则几小时,多则数天,甚至更久。因此,经常总结一些分析技巧是非常有必要的,针对不同的漏洞类型采取不同的分析思路和技巧,可以有效地提高分析速度。对于一些被曝出来的热门0day,网上一般都会有分析文章,但一般都是“结论性分析”,也就是直接帖漏洞代码,指出哪里出错,而非“思路性分析”。如果你经常分析漏洞的话,会发现占用你分析时间的往往不是分析漏洞代码,而是定位漏洞代码。所以说,调试分析漏洞有时就是看下断点下得准不,再加上一些胡猜乱想来推测,最后才是分析漏洞代码了,如果熟悉汇编指令,这个就不是问题了。

V2.0.3版本修复已知的3个小BUG,感谢“好好学习,天天向上”提交的一个bug。欢迎提交BUG和功能建议,目前已经收集两个新功能。 希望大家一起完善 让代码审计更高效 Seay PHP代码审计工具说明 序 本人目前就读重庆某软件学院软件测试专业,将于2013年1月底毕业,为了扎实基础,于是有时间就会找一些源码研究,有时候想走走捷径,提高下效率,于是开始找一些代码审计的工具,但是目前国内貌似没有发现专业的这类工具,于是就萌发了编写这个PHP代码审计工具的想法,并付足于行动。 那为什么写PHP的呢?从目前主流的四大动态网页编程(ASP/ASPX/PHP/JSP)语言来分析,目前最火的是PHP,很多CMS等很大一部分是PHP,安全性最难控制的也是PHP,怎么难控制就不说了,既然都开始玩代码审计了,应该懂得。 该版本目前支持单个关键字扫描、批量函数扫描、批量正则匹配,其中正则表达式扫描精确度最高,效率最高。 其他功能: 源码浏览:载入程序源码后,可以在最左边的程序文件列表里面点击浏览源码,扫描出包含关键字的源码,也可以在下边的列表点击直接浏览。代码可以直接复制,或者选择用记事本打开。 漏洞库:每次做代码审计可以在漏洞库建立一个审计文档,方便以后查阅、管理。 扫描配置:自定义扫描函数和正则表达式规则,针对要扫描的程序可以建立不同的规则,其中正则表达式扫描精确度更高。 审计技巧:收集了一下PHP代码审计的资料,提供给新手学习。 程序帮助:一些程序信息和作者信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zkaisen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值