说明

之前介绍了十个最常见的 Web 网页安全漏洞之首篇,只发了 5 个漏洞,今天补齐剩下的 5 个漏洞。

十大安全漏洞

  • SQL 注入
  • 跨站脚本
  • 身份验证和会话管理中断
  • 不安全的直接对象引用
  • 跨站点请求伪造
  • 安全配置错误
  • 不安全的加密存储
  • 无法限制 URL 访问
  • 传输层保护不足
  • 未经验证的重定向和转发


接下来,我们介绍剩下的 5 个安全漏洞。

安全配置错误

描述

必须为应用程序,框架,应用程序服务器,Web 服务器,数据库服务器和平台定义和部署安全性配置。如果这些配置正确,攻击者可能会未经授权访问敏感数据或功能。

有时这种缺陷会导致系统完全妥协。保持软件最新也是很好的安全性。

意义

  • 利用此漏洞,攻击者可以枚举底层技术和应用程序服务器版本信息,数据库信息并获取有关应用程序的信息以进行更多攻击。

易受攻击的对象

  • 网址
  • 表格字段
  • 输入字段

例子

  1. 应用程序服务器管理控制台将自动安装,不会被删除。默认帐户不会更改。攻击者可以使用默认密码登录,并可以获得未经授权的访问。
  2. 您的服务器上未禁用目录列表。攻击者发现并可以简单地列出目录以查找任何文件。

建议

  • 强大的应用程序架构,可在组件之间提供良好的分离和安全性。
  • 更改默认用户名和密码。
  • 禁用目录列表并实施访问控制检查。

不安全的加密存储

描述

不安全的加密存储是一种常见的漏洞,在敏感数据未安全存储时存在。

用户凭证,配置文件信息,健康详细信息,信用卡信息等属于网站上的敏感数据信息。

该数据将存储在应用程序数据库中。如果通过不使用加密或散列 * 来不正确地存储此数据,则它将容易受到攻击者的攻击。

(*Hashing 是将字符串字符转换为固定长度或密钥的较短字符串。要解密字符串,用于形成密钥的算法应该可用)

意义

  • 通过使用此漏洞,攻击者可以窃取,修改此类受到弱保护的数据,以进行身份​​盗用,信用卡欺诈或其他犯罪行为。

易受攻击的对象

  • 应用数据库

例子

在其中一个银行应用程序中,密码数据库使用未加盐的哈希 * 来存储每个人的密码。SQL 注入漏洞允许攻击者检索密码文件。所有未加盐的哈希都可以在任何时候强行进行,而盐渍密码则需要数千年。

(* 无盐哈希 - 盐是附加到原始数据的随机数据。在哈希之前将盐附加到密码上)

建议

  • 确保适当的强标准算法。不要创建自己的加密算法。仅使用经过批准的公共算法,如 AES,RSA 公钥加密和 SHA-256 等。
  • 确保非现场备份已加密,但密钥是单独管理和备份的。

无法限制 URL 访问

描述

Web 应用程序在呈现受保护链接和按钮之前检查 URL 访问权限。每次访问这些页面时,应用程序都需要执行类似的访问控制检查。

在大多数应用程序中,特权页面,位置和资源不会呈现给特权用户。

通过智能猜测,攻击者可以访问权限页面。攻击者可以访问敏感页面,调用函数和查看机密信息。

意义

  • 利用此漏洞攻击者可以访问未经授权的 URL,而无需登录应用程序并利用此漏洞。攻击者可以访问敏感页面,调用函数和查看机密信息。

易受攻击的对象

  • 网址

例子

  1. 攻击者注意到 URL 表示角色为 /user/getaccounts,然后修改为 /admin/getaccounts
  2. 攻击者可以将角色附加到 URL。

http://www.vulnerablsite.com 可以修改为 http://www.vulnerablesite.com/admin

建议

  1. 实施强大的访问控制检查。
  2. 身份验证和授权策略应基于角色。
  3. 限制对不需要的 URL 的访问。

传输层保护不足

描述

处理用户(客户端)和服务器(应用程序)之间的信息交换。应用程序经常通过网络传输敏感信息,如身份验证详细信息,信用卡信息和会话令牌。

通过使用弱算法或使用过期或无效的证书或不使用 SSL,可以允许将通信暴露给不受信任的用户,这可能危及 Web 应用程序和 / 或窃取敏感信息。

意义

  • 利用此 Web 安全漏洞,攻击者可以嗅探合法用户的凭据并获取对该应用程序的访问权限。
  • 可以窃取信用卡信息。

易受攻击的对象

  • 通过网络发送的数据

建议

  1. 启用安全 HTTP 并仅通过 HTTPS 强制执行凭据传输。
  2. 确保您的证书有效且未过期。

例子

  1. 不使用 SSL 的应用程序,攻击者只会监视网络流量并观察经过身份验证的受害者会话 cookie。攻击者可以窃取该 cookie
    并执行中间人攻击

未经验证的重定向和转发

描述

Web 应用程序使用很少的方法将用户重定向和转发到其他页面以实现预期目的。
如果在重定向到其他页面时没有正确的验证,攻击者可以利用此功能,并可以将受害者重定向到网络钓鱼或恶意软件站点,或者使用转发来访问未经授权的页面。

意义

  • 攻击者可以向用户发送包含附加编码恶意 URL 的真实 URL 的 URL。用户只需看到攻击者发送的 URL
    的真实部分就可以浏览它并可能成为受害者。

例子

http://www.vulnerablesite.com/login.aspx?redirectURL=ownsite.com

修改为

http://www.vulnerablesite.com/login.aspx?redirectURL=evilsite.com

建议

  1. 只需避免在应用程序中使用重定向和转发。如果使用,请不要在计算目的地时使用用户参数。
  2. 如果无法避免目标参数,请确保提供的值有效,并为用户授权。
Last modification:July 9th, 2019 at 09:54 pm
如果觉得我的文章对你有所帮助,请随意赞赏