Web 的攻击技术
针对Web 的攻击技术
HTTP 不具备必要的安全功能
在客户端即可篡改请求
针对Web应用的攻击模式
- 主动攻击:SQL注入攻击和 OS命令注入攻击
- 被动攻击:跨站脚本攻击和跨站点请求伪造
- 攻击者诱使用户触发已设置好的陷阱,而陷阱会启动发 送已嵌入攻击代码的 HTTP 请求。
- 当用户不知不觉中招之后,用户的浏览器或邮件客户端 就会触发这个陷阱。
- 中招后的用户浏览器会把含有攻击代码的 HTTP 请求发 送给作为攻击目标的 Web 应用,运行攻击代码。
- 执行完攻击代码,存在安全漏洞的 Web 应用会成为攻 击者的跳板,可能导致用户所持的 Cookie 等个人信息被窃取, 登录状态中的用户权限遭恶意滥用等后果。
因输出值转义不完全引发的安全漏洞
跨站脚本攻击
Cross-Site Scripting(XSS),是指通过存在安全漏洞的Web网站注册用户的浏览器内运行非法的HTML标签或JavaScipt进行的一种攻击
影响:
- 利用虚假输入表单骗取用户个人信息。
- 利用脚本窃取用户的 Cookie 值,被害者在不知情的情况下, 帮助攻击者发送恶意请求。
- 显示伪造的文章或图片。
SQL 注入攻击
影响:
- 非法查看或篡改数据库内的数据
- 规避认证
- 执行和数据库服务器业务关联的程序等
OS命令注入攻击
HTTP首部注入攻击
HTTP首部注入攻击(HTTP Header Injection )是指攻击者通过在响应首部字段内插入换行,添加任意响应首部或主体的一种攻击。属于被动攻击模式
向首部主体内添加内容的攻击成为HTTP响应截断攻击(HTTP Response Splitting Attack)
影响:
- 设置任何 Cookie 信息
- 重定向至任意 URL
- 显示任意的主体(HTTP 响应截断攻击)
HTTP首部注入攻击案例
选定类别后,将ID值反映在响应内的Location 首部字段内,令浏览器发生重定向跳转
Location:http://example.com/?cat=101
以下内容代替ID
101%0D%0ASet-Cookie:+SID=123456789
%0D%0A代表HTTP报文中的换行符
假设结果返回:
Location:http://example.com/?cat=101(%0D%0A:换行符)
Set-Cookie: SID=123456789
HTTP响应截断攻击
HTTP 响应截断攻击是用在 HTTP 首部注入的一种攻击。攻击顺 序相同,但是要将两个 %0D%0A%0D%0A 并排插入字符串后发 送。利用这两个连续的换行就可作出 HTTP 首部与主体分隔所需 的空行了,这样就能显示伪造的主体,达到攻击目的。这样的攻 击叫做 HTTP 响应截断攻击。
邮件首部注入攻击
攻击者将以下数据作为邮件地址发起请求。
bob@hackr.jp%0D%0ABcc: user@example.com
%0D%0A 在邮件报文中代表换行符。一旦咨询表单所在的 Web 应用接收了这个换行符,就可能实现对 Bcc 邮件地址的追加发 送,而这原本是无法指定的。
另外像下面一样,使用两个连续的换行符就有可能篡改邮件文本 内容并发送。
bob@hackr.jp%0D%0A%0D%0ATest Message
再以相同的方法,就有可能改写 To 和 Subject 等任意邮件首部, 或向文本添加附件等动作。
目录遍历攻击
目录遍历(Directory Traversal) 攻击是指对本无意公开的文件目录,通过非法截断其目录路径后,达成访问目的的一种攻击。有时也称为路径遍历(Path Traversal)攻击
远程文件包含漏洞
远程文件包含漏洞(Remote File Inclusion)是指当部分脚本内容需要从其他文件读入时,攻击者利用指定外部服务器的URL充当依赖文件,让脚本读取后,就可运行任意脚本的一种攻击
因设置或设计上的缺陷引发安全漏洞
强制浏览
强制浏览(Forced Browsing)安全漏洞是指,从安置在Web服务器的空开目录下的文件中,浏览那些原本非自愿公开的文件
影响:
- 泄露顾客的个人信息等重要情报
- 泄露原本需要具有访问权限的用户才可查阅的信息内容
- 泄露未外连到外界的文件
不正确的错误消息处理
开放重定向
开放重定向(Open Redirect)是一种对指定的任意URL作重定向跳转的功能。而于此功能相关联的安全漏洞是指,假如指定的重定向URL到某个具有恶意的Web网站,那么用户就会被诱导至那个Web网站
因会话管理疏忽引发的安全漏洞
会话劫持
会话劫持(Session Hijack)是指攻击者通过某种手段拿到了用户的会话ID,并非法使用此会话ID伪装成用户,达到攻击的目的。
会话固定攻击
会话固定攻击(Session Fixation)攻击会强制用户使用攻击者指定的会话ID,属于被动攻击
跨站点请求伪造
跨站点请求伪造(Cross-Site Request Forgeries,CSRF)攻击是指攻击者通过设置好的陷阱,强制对已完成认证的用户进行非预期的个人信息或设定信息等某些状态更新,属于被动攻击。
影响
- 利用已通过认证的用户权限更新设定信息等
- 利用已通过认证的用户权限购买商品
- 利用已通过认证的用户权限在留言板上发表言论
其他安全漏洞
密码破解
密码破解攻击(PassWord Cracking)即算出密码,突破认证。
点击劫持
点击劫持(Clickjacking)是指利用透明的按钮或链接做成陷阱,覆盖在Web页面之上,然后诱使用户在不知情的情况下,点击那个链接访问内容的一种攻击手段。这种行为又称为界面伪装(UI Redressing)
Dos攻击
DoS 攻击(Denial of Service attack)是一种让运行中的服务呈停止状态的攻击。有时也叫做服务停止攻击或拒绝服务攻击。
主要有以下两种 DoS 攻击方式。
- 集中利用访问请求造成资源过载,资源用尽的同时,实际上服务也就呈停止状态。
- 通过攻击安全漏洞使服务停止。
多台计算机发起的DoS攻击(Distributed Denial of Service attack)
后门程序
后门程序(Backdoor)是指开发设置的隐藏入口,可不按正常步骤使用受限功能。利用后门程序就能够使用原本受限制的功能。
通常的后门程序分为以下 3 种类型。
- 开发阶段作为 Debug 调用的后门程序
- 开发者为了自身利益植入的后门程序
- 攻击者通过某种方法设置的后门程序