常见Web安全漏洞类型


常见Web安全漏洞类型

文章插图
为了对Web安全有个整体的认识,整理一下常见的Web安全漏洞类型,主要参考于OWASP组织历年来所研究发布的项目文档 。
01:注入漏洞
1)SQL注入(SQL Injection)
由于程序对SQL相关的一些敏感字符缺少过滤or转换,攻击者把SQL命令插入到用户提交的数据中,欺骗服务器执行恶意的SQL命令,非法获取到内部权限和数据 。
风险:读取or篡改数据库的数据,获取服务器or管理员权限
类型:
a、数据型
b、字符型
其他注入方式
c、伪静态注入
d、GET & POST注入
e、Cookie注入
2)SQL盲注(SQL Blind Injection)
a.基于布尔的盲注[Boolean-Based]
SQL注入过程中,应用程序仅仅返回True页面和False页面,无法根据应用程序的返回页面得到数据库信息,但可通过构造逻辑条件(如比较大小)向服务端请求后的返回页面来分析判断我们所需要的数据库信息 。
b.基于时间的盲注[Time-Based]
注入的SQL代码影响后台数据库的功能,但此时Web的前端页面始终显示True页面,知识页面返回的响应时间有差异,可以根据时间差来推断注入语句中的判断条件真假,继而获取数据库相关的信息 。
3)OS命令注入
OS Command Injection,当应用程序使用外部输入的字符串,or使用受外部影响的字符串来组装命令时,若没有进行安全过滤防范,可能产生OS命令的注入攻击,甚至操作服务器相关的权限 。
4)Xpath注入
利用XPath解析器的松散输入和容错特性,能够在URL、表单或其它信息上附带恶意的XPath查询代码,以获得权限信息的访问权并更改这些信息 。
02:失效的身份认证和会话管理
用户身份认证和会话管理是一个应用程序中最关键的过程,有缺陷的设计会严重破坏这个过程 。在开发Web应用程序时,开发人员往往只关注Web应用程序所需的功能,通常会建立自定义的认证和会话管理方案 。但要正确实现这些方案却很难,结果这些自定义的方案往往在如下方面存在漏洞:退出、密码管理、超时、记住我、密码问题、帐户更新等 。
03:敏感信息泄露
在最近几年,这是最常见的、最具影响力的攻击 。这个领域最常见的漏洞是不对敏感信息进行加密 。在数据加密过程中,常见的问题是不安全的密钥生成和管理以及使用弱加密算法、弱协议和弱密码 。特别是使用弱的哈希算法来保护密码 。
攻击者不是直接攻击密码,而是在传输过程中或从客户端(例如:浏览器)窃取密钥、发起中间人攻击,或从服务器端窃取明文数据 。
04:XML外部实体(XXE)
默认情况下,许多旧的XML处理器能够对外部实体、XML进程中被引用和评估的URI进行规范 。如果攻击者可以上传XML文档或者在XML文档中添加恶意内容,通过易受攻击的代码、依赖项或集成,他们就能够攻击含有缺陷的XML处理器 。
XXE缺陷可用于提取数据、执行远程服务器请求、扫描内部系统、执行拒绝服务攻击和其他攻击 。
05:失效的访问控制
由于缺乏自动化的检测和应用程序开发人员缺乏有效的功能测试,因而访问控制缺陷很常见 。访问控制检测通常不适用于自动化的静态或动态测试 。手动测试是检测访问控制缺失或失效的最佳方法,包括:HTTP方法(如:GET和PUT)、控制器、直接对象引用 。
攻击者可以冒充用户、管理员或拥有特权的用户,或者创建、访问、更新或删除任何记录 。
06:安全配置错误
安全配置错误可以发生在一个应用程序堆栈的任何层面,包括网络服务、平台、Web服务器、应用服务器、数据库、框架、自定义代码和预安装的虚拟机、容器和存储 。自动扫描器可用于检测错误的安全配置、默认帐户的使用或配置、不必要的服务、遗留选项等 。
通常,攻击者能够通过未修复的漏洞、访问默认账户、不再使用的页面、未受保护的文件和目录等来取得对系统的未授权的访问或了解 。
07:跨站脚本(XSS)
XSS是OWASP Top10中第二普遍的安全问题,存在于近三分之二的应用中 。由于程序缺少对某些敏感字符的过滤or转换,攻击者对在url或输入框中输入html/JS恶意代码提交成功后并被执行,获取用户or程序敏感信息 。
XSS对于反射和DOM的影响是中等的,而对于存储的XSS,XSS的影响更为严重,譬如在受攻击者的浏览器上执行远程代码,例如:窃取凭证和会话或传递恶意软件等 。


推荐阅读