本文最后更新于 2024-06-04,文章内容可能已经过时。

渗透测试

一、渗透测试

通过模拟黑客对系统进行攻击的手段或技术,在被测系统中发现漏洞的行为。除了提供漏洞之外,还需提供安全意见。

与黑站不同,渗透测试一般情况下,需要授权。

二、测试类型

1、黑盒测试:不能看到源码,只能通过系统页面进行的测试。

2、白盒测试:通过对源码的代码审计进行的测试。也叫玻璃盒测试。

3、灰盒测试:使用方法可以是黑盒,也可以是白盒。二者结合方式。(通过协议方式,可以理解为灰盒)

三、漏洞的生命周期

POC:Proof ofConcept

Exploit,中文意思是“漏洞利用”

CVE 的英文全称是“Common Vulnerabilities & Exposures”,就是通用漏洞披露,是全球统一的对信息安全漏洞或者已经暴露出来的弱点的公共名称

态势感知:实时监控流量业务,发现入侵行为。image-20231106153602815

1.0day - 1day

2.发掘->利用->传播->补丁->消亡

0day漏洞:又称零日漏洞,是指已经被攻击者发现并开始利用,但还没有被包括受影响软件厂商在内的公众所知的漏洞。

这类漏洞对攻击者来说有完全的信息优势,由于没有漏洞的对应的补丁或临时解决方案,防守方不知道如何防御,攻击者可以达成最大可能的威胁。0day漏洞通常被黑客以高价在黑市上出售,而攻击者则可以静悄悄地利用这些漏洞,直到相关合法机构意识到问题并发布相应的修补程序。由于0day漏洞从被发现到被利用的时间非常短,对于防守方来说,缺乏漏洞细节和具体信息,单纯依靠防火墙或杀毒软件等传统的防御手段难以实施有效检测。因此,阻止0day漏洞利用攻击,最重要的是升级网络防护体系,通过内存保护技术实现实时监控和主动防御。

四、渗透测试流程

image-20231106171154855

五、owasp top 10

**OWASP的全称是Open Web Application Security Project。**这是一个全球性的、非营利的开放式Web应用程序安全项目组织,旨在通过提高设计和开发过程中的安全性来防止Web应用受到黑客攻击。OWASP成立于2004年4月21日,总部位于美国,是一个国际组织,其基金会负责支持世界各地的活动。

(1)失效的访问控制:(cookies就可以被黑客利用,获取高级别的权限)

​ 通俗的说,就是越权。在未通过身份认证的情况下,对系统进行访问。获取与之身份不匹配的访问权限。

​ ①访问其他用户,获取敏感信息;

​ ②修改其他用户数据;

​ ③修改访问权限;

(2)加密机制失效:

​ 以前也叫敏感数据泄露。

​ ①数据采用明文传输。

​ ②用老旧的或者弱加密算法

​ ③未强制执行加密

​ ④不验证服务器证书

(3)注入:

​ 分为sql注入和xss注入:利用web页面上输入域语法校验漏洞,向系统中注入命令或者代码。

​ ①sql注入:将用户的输入内容通过字符串拼接的方式将系统中的sql命令变成另一个sql命令,从而获取数据(拖库)或者获取文件(get shell)。

​ ②xss注入:对用户输入的信息未过滤,将用户输入的代码注入到其他用户的浏览器上。窃取用户信息,伪装身份攻击。

​ ③代码注入:敏感函数中可以执行代码

​ ④命令注入:敏感函数中可以执行操作系统命令。

(4)不安全的设计

​ 2021版新增漏洞,就是指系统在设计上存在的问题。

​ ①弱验证:没有关闭万能验证码

​ ②使用了简单加密

​ ③隐藏的令牌信息

​ ④静态资源注入:上传

(5)安全配置错误

​ 服务器在系统设置中没有安全相关的软件配置或者安全设备设置。

​ ①对应用程序堆栈没有任何安全强化。 补充知识:https://zhuanlan.zhihu.com/p/588249684?utm_id=0

​ ②对云服务权限配置不正确。

​ ③启用了不必要的功能。

​ ④默认账户和密码处于启用状态或者未修改。

​ ⑤错误信息向用户显示。 die(“操作失败!”,mysqli_error($con))

​ ⑥对升级系统,最新安装安全功能被禁用。

​ ⑦服务器中安全设置没有达到安全值

​ ⑧软件过时。

(6)自带缺陷和过时组件;

​ 系统中带有过时组件(已经发现漏洞的组件)

​ ①不知道所使用组件的版本

​ ②不定期扫描组件,不关注官方公告

​ ③没有对组件基于风险而升级

​ ④不测试,不保护组件

(7)身份识别和身份验证错误

​ 攻击者利用用户身份登录系统。

​ ①允许重复多次登录尝试。 验证码 、 限制操作次数

​ ②允许用户使用弱密码。 123456

​ ③密码找回弱验证。

​ ④缺少或者无效的身份验证

​ ⑤在url中公开会话ID

​ ⑥身份失效时间问题。

(8)软件和数据的完整性保障

​ 这也是一个新增的类型,指的是在不验证完整性的情况下做出与软件更新、关键数据和CI/CD管道相关的假设。

​ ①固件更新没有签名

​ ②恶意更新

​ ③不安全的序列化

(9)安全日志和监控故障

​ 指的是在没有日志记录和监控,将无法检测到漏洞,此类故障会直接影响可见性、事件报警和取证。

​ ①不记录可审计的事件

​ ②警告和错误不生成报告,或者报告内容不清楚

​ ③不监控应用程序的可疑操作。

​ ④日志仅存储在本地

​ ⑤适当的报警阈值响应升级流程没有到位

​ ⑥渗透测试和扫描不报警

(10)服务器请求伪造 ssrf

​ 这一漏洞是在行业调查中添加的,数据显示发生概率较低。

​ ①通过url访问资源,获取敏感文件

​ ②通过url进行内网扫描(ip,端口)