[web教学] WEB十大安全弊端(OWASP Top 10)与渗透测试记载

[复制链接]
查看1948 | 回复0 | 2023-8-23 12:11:29 | 显示全部楼层 |阅读模式 来自 中国北京
1. 前言

        每年 OWASP(开放 Web 应用步调安全项目)都会发布十大安全弊端。它代表了对 Web 应用步调最关键的安全风险的广泛共识。相识十大WEB弊端种类并善于在渗透测试中发现弊端是安全行业职员的根本要求。
2. OWASP TOP 10

2.1 OWASP Top10 2022

1.失效的访问控制
2.加密机制失效
3.注入
4.不安全的计划
5.安全设置错误
6.易受攻击和逾期的组件
7.辨认和认证失败
8.软件和数据完备性故障
9.安全日志记载和监控失败
10.服务器端请求伪造(SSRF)
2.2 OWASP Top10简述

2.2.1 失效的访问控制

        访问控制实行策略以防止用户超出其指定权限范围举行利用。由于访问弊端,未经身份验证或不受接待的用户大概会访问机密数据和进程以及用户权限设置。 元数据利用,包括窜改或重放 JSON Web 令牌 (JWT) 访问控制令牌,或修改 cookie 或隐蔽字段以进步权限或使用 JWT 失效,都是访问控制弊端的一个示例。第二个例子是违反默认拒绝原则。必须仅向特定脚色、本领或用户授予访问权限,但每个人都可以访问。此类错误大概使攻击者可以轻松访问他们想要的一切。 但是,可以通过应用安全编码方法并接纳预防步调(例如禁用管理员帐户和限制以及安装多因素身份验证)来制止访问安全机制不敷以及身份或密码管理问题。
        其他预防技术包括:
        -仅欺压实行一次访问控制机制,并在应用步调期间重复使用它们,以减少跨域资源共享 (CORS)。
       -范畴模型应该施加差别的应用步调业务限制束缚。
       -限制对应用步调编程接口 (API) 和控制器的访问,以减轻自动攻击工具的影响。
       -在访问控制中记载故障并根据必要向管理员发出警报。
       -模型访问控制必须欺压实行记载全部权,而不是授予用户创建、查看、修改或删除任何信息的权限。
2.2.2 机密机制失效

        这里的重点在于常常袒露敏感数据的密码错误或缺少密码错误。以下是敏感信息泄露的范例例子
        会话令牌
        登录 ID 和密码
        网上生意业务
        个人信息(交换服务网络或SSN、康健记载等)
        例如,应用步调可以使用自动数据库加密来安全地加密名誉卡数据。不幸的是,当访问此信息时,它会立即未加密,从而导致 SQL 注入错误以明文情势提取名誉卡信息,入侵者大概会使用这些信息。
可以使用以下预防技术来制止这些故障:
        -您应该使用具有延迟因子的妥当、加盐和自顺应哈希算法来存储密码,例如 scrypt、Argon2、PBKDF2 或 bcrypt
        -传输敏感数据时应制止使用文件传输协议 (FTP)和简朴邮件传输协议 (SMTP)等旧协议
        -发起实行经过身份验证的加密,而不是仅仅使用加密
        -必须生成加密随机密钥并将其存储为字节数组。如果使用密码,则必须使用基于密码的密钥创建算法将其更改为类似于密钥的东西

2.2.3 注入

注入(或SQL 注入)是针对网站的数据库攻击,该网站使用布局化查询语言 (SQL) 来获取信息或实行通常必要经过身份验证的用户帐户的运动。步调很难从自己的代码中解释这些代码,从而答应攻击者举行注入攻击以访问受保护区域和伪装成受信托用户的敏感数据。注入包括SQL注入、命令注入、CRLF注入、LDAP注入等。
一些预防技术包括:
        -一个更可取的替代方案是使用完全避开解释器、提供参数化 API 或易位到对象关系映射 (ORM) 工具的 API。
       - 发起使用积极的服务器端验证输入。很多应用步调,包括用于移动应用步调的文本字段和 API,都必要特别字符。
        -在查询中使用 LIMIT 和其他 SQL 束缚是制止 SQL 注入环境下大量数据袒露的好方法。

2.2.4 不安全的计划

        这是 2021 年的一个全新种别,专注于计划和架构缺陷,必要更多地使用威胁建模、计划安全发起和参考架构。不安全的计划是一个广泛的种别,包罗各种问题,例如“缺失或不充实的控制计划”。这并不意味着不安全的计划是全部其他十大风险种别的根源。
        不安全的计划与不安全的实现差别。即使计划是安全的,实行缺陷也大概导致弊端。另一方面,有缺陷的计划不能通过完美的实现来补充,由于不存在须要的安全保护步调来防御特定的威胁。
        可以通过采用以下预防技术来制止这些威胁:
        -在 AppSec 专家的帮忙下设置和使用安全的开辟生命周期,以评估和构建安全和隐私保护步调。
        -发起对关键验证、访问控制、应用步调逻辑和根本流程举行威胁建模。
        -在用户故事中包罗安全术语和控制。
        -全部层级的租户隔离计划也被视为一种实用的预防方法。

