漏洞扫描技术:对Web应用程序进行漏洞扫描
Web应用程序最大的威胁还是来自内部代码的威胁,这种威胁主要来源于Web程序开发者在开发过程中出现的失误,或者因为使用了不安全的函数或者组件造成的。由于世界上的Web程序数量极其众多,因而对其进行研究十分复杂。目前国际上对Web安全的权威参考主要来自开放式Web应用程序安全项目(OWASP),它是由Mark Cuphey在2009年创办的,该项目致力于对应用软件的安全研究。zaproxy是世界上很受欢迎的免费安全扫描工具之一,由数百名国际志愿者积极维护它可以帮助我们在开发和测试应用程序时自动查找Web应用程序中的安全漏洞。
1. 实验环境:
OS: Linux kali 5.16 amd64
靶机:Metasploitable2-Linux
2. 安装zaproxy
1. 升级apt-get install
┌──(root💀kali)-[~]
└─# apt-get install update
2. 安装zaproxy
┌──(root💀kali)-[~]
└─# apt-get install zaproxy
3. 启动zaproxy
┌──(kali㉿kali)-[~]
└─$ zaproxy
启动之后,会询问是否保存进程,以及如何保存,如下图所示:
在此选择不保存,也就是第三个选项。zaproxy的功能十分完善,在此仅练习它的扫描功能。启动之后的zaproxy页面如下图:
4. 通过ZAP打开浏览器
在zaproxy的右上角提供了浏览器的快捷按钮,点击这里打开浏览器可以通过人工操作的形式完成认证、访问等操作。如下图所示:
5. 访问靶机(metasploitable2)的dvwa地址,并输入用户名和密码完成登录
6. 进入DVWA页面调整DVWA Security 为low并提交
点击左侧SQL Injection,在右侧User ID填1提交,然后返回zaproxy页面发现左侧树状结构图中多了一些dvwa的一些页面,如下图所示:
注意:对于Web页面来说,它的漏洞往往分布在各个页面中,也就说我们需要分页面对其进行扫描。
鼠标右键点击上图红框内,点击Attack再点击Active Scan…,如下图所示:
如下图所示:点击Alerts就可以看到扫描结果了
从上图中可以看到当前页面存在SQL注入漏洞。同样的方法也可以扫描其他页面存在的漏洞。
7. 代码审计
除了这种扫描方式之外,还有一种代码审计方法。两者的区别注意在于扫描时是不知道目标Web应用程序代码的,相当于黑盒测试;而代码审计时是知道Web应用程序代码,可以看作白盒测试。如果在网络上找到dvwa的代码文件,就可以对其进行代码审计了。目前市面上既有价格昂贵的商业版代码审计工具,也有免费的审计工具。现选一款简单而免费的开源工具RIPS。RIPS是一款用PHP开发的开源的代码审计工具,程序很小,但是对PHP语法分析非常精准。
首先进入官网下载rips的压缩包,如下图所示:
点击下图所示板块(Download + Installation)中的“here”,进入下载页面,点击下载rips的压缩包。
本实验,下载到/home/kali/Downloads/文件夹中,对其解压,解压后将其复制到apache的工作目录中,命令如下:
┌──(kali㉿kali)-[~]
└─$ sudo cp -r /home/kali/Downloads/rips-0.55 /var/www/html/
然后重启apche2服务,命令如下:
┌──(kali㉿kali)-[~]
└─$ service apache2 start
将下载的dvwa解压之后放置在/home/kali/Downloads/中,然后在path/file中选择中dvwa所在的目录,如下图所示:
单击scan,得到扫描结果,如下图所示:
图中每个部分都有超级链接,如果单击链接就可以看到里面详细内容,例如点击File Inclusion就可以看到产生该问题的页面和代码, 如下图所示: