漏洞扫描技术:对Web应用程序进行漏洞扫描

简介: 漏洞扫描技术:对Web应用程序进行漏洞扫描

漏洞扫描技术:对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

image.png

3. 启动zaproxy

┌──(kali㉿kali)-[~]
└─$ zaproxy

启动之后,会询问是否保存进程,以及如何保存,如下图所示:

image.png

在此选择不保存,也就是第三个选项。zaproxy的功能十分完善,在此仅练习它的扫描功能。启动之后的zaproxy页面如下图:

image.png

4. 通过ZAP打开浏览器
在zaproxy的右上角提供了浏览器的快捷按钮,点击这里打开浏览器可以通过人工操作的形式完成认证、访问等操作。如下图所示:

image.png

5. 访问靶机(metasploitable2)的dvwa地址,并输入用户名和密码完成登录
image.png

6. 进入DVWA页面调整DVWA Security 为low并提交
image.png

点击左侧SQL Injection,在右侧User ID填1提交,然后返回zaproxy页面发现左侧树状结构图中多了一些dvwa的一些页面,如下图所示:

image.png
image.png

注意:对于Web页面来说,它的漏洞往往分布在各个页面中,也就说我们需要分页面对其进行扫描。

鼠标右键点击上图红框内,点击Attack再点击Active Scan…,如下图所示:

image.png

如下图所示:点击Alerts就可以看到扫描结果了

image.png

从上图中可以看到当前页面存在SQL注入漏洞。同样的方法也可以扫描其他页面存在的漏洞。

7. 代码审计
除了这种扫描方式之外,还有一种代码审计方法。两者的区别注意在于扫描时是不知道目标Web应用程序代码的,相当于黑盒测试;而代码审计时是知道Web应用程序代码,可以看作白盒测试。如果在网络上找到dvwa的代码文件,就可以对其进行代码审计了。目前市面上既有价格昂贵的商业版代码审计工具,也有免费的审计工具。现选一款简单而免费的开源工具RIPS。RIPS是一款用PHP开发的开源的代码审计工具,程序很小,但是对PHP语法分析非常精准。

首先进入官网下载rips的压缩包,如下图所示:
image.png

点击下图所示板块(Download + Installation)中的“here”,进入下载页面,点击下载rips的压缩包。

image.png

本实验,下载到/home/kali/Downloads/文件夹中,对其解压,解压后将其复制到apache的工作目录中,命令如下:

┌──(kali㉿kali)-[~]
└─$ sudo cp -r /home/kali/Downloads/rips-0.55 /var/www/html/

然后重启apche2服务,命令如下:

┌──(kali㉿kali)-[~]
└─$ service apache2 start

然后访问http://127.0.0.1/rips-0.55/index.php或者http://127.0.0.1/rips-0.55/rips-0.55/index.php就可以打开rips了,具体要查看里面的目录如下图所示:
image.png

将下载的dvwa解压之后放置在/home/kali/Downloads/中,然后在path/file中选择中dvwa所在的目录,如下图所示:

image.png

单击scan,得到扫描结果,如下图所示:

image.png

图中每个部分都有超级链接,如果单击链接就可以看到里面详细内容,例如点击File Inclusion就可以看到产生该问题的页面和代码, 如下图所示:

image.png

相关文章
|
4月前
|
缓存 前端开发 应用服务中间件
Web端实时通信技术SSE在携程机票业务中的实践应用
本文介绍了携程机票前端基于Server-Sent Events(SSE)实现服务端推送的企业级全链路通用技术解决方案。文章深入探讨了 SSE 技术在应用过程中包括方案对比、技术选型、链路层优化以及实际效果等多维度的技术细节,为类似使用场景提供普适性参考和借鉴。
107 7
|
5月前
|
安全 测试技术 Linux
Acunetix v25.4 发布 - Web 应用程序安全测试
Acunetix v25.4 (Linux, Windows) - Web 应用程序安全测试
162 3
Acunetix v25.4 发布 - Web 应用程序安全测试
|
4月前
|
安全 Devops 测试技术
AppSpider 7.5.018 for Windows - Web 应用程序安全测试
AppSpider 7.5.018 for Windows - Web 应用程序安全测试
73 0
AppSpider 7.5.018 for Windows - Web 应用程序安全测试
|
7月前
|
安全 JavaScript Java
AppSpider Pro 7.5.015 for Windows - Web 应用程序安全测试
AppSpider Pro 7.5.015 for Windows - Web 应用程序安全测试
85 12
AppSpider Pro 7.5.015 for Windows - Web 应用程序安全测试
|
6月前
|
自然语言处理 安全 测试技术
HCL AppScan Standard 10.8.0 (Windows) - Web 应用程序安全测试
HCL AppScan Standard 10.8.0 (Windows) - Web 应用程序安全测试
293 0
HCL AppScan Standard 10.8.0 (Windows) - Web 应用程序安全测试
|
10月前
|
开发框架 搜索推荐 数据可视化
Django框架适合开发哪种类型的Web应用程序?
Django 框架凭借其强大的功能、稳定性和可扩展性,几乎可以适应各种类型的 Web 应用程序开发需求。无论是简单的网站还是复杂的企业级系统,Django 都能提供可靠的支持,帮助开发者快速构建高质量的应用。同时,其活跃的社区和丰富的资源也为开发者在项目实施过程中提供了有力的保障。
355 67
|
10月前
|
人工智能 安全 物联网
区块链技术的未来展望:去中心化金融(DeFi)与Web 3.0的融合
区块链技术的未来展望:去中心化金融(DeFi)与Web 3.0的融合
|
10月前
|
监控 前端开发 JavaScript
使用 MERN 堆栈构建可扩展 Web 应用程序的最佳实践
使用 MERN 堆栈构建可扩展 Web 应用程序的最佳实践
187 6
|
10月前
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
191 6
|
10月前
|
XML 前端开发 JavaScript
PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑
本文深入探讨了PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑;Ajax则通过异步请求实现页面无刷新更新。文中详细介绍了两者的工作原理、数据传输格式选择、具体实现方法及实际应用案例,如实时数据更新、表单验证与提交、动态加载内容等。同时,针对跨域问题、数据安全与性能优化提出了建议。总结指出,PHP与Ajax的结合能显著提升Web应用的效率和用户体验。
213 3