PHP源代码漏洞分析

实验项目 PHP源代码漏洞分析实验
综合性实验 2020年10月31日

一、实验综述

1.实验目的及要求

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

2.实验仪器、设备或软件

Vmware station
PHPstudy
DVWA
Windows7操作系统

3.实验原理

(1)软件漏洞:
软件漏洞分析技术主要分为:软件架构安全分析技术、源代码漏洞分析技术、二进制漏洞分析技术和运行系统漏洞分析技术四大类。
(2)源代码漏洞分析原理:
源代码漏洞分析主要是对高级语言编写的程序进行分析以发现漏洞。源代码作为软件的最初原型,其中的安全缺陷可能直接导致软件漏洞分产生,因此源代码漏洞分析显得尤为重要。目前源代码漏洞分析主要采用静态分析的方法,由于该方法不受程序的输入和运行环境等因素的影响,所以可能发现动态分析难以发现的软件漏洞。源代码漏洞分析一般包含源代码的模型提取,对历史漏洞、程序代码进行特征提取,静态的漏洞分析和结果分析等四个步骤,通过这四个步骤完成对源代码的漏洞分析。

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

1.步骤

(1)查看虚拟机windows7的IP地址,使用DOS命令:ipconfig

PHP源代码漏洞分析_第1张图片
(2)在虚拟机中开启phpstudy中的apache和mysql

PHP源代码漏洞分析_第2张图片

(3)在主机上访问DVWA客户端:http://192.168.45.128/DVWA-master/login.php

PHP源代码漏洞分析_第3张图片
(4)将rips文件夹放入虚拟机以下的路径中: C:\phpstudy_pro\WWW\

PHP源代码漏洞分析_第4张图片
(5)主机访问rips: http://192.168.45.128/rips

PHP源代码漏洞分析_第5张图片

(6)Rips的相关配置:
将文件路径(path/file)设置为虚拟机中DVWA-master的存储路径
代码风格:(Code style)采用默认的ayti
漏洞类型(Vuln type)选择SQL Injection
默认勾选:subtirs,表示对所选文件路径下的子目录的相关文件也要进行分析。

PHP源代码漏洞分析_第6张图片
(7)点击scan按钮,出现如下界面:

PHP源代码漏洞分析_第7张图片
分析:提示有359个文件,是否继续进行分析

(8)点击continue按钮,显示sql注入漏洞结果:

PHP源代码漏洞分析_第8张图片
分析:总共用时4914秒;SQL注入漏洞数量5个;扫描文件359个;

(9)以SQL注入漏洞的low.php为例进行漏洞分析,进一步分析其他功能

PHP源代码漏洞分析_第9张图片

(10)左侧有review code表示可以将源代码显示出来。

PHP源代码漏洞分析_第10张图片
对比源文件与现实出来的文件,可以找出两者之间的对应关系。
自动分析出了哪些地方有SQL注入漏洞。可以和数据流分析等进行对应。

PHP源代码漏洞分析_第11张图片
在源代码中第3行、第8行、第9行会现实红色,表示此处有SQL注入漏洞。
在分析结果的显示中,我们也可以看到对应的是第3行、第8行和第9行。

9: mysqli_query $result = mysqli_query($GLOBALS['___mysqli_ston'], $query) or die ('
' . (mysqli_error($GLOBALS['___mysqli_ston']) : ($___mysqli_res : false)) . '
'); 8: $query = "SELECT first_name, last_name FROM users WHERE user_id = '$id';"; 5: $id = $_REQUEST['id']; requires: 3: if(isset($_REQUEST['Submit']))

(11)左侧有 get help,查看sql注入的相关介绍

PHP源代码漏洞分析_第12张图片
(12)左侧有generate exploit

PHP源代码漏洞分析_第13张图片

生成脚本如下:

PHP源代码漏洞分析_第14张图片

2.数据记录

PHP源代码漏洞分析_第15张图片

三、结果讨论与分析

1.实验结果

通过此次实验,我掌握源代码分析的基本原理,结合源代码分析原理对DVWA平台的SQL注入漏洞进行分析,并成功找到了5个漏洞。

2.分析讨论

软件漏洞分析技术多种多样,需要针对软件的来源,漏洞的类型,分析人员的擅长等因素进行选择。在汇报的实验中,由于都是针对某个漏洞类型进行验证,没有涉及到软件架构和系统等概念,故实验中主要利用二进制漏洞分析技术中的静态分析、动态分析和动静结合的分析技术。针对动态分析技术,所使用的软件有:OllyDbg和Windbg,选择Windbg有个特点,即其对于Windows自带原生的软件更加适用;针对静态分析技术,所使用的软件为IDA Pro。

你可能感兴趣的:(软件安全,php,安全漏洞,vmware)