2.2.5 安全设置错误

        一样平常的安全设置问题,就像设置错误的访问控制一样,通过为攻击者提供对关键数据和站点区域的快速和轻松的访问而造成庞大伤害。
常见办理方案:
        -体系化的强化过程答应快速轻松地摆设安全环境。开辟、质量控制和利用环境的设置应该是相似的,具有差别的用户权限。
        -它非常恰当自动化流程以创建新的安全环境,以节流须要的时间和精神。应删除或不安装未使用的功能和框架。没有不须要的功能、组件、文档或演示的紧张平台会低沉设置弊端的大概性。

2.2.6 易受攻击和逾期的组件

        一样平常的安全设置问题,就像设置错误的访问控制一样,通过为攻击者提供对关键数据和站点区域的快速和轻松的访问而造成庞大伤害。
常见办理方案:
        -体系化的强化过程答应快速轻松地摆设安全环境。开辟、质量控制和利用环境的设置应该是相似的,具有差别的用户权限。
        -它非常恰当自动化流程以创建新的安全环境,以节流须要的时间和精神。应删除或不安装未使用的功能和框架。没有不须要的功能、组件、文档或演示的紧张平台会低沉设置弊端的大概性。


2.2.7 辨认和认证失败

        如今包罗与辨认问题相干的 CWE。当攻击者获取用户信息、密码规复、ID 会话和其他登录凭据时,就会产生安全问题。顾名思义,身份和身份验证失败包括黑客使用此类弊端使用身份验证不敷。
        如果应用步调答应自动攻击,例如凭证添补(当攻击者可以访问真实用户和密码列表)或预界说的、较弱的和常见的密码(例如“Password1”或“admin/admin”),这些大概是身份验证缺陷的迹象
        为制止此类缺陷,必须考虑以下预防步调:
        -必须在可行的环境下使用多因素身份验证,以制止自动凭证添补、暴力攻击和被盗凭证的重复使用。
        -通过对照包罗 10,000 个最差密码的数据库检查新密码或修改密码,可以进步密码安全性。
        -对每个结果使用类似的消息有助于防止对密码规复、注册和 API 路径的帐户枚举攻击。
不要安装任何默认凭据,尤其是对于管理用户。

2.2.8 软件和数据完备性问题

        随着越来越多的敏感信息存储在数据库中,轻易受到安全弊端的影响,数据完备性问题对于软件来说变得至关紧张。
        这是一个新种别,它侧重于假设软件更新、紧张数据和 CI/CD 步调的完备性,而无需对其举行验证。一个例子是当应用步调使用来自内容交付网络 (CDN) 或未经授权的泉源的扩展、模块或存储库时。未受保护的连续集成/连续交付 ( CI/CD ) 流程大概会增加恶意代码、体系受损或未经授权访问的风险。
预防技术包括:
        -人们大概会使用诸如数字签名之类的步调来确认数据或软件来自预期的泉源而没有任何窜改。
        -软件供应链的安全工具,如 OWASP CycloneDX 或 OWASP Dependency-Check,可用于包管组件不包罗计划缺陷。
        -有须要确保 CI/CD 工作流具有所需的分段、访问控制和参数化,以在整个设置和摆设利用过程中保护代码完备性。
        -未经签名或未加密的编译数据不应发送给不受信托的客户端,除非已举行完备性测试或数字签名以辨认数据更改或重复。

2.2.9 安全日志监控和记载失败

        在存在可疑行为和变乱的环境下缺乏跟踪大概会扩大不受监控的时间隔断,从而使安全弊端被忽视的时间比使用更好的日志记载的时间更长。此 OWASP Top 10 2021 部门旨在资助辨认、升级和办理近来的违规行为。如果没有记载和监控,就不大概检测到安全弊端。
        -确认全部身份验证、访问安全体系和服务器端数据验证问题都记载有足够的用户信息,以检测可疑或欺诈帐户,并存储足够长的时间以举行延迟的全面观察。
        -确保以日志管理体系可使用的格式创建日志。
        -创建或应用用于变乱规复和相应工作的策略,例如 NIST 800-61r2 或更高版本。
        -确保对日志数据举行适当编码,以制止对监控体系的入侵或网络威胁。

2.2.10 服务端请求伪造(SSRF)

        该种别的结果表现了高于均匀水平的测试覆盖率、公道的低发生率以及高于均匀水平的影响和使用评级。SSRF 是在服务器端查询未验证用户提供的 URL 的环境下开辟的。这答应攻击者诱使应用步调将伪造请求传输到不希望的位置,即使该位置受到假造专用网络 (VPN)、防火墙或网络访问控制列表 (ACL) 的保护。
        随着新的在线应用步调为终极用户提供方便的功能,获取 URL 已成为一种范例环境。因此,SSRF 抱病率正在增加。别的,由于云服务和计划复杂性,SSRF 的强度正在增加。考虑到这一点,可以通过采用以下预防技术来制止此类攻击:
        -为了限制 SSRF 的影响,应该将长途资源访问功能分离到差别的网络中。
       -安装“默认拒绝”防火墙设置或网络访问控制规则,以阻止除必需的内部流量外的全部 Web 流量。
        -在 (TOCTOU) 环境下,为了防止 DNS 重新映射和“检查时间、使用时间”等攻击,最好注意 URL 的准确性。

2.3 参考

Web 应用步调的十大安全弊端_web十大弊端_crazy_itman的博客-CSDN博客
OWASP Top 10 2022先容_天下止境与你的博客-CSDN博客
3. 一次WEB渗透测试的记载

        近期做了一个WEB渗透测试。对测出的问题在此做个概要的记载。
1. 复制出有权限用户的某URL,发现无权限的用户登录后,修改URL为刚刚复制内容,发现竟然可以登录。(失效的访问控制)
2. 用客户A的账号登录,使用搜索日志功能,使用postman修改HTTP请求里的账号ID为客户B的账号,发现可以查看到B的日志。(失效的访问控制)
3. 可以任意伪造jwt有效负载,发现报文可以BASE64解码编码,获取"alg"所在花括号的解码,明文中"alg"的值改为“none”,重新编码为“ey****”,将jwt的报头部门(Authorization)的value更换为“ey****”,jwt的有效载荷可以任意设置。(失效的访问控制)
4. 使用一个脚色id调用任何公共api。从相应头中获取脚色id。使用新脚色id再次调用api,将新脚色id放在请求头中。结果将会改变。(失效的访问控制)
5. Public API的输入客户ID可以通过“customer - ID”头注入。输入标头在使用前未经过验证。这是一个紧张的数据走漏问题。只有在检索到客户ID时,一个租户才华调用公共api来获取其他租户的数据。(失效的访问控制)

  • 预备两个 tenants: tenant A and tenant B.
  • 使用 "cid": "A的cid" 调用 API  "https://....../audit/logs "
  • 在header里添加 “***-customer-id”: “B的cid”.
  • 乐成获得B的 audit log 信息.
6. 输入标头在使用前未经过验证。这是一个紧张的数据走漏问题。只要能检索到客户ID,一个租户就能调用公共api来获取其他租户的数据。(失效的访问控制)

  • 在header使用准确的uic_token调用 API  "http://......./notifications/counts"
  • 从相应里获取customer id
  • 将步骤2中获得的customer id装在header中可以调用API
7.攻击者可以通过修改脚色id获得差别的脚色权限。(失效的访问控制)
        1.使用一个脚色id的权限调用api。
        2.从相应头中获取脚色id。
        3.使用新脚色id再次调用api(从步骤2中获取),将新脚色id放在请求头中。权限将改变。
8.当实行查询时没有指定ui -令牌时,请求仍然可以被查询出来。(失效的访问控制)
Uic-token用于CSRF检查,如果没有指定此token,则大概存在CSRF攻击
9.会话没有准确停止。注销后,会话仍然有效,可用于发出UI API请求。(辨认和认证失败)
1. 起首退出当前会话。
2. 使用旧的cookie和ui令牌调用API ,请求仍然乐成。
10.在调试模式下,密码表现在控制台上(辨认和认证失败)
密码为敏感信息;攻击者获取此密码后可以直接登录控制台
        1.以“无权限”脚色登录流派。
        2.打开链接https:// ....../#/admin/logs
        3.打开调试模式,选择console。       
        4.输入一些关键字和“搜索”,它将表现密码在web控制台。
11.在没有cookie的环境下调用前端验证API,相应将提示“x-account-id”丢失。如果不必要认证,可以通过x-account-id头设置账号ID。(辨认和认证失败)
12.调用前端产物毗连器API,在页面中没有使用的相应中有令牌字段。凭证走漏问题。(辨认和认证失败)
13.可以删除审计日志(不安全的计划)
黑客在举行一些有风险的利用时,大概会删除审计日志(DELETE https://......)。
14.攻击者可以频仍发送测试邮件;它大概会导致DOS和垃圾邮件。(不安全的计划)
        通过“Camp Admin”启动流派。进入Accounts->Notifications,选择一个项目,在1分钟内频仍点击“发送测试邮件”。
15.反射型跨站脚本(XSS)注入。(注入)
这是一个反射跨站脚本注入。XSS可以用来窃取易受攻击的域中的cookie,并大概获得对用户身份验证会话的未经授权访问,更改/破坏易受攻击的网页的内容,大概危害用户的web欣赏器。如果攻击者修改请求中的时区字段,插入窃取cookie的JavaScript,如果他们设法让受害者访问他们的URL,就有大概获得控制权。
        1.在控制台设置中,生存设置时。POST请求的有效负载中有一个字段的值可以用于注入
<script>alert(\"0\");</script>
16.Web应用步调组件轻易受到跨站点脚本(XSS)攻击。(注入)
Web应用步调组件轻易受到跨站点脚本(XSS)攻击。使用这个问题,攻击者可以在应用步调输入参数中提供任意的客户端站点代码(JavaScript,VBScript等),这些代码终极将在终极用户的Web欣赏器中出现和实行。
info.html页面很轻易受到基于dom的链接注入的攻击,当点击后会导致跨站攻击。XSS可以用来窃取易受攻击的域中的cookie,并在/破坏易受攻击的网页内容或破坏用户的web欣赏器后,埋伏地获得对用户身份验证会话的未经授权的访问。一种常见的策略是重新绘制受信托域上的易受攻击页面,以诱骗真实的会话超时和登录页面,从而获取用户密码。
        1.使用“Camp Admin”脚色登录流派。、
        2.登出流派
        3.输入url https://********/info.html#/redirect?url=javascript:alert(0),注入脚本
17.相应的详细信息可以表现应用步调的信息,这增加了发现任何现有弊端的机遇。(安全设置错误)
相应的详细信息可以表现应用步调的信息,这增加了发现任何现有弊端的机遇。
调用API 时带有错误的body,相应结果包罗应用步调详细信息。
18.CSP头未添加或未设置为安全值,这会将资源加载到不受信托的站点信息,从而导致XSS和其他相干弊端。(安全设置错误)
内容安全策略(CSP)是一个附加的安全层,有助于检测和减轻某些范例的攻击。包括(但不限于)跨站脚本(XSS)和数据注入攻击。这些攻击被用于从数据窃取到网站污损或分发恶意软件的全部事变。CSP提供了一组标准的HTTP标头,答应网站全部者声明答应欣赏器在该页面上加载的内容泉源——涵盖的范例包括JavaScript、CSS、HTML框架、字体、图像和可嵌入对象
19.由于Web服务器上的跨域资源共享(Cross Origin Resource Sharing, CORS)设置错误,Web欣赏器大概无法加载数据。Access-Control-Allow-Origin: *对于敏感数据不安全。(安全设置错误)
web服务器上的CORS错误设置答应来自任意第三方域的跨域读取请求,在该域中使用未经身份验证的api。但是,Web欣赏器实现不答应任意第三方从经过身份验证的api读取相应。这在肯定水平上低沉了风险。这种错误设置大概被攻击者用来访问以未经身份验证的方式可用的数据,但这些数据使用了其他情势的安全性,例如IP地点白名单。
20. 没有使用HSTS 安全策略(安全设置错误)
HTTP严格传输安全(HSTS)是一种web安全策略机制,web服务器声明遵守的用户署理(如web欣赏器)只使用安全的HTTPS毗连(即HTTP层在TLS/SSL上)与它交互。HSTS是IETF标准跟踪协议,在RFC 6797中指定。
缺少此标头将使web服务器处于可以用作平凡HTTP流量的风险中。
21.每个人都可以把任何文件下载到服务器,它大概会更换文件并影相应用步调,其他客户大概会得到带病毒的文件运行。(安全设置错误)
       1. 以“管理员”脚色打开v1流派。
        2.从流派找到get文件url。
        3.使用PUT方法将任何文件发送到url,例如test.js。它可以用get方法获取这个文件。
22.Http可以用来举行API调用(安全设置错误)
某API可以使用Postman发出http请求
在相应头中没有“Strict-Transport-Security”头。“Strict-Transport-Security”头能限制站点只能使用HTTPS访问,而且将来使用HTTP访问它的任何尝试都应自动转换为HTTPS。
4.末了

        WEB安全的紧张范例每年都要较小的厘革。熟练把握最常见的WEB弊端范例是渗透工作的睁开的紧张根本。


来源:https://blog.csdn.net/qq_33163046/article/details/130348655
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则