【5.20】五、安全测试——渗透测试

news/2024/10/23 7:40:06/

目录

5.3 渗透测试

5.3.1 什么是渗透测试

5.3.2 渗透测试的流程


5.3 渗透测试

5.3.1 什么是渗透测试

渗透测试是利用模拟黑客攻击的方式,评估计算机网络系统安全性能的一种方法。这个过程是站在攻击者角度对系统的任何弱点、技术缺陷或漏洞进行主动分析,并且有条件地主动利用安全漏洞。

根据实际应用,普遍认为渗透测试分为黑盒测试、白盒测试2类,其中黑盒测试中,渗透者完全处于对系统一无所知的状态,而白盒测试则恰恰相反,渗透者在完全了解程序结构的情况下进行测试

  • (1)渗透测试是一个渐进的并且逐步深入的过程。
  • (2)渗透测试是选择不影响业务系统正常运行的攻击方法进行的测试。

5.3.2 渗透测试的流程

(1)明确目标

当测试人员拿到需要做渗透测试的项目时,首先确定测试需求,如测试是针对业务逻辑漏洞,还是针对人员管理权限漏洞等;然后确定客户要求渗透测试的范围,如IP段、域名、整站渗透或者部分模块渗透等;最后确定渗透测试规则,如能够渗透到什么程度,是确定漏洞为止还是继续利用漏洞进行更进一步的测试,是否允许破坏数据,是否能够提升权限等。

(2)收集信息

在信息收集阶段要尽量收集关于项目软件的各种信息。例如,对于一个Web应用程序,要收集脚本类型、服务器类型、数据库类型以及项目所用到的框架、开源软件等。信息收集对于渗透测试来说非常重要,只有掌握目标程序足够多的信息,才能更好地进行漏洞检测

  • ① 主动收集:通过直接访问、扫描网站等方式收集想要的信息,这种方式可以收集的信息比较多,但是访问者的操作行为会被目标主机记录。
  • ② 被动收集:利用第三方服务对目标进行了解,如上网搜索相关信息。这种方式获取的信息相对较少且不够直接,但目标主机不会发现测试人员的行为。

(3)扫描漏洞

综合分析收集到的信息,借助扫描工具对目标程序进行扫描,查找存在的安全漏洞

(4)验证漏洞

在扫描漏洞阶段,测试人员会得到很多关于目标程序的安全漏洞,但这些漏洞有误报,需要测试人员结合实际情况,搭建模拟测试环境对这些安全漏洞进行验证。被确认的安全漏洞才能被利用执行攻击。

(5)分析信息

经过验证的安全漏洞就可以被利用起来向目标程序发起攻击,但是不同的安全漏洞,攻击机制并不相同,针对不同的安全漏洞需要进一步分析,包括安全漏洞原理、可利用的工具、目标程序检测机制、攻击是否可以绕过防火墙等,制订一个详细精密的攻击计划,这样才能保证测试顺利执行。

(6)渗透攻击

渗透攻击就是对目标程序发起真正的攻击,达到测试目的,如获取用户账号密码、截取目标程序传输的数据、控制目标主机等。一般渗透测试是一次性测试,攻击完成之后要执行清理工作,删除系统日志、程序日志等,擦除进入系统的痕迹。

(7)整理信息

渗透攻击完成之后,整理攻击所获得的信息,为后面编写测试报告提供依据。

(8)编写测试报告

测试完成之后要编写测试报告,阐述项目安全测试目标、信息收集方式、漏洞扫描工具以及漏洞情况、攻击计划、实际攻击结果、测试过程中遇到的问题等。此外,还要对目标程序存在的漏洞进行分析,提供安全有效的解决办法。


http://www.ppmy.cn/news/75293.html

相关文章

Java中基础数据类型与包装数据类型

文章目录 基础数据类型与包装数据类型有哪些?为什么会有包装数据类型?基础数据类型与包装数据类型两者的区别?包装数据类型的相关方法? 基础数据类型与包装数据类型有哪些? 基本数据类型对应的包装数据类型byteByteshortShortin…

微服务---Redis实用篇-黑马头条项目-优惠卷秒杀功能(使用java阻塞队列对秒杀进行异步优化)

Redis实用篇-黑马头条项目-优惠卷秒杀功能(使用java阻塞队列对秒杀进行异步优化) 1、秒杀优化 1.1 秒杀优化-异步秒杀思路 我们来回顾一下下单流程 当用户发起请求,此时会请求nginx,nginx会访问到tomcat,而tomcat中的程序,会进…

1194: 7208 遍历迷宫

题目描述 迷宫导航是人工智能领域一个常见的问题,迷宫中有走廊和墙壁,机器人可以通过走廊,但不能穿过墙壁。 输入 输入数据文件包含多个测试数据。 每个测试数据的第一行是两个整数:M和N,表示迷宫的大小&#xff0c…

回归分析-简单线性回归推导

回归分析-简单线性回归模型 在大数据分析中,回归分析是一种预测性的建模技术,它研究的是因变量(目标)和自变量(预测器)之间的关系。这种技术通常用于预测分析,时间序列模型以及发现变量之间的因…

什么是Java中的Lambda表达式?

在Java 8中引入了Lambda表达式,它是一种匿名函数,可以作为参数传递给方法或存储在变量中。Lambda表达式使得编写简洁、灵活的代码成为可能,并促进了函数式编程在Java中的使用。 Lambda表达式的基本语法如下: javaCopy code (par…

MySQL保证主备一致,如何解决循环复制?

备库只读,是如何和主库同步数据的? 你可能会问,我把备库设置成只读了,还怎么跟主库保持同步更新呢? 这个问题,你不用担心。因为 readonly 设置对超级 (super) 权限用户是无效的,而用于同步更新…

如何以零停机时间或最少停机时间更新 Docker 容器,来确保应用程序持续可用

在现代应用程序开发和部署中,容器化技术已经成为一种常见的选择。Docker 容器的优势在于其轻量级、可移植性和可扩展性,但在更新容器时可能会面临停机时间的问题。本文将详细介绍如何以零停机时间或最少停机时间更新 Docker 容器,以确保应用程…

一、数据字典介绍

文章目录 一、数据字典介绍1、页面效果2、表设计3、数据分析4、根据页面效果分析数据接口 一、数据字典介绍 何为数据字典?数据字典就是管理系统常用的分类数据或者一些固定数据,例如:省市区三级联动数据、民族数据、行业数据、学历数据等&a…