注入攻击属于众多攻击方式当中的一种,在这类攻击中,攻击者会向程序输入恶意的数据内容,解析引擎则会将这些恶意输入当作命令或查询语句的一部分加以处理,进而在无形中改变了程序原本的执行流程。
注入攻击是web程序面临的最为古老也最为危险的攻击方式之一,此类攻击能够导致数据遭窃、数据丢失、数据完整性受损、拒绝服务(DoS)攻击,甚至造成整个系统的沦陷。其产生的主要根源在于对用户输入内容的校验存在不足。
这种攻击手段是web安全领域的主要难题之一,在OWASP Top 10 web安全风险榜单中位居首位。注入攻击,尤其是SQL注入(SQLi攻击)以及跨站脚本攻击(XSS),它们不仅危害性极大且极为普遍,尤其容易遗留在各类程序当中。
攻击面较为宽广的注入漏洞(特别是XSS与SQL注入这两类漏洞)尤其令人担忧。此外,注入攻击也是漏洞类型中相对容易被理解的一种,这也意味着市面上存在诸多免费且可靠的工具,使得即便是缺乏经验的攻击者也能够实现自动化地滥用此类漏洞。
SQL注入(SQLi)与跨站脚本攻击(XSS)是众多常见注入攻击方式中的两种,下面列出一些常见的攻击类型:
第一种:代码注入
攻击者借助网站相关类型注入对应的代码,该代码会以当前网站用户所拥有的权限来执行系统命令,在较为严重的情形下,攻击者可能借此溢出并获取更高权限,最终导致整个web服务器陷入沦陷。
第二种:CRLF注入
攻击者注入一种特殊的CRLF字符,该字符用于区分HTTP响应头与正文内容,从而使攻击者能够写入任意正文内容,这种攻击方式通常会与XSS结合使用。
第三种:XSS(跨站脚本攻击)
攻击者将任意脚本(通常是JavaScript)注入到合法网站或web程序当中,该脚本会在客户端环境中被执行。
第四种:邮件头注入
这种攻击方式与CRLF攻击颇为类似,攻击者会发送恶意的IMAP/SMTP命令。
第五种:Host头注入
攻击者滥用对HTTP Host头的绝对信任机制,以此来篡改密码重置功能以及web缓存内容。
第六种:LDAP注入
攻击者注入LDAP语句来执行任意的LDAP命令,从而获取修改LDAP树内容的权限。
第七种:操作系统命令注入
攻击者利用当前web应用程序所拥有的权限来注入系统命令,在较为高级的案例中,攻击者可通过溢出获取权限提升,最终导致整个系统沦陷。
第八种:SQL注入
攻击者注入SQL语句来读取及篡改数据库中的数据,在较为高级的SQL注入案例当中,攻击者甚至能够执行SQL语句来写入服务器上的任意文件,乃至执行系统命令,这将导致系统整体沦陷。
第九种:XPath注入
攻击者向应用程序中注入数据,以此执行精心构造的XPath查询语句,借此获取未经授权的访问权限并绕过相应的授权机制。
原创文章,作者:余初云,如若转载,请注明出处:https://blog.jidcy.com/jsjc/3128.html
