图解HTTP之Web的攻击技术
1、针对Web的攻击技术
简单的HTTP协议本身并不存在安全性问题,因此协议本身几乎不会称为攻击的目标。应用HTTP协议的服务器和客户端,以及运行在服务器上的Web应用等资源才是攻击目标。目前,来自互联网的攻击大多是冲着Web站点来的,他们大多把Web应用作为攻击目标。
1.1、与最初的设计相比,现今的Web网站应用的HTTP协议的使用方式已发生了翻天覆地的变化。几乎现今所有的Web网站都会使用会话(session)管理、加密处理等安全性方面的功能,而HTTP协议内并不具备这些功能。从整体看,HTTP就是一个通用的单纯协议机制。因此它具备较多优势,但是在安全性方面则呈劣势。就拿远程登录时会用到的SSH协议来说,SSH具备协议级别的认证及绘画管理等功能,HTTP协议则没有。另外在架设SSH服务方面,任何人都可以轻易地创建安全等级高的服务,而HTTP即使已架设好服务器,但若想提供服务器基础上的Web应用,很多情况下都需要重新开发。因此,开发者需要自行设计并开发认证及会话管理功能来满足Web应用的安全。而自行设计就意味着会出现各种形形色色的问题。结果,安全等级并不完备,可仍在运作的Web应用背后却隐藏着各种容易被攻击者滥用的安全漏洞的Bug。
1.2、在客户端即可篡改请求
在Web应用中,从浏览器接收到的HTTP请求的全部内容,都可以在客户端自由地变更、篡改。所以Web应用可能会接收到与预期数据不相同的内容。在HTTP请求报文内加载攻击代码,就能发起对Web应用的攻击。通过URL查询字段或表单、HTTP首部、Cookie等途径把攻击代码传入,若这是Web应用存在安全漏洞,那内部信息就会遭到窃取,或被攻击者拿到管理权限。
1.3、针对Web应用的攻击模式
主动攻击
被动攻击
以服务器为目标的主动攻击:攻击者通过直接访问Web应用,把攻击代码传入的攻击模式。
以服务器为目标的被动攻击:利用圈套策略执行攻击diamanté的攻击模式。
2、因输出值转义不完全引发的安全漏洞
实施Web应用的安全对策可大致分为以下两部分
客户端的验证
Web应用端的验证:输入值验证、输出值转义
多数情况下采用JavaScript在客户端验证数据。可是在客户端允许篡改数据或关闭JavaScript,不适合将JavaScript验证作为安全的防范对策。保留客户端验证只是为了尽早地辨识输入错误,起到提高UI体验的作用。
Web应用端的输入值验证按Web应用内的处理则有可能被误认为是具有攻击性意义的代码。输入值验证通常是指检查是否是符合系统业务逻辑的数值或检查字符编码等预防对策。
从数据库或文件系统、HTML、邮件等输入Web应用处理的数据之际,针对输出做值转义处理是一项至关重要的安全策略。当输出值转义不完全时,会因触发攻击者传入的攻击代码,而给输出对象带来损害。
2.1、跨站脚本攻击:通过存在的安全漏洞的Web网站注册用户的浏览器内运行非法的HTML标签或Javascript进行的一种攻击。跨站脚本攻击有可能造成以下影响:
利用虚假输入表单骗取用户个人信息
利用脚本窃取用户的Cookie值,被害者在不知情的情况下,帮助攻击者发送恶意请求。
显示伪造的文章或图片
2.2、SQL注入攻击:针对Web应用使用的数据库,通过运行非法的SQL而产生的攻击。该安全隐患有可能引发极大的威胁,有时会直接导致个人信息及机密信息的泄露。
2.3、OS命令注入攻击:通过Web应用,执行非法的操作系统命令达到攻击的目的。只要在调用Shell函数的地方就有存在被攻击的风险。
2.4、HTTP首部注入发送:攻击者通过在响应首部字段内插入换行,添加任意响应首部或主体的一种攻击。属于别动攻击模式。
2.5、邮件首部注入攻击:Web应用中的邮件发送功能,攻击者通过向邮件首部To或Subject内任意添加非法内容发起的攻击。
2.6、目录遍历攻击:指对本无意公开的文件目录,通过非法截断其目录路径后,达成访问目的的一种攻击。这种攻击有时也称为路径遍历攻击。
2.7、远程文件包含漏洞:当部分脚本内容需要从其他文件读入时,攻击者利用指定外部服务器的URL充当依赖文件,让脚本读取之后,就可运行任意脚本的一种攻击。
3、因设置或设计上的缺陷引发的安全漏洞
3.1、强制浏览
强制浏览安全漏洞是指,从安置在Web服务器的公开目录下的文件中,浏览那些原本非自愿公开的文件。强制浏览有可能造成以下影响:
泄露顾客的个人信息等重要情报
泄露原本需要具有访问权限的用户才可查阅的信息内容
泄露未外连到外界的文件
3.2、不正确的错误消息处理
不正确的错误消息处理的安全漏洞是指,Web应用的错误信息内包含对攻击者有用的信息。与Web应用有关的主要错误信息如下所示。
Web应用抛出的错误消息
数据库等系统抛出的错误消息
3.3、开放重定向
开放重定向是一种对指定的任意URL作重定向跳转的功能。而于此功能相关联的安全漏洞是指,假如指定的重定向URL到某个具有恶意的Web网站,那么用户就会被诱导至那个Web网站。
4、因会话管理疏忽引发的安全漏洞
会话管理是用来管理用户状态的必备功能,但是如果在会话管理上有所疏忽,就会导致用户的认证状态被窃取等后果。
4.1、会话劫持:是指攻击者通过某种手段拿到了用户的会话ID,并非法使用此会话ID伪装成用户,达到攻击的目的。
4.2、会话固定攻击:对以窃取目标会话ID为主动攻击手段的会话呗劫持而言,会话固定攻击(Session Fixatone)攻击会强制用户使用攻击者指定的会话ID,属于被动攻击。
4.3、跨站点请求攻击:跨站点请求伪造攻击是指攻击者通过设置好的陷阱,强制对已完成认证的用户进行非预期的个人信息或设定信息等某些状态更新,属于被动攻击。
5、其他安全漏洞
5.1、密码破解:密码破解攻击即算出密码,突破认证。攻击不仅限于Web应用,还包括其他的系统(如FTP或SSH等)。密码破解有两种手段:通过网络的密码试错、对已加密密码的破解。
5.2、点击劫持:指利用透明的按钮或链接做成陷阱,覆盖在Web页面之上。然后诱使用户在不知情的情况下,点击那个链接访问内容的一种攻击手段,这种行为称为界面伪装。
5.3、Dos攻击:是一种让运行中的服务呈停止状态的攻击。有时也叫做服务停止攻击或拒绝服务攻击。Dos攻击的对象不仅限于Web网站,还包括网络设备及服务器等。主要有以下两种方式:集中利用访问请求造成资源过载,资源用尽的通知,实际上服务也呈停止状态。通过攻击安全漏洞使服务停止;通过攻击安全漏洞使服务停止。
5.4、后门程序:指开发设置的隐藏入口,可不安正常步骤使用受限功能。利用后门程序就能够使用原本受限制的功能。通常后三种类型:开发阶段作为Debug调用的后门程序;开发者为了自身利益植入的后门程序;攻击者通过某种方法设置的后门程序