1.针对Web的攻击技术
简单的HTTP协议本身并不存在安全性问题,因此协议本身几乎不会成为攻击的对象。应用HTTP协议的服务器和客户端,以及运行在服务器上的Web应用等资源才是攻击目标。
在客户端即可篡改请求
在Web应用中,从浏览器那接收到HTTP请求的全部内容,都可以在客户端自由地变更、篡改。所以Web应用可能会接收到与预期数据不相同的内容。
在HTTP请求报文内加载攻击代码,就能发起对Web应用的攻击。通过URL查询字段或表单、HTTP首部、Cookie等途径把攻击代码传入,若这时Web应用存在安全泄漏,那内部信息就会遭到窃取,或被攻击者拿到管理权限。
针对Web应用的攻击模式
以服务器为目标的主动攻击
主动攻击是指攻击者通过直接访问Web应用,把攻击代码传入的攻击没收。由于该模式是直接针对服务器上的资源进行攻击,因此攻击者需要能够访问到那些资源。
主动攻击模式里具有代表性的攻击是SQL注入攻击和OS命令注入攻击。以服务器为目标的被动攻击
被动攻击是指利用圈套策略执行攻击代码的攻击模式。在被动攻击过程中,攻击者不直接对目标Web应用访问发起攻击。
2.因输出值转义不完全引发的安全漏洞
实施Web应用的安全对策可大致分为以下两部分。
- 客户端的验证
- Web应用端的验证
1.输入值验证
2.输出值转义
攻击方式
跨站脚本攻击
跨站脚本攻击是指通过存在安全漏洞的Web网站注册用户的浏览器内运行非法的HTML标签或JavaScript进行的一种攻击。SQL注入攻击
SQL注入攻击是指针对Web应用使用的数据库,通过运行非法的SQL而产生的攻击。该安全隐患有可能引发极大的威胁,有时会直接导致个人信息及机密信息的泄漏。OS命令注入攻击
OS命令注入攻击是指通过Web应用,执行非法的操作系统命令达到攻击的目的。只要在能调用Shell函数的地方就有存在被攻击的风险。HTTP首部注入攻击
HTTP首部注入攻击是指攻击者通过在响应首部字段内插入换行,添加任意响应首部或主体的一种攻击。属于被动攻击模式。
向首部主体内添加内容的攻击称为HTTP响应截断攻击。邮件首部注入攻击
邮件首部注入是指Web应用中的邮件发送功能,攻击者通过向邮件首部To或Subject内添加非法内容发起的攻击。利用存在安全漏洞的Web网站,可对任意邮件地址发送广告邮件或病毒邮件。目录遍历攻击
目录遍历攻击是指对本无意公开的文件目录,通过非法截断其目录路径后,达成访问目的的一种攻击。这种攻击有时也称为路径遍历攻击。远程文件包含漏洞
远程文件包含漏洞是指当部分脚本内容需要从其他文件读入时,攻击者利用指定外部服务器的URL充当依赖文件,让脚本读取之后,就可运行任意脚本的一种攻击。
3.因设置或设计上的缺陷引发的安全漏洞
因设置或设计上存在的缺陷引发的安全漏洞是指,错误设置Web服务器,或是由设计上的一些问题引起的安全漏洞。
- 强制浏览
强制浏览安全漏洞是指,从安置在Web服务器的公开目录下的文件中,浏览那些原本非自愿公开的文件。 - 不正确的错误消息处理
不正确的错误消息处理的安全漏洞是指,Web应用的错误信息内包含对攻击者有用的信息。 - 开放重定向
开放重定向是指一种对指定的任意URL作重定向跳转的功能。而于此功能相关联的安全漏洞是指,假如指定的重定向URL到某个具有恶意的Web网站,那么用户就会被诱导至那个Web网站。
4.因会话管理疏忽引发的安全漏洞
会话管理是用来管理用户状态的必备功能,但是如果在会话管理上有所疏忽,就会导致用户的认证状态被窃取等后果。
-
会话劫持
会话劫持是指攻击者通过某种手段拿到了用户的会话ID,并非法使用此会话ID伪装成用户,达到攻击的目的。
-
会话固定攻击
对以窃取目标会话ID为主动攻击手段的会话劫持而言,会话固定攻击会强制用户使用攻击者指定的会话ID,属于被动攻击。
-
跨站点请求伪造
跨站点请求伪造攻击是指攻击者通过设置好的陷阱,强制对已完成认证的用户进行非预期的个人信息或设定信息等某些状态更新,属于被动攻击。
5.其他安全漏洞
1. 密码破解
密码破解攻击即算出密码,突破认证。
密码破解有以下两种手段
1.通过网络的密码试错
2.对已加密密码的破解(指攻击者入侵系统,已获得加密或散列处理的密码数据的情况)
通过网络进行密码试错
1.穷举法
穷举法(Brute-force Attack,又称暴力破解法)是指对所有密钥集合构成的密钥空间进行穷举。
2.字典攻击
字典攻击是指利用事先收集好的候选密码,枚举字典中的密码,尝试通过认证的一种攻击手法。
对已加密密码的破解
Web应用在保存密码时,一般不会直接以明文的方式保存,通过散列函数做散列处理或加salt的手段对要保存的密码本身加密。那即使攻击者使用某些手段窃取密码数据,如果想要真正使用这些密码,则必须先通过解码等手段,把加密处理的密码还原成明文形式。
从加密过的数据中导出明文通常有以下几种方法。
- 通过穷举法∙字典攻击进行类推
- 彩虹表
- 拿到密钥
- 加密算法的漏洞
通过穷举法∙字典攻击进行类推
针对密码使用散列函数进行加密处理的情况,采用和穷举法或字典攻击相同的手法,尝试调用相同的散列函数加密候选密码,然后把计算出的散列值与目标散列值匹配,类推出密码。
彩虹表
彩虹表是由明文密码及与之相应的散列值构成的一张数据库表,是一种通过事先制作庞大的彩虹表,可在穷举法∙字典攻击等实际破解过程中所短消耗时间的技巧。从彩虹表内搜索散列值就可以推导出对应的明文密码。
拿到密钥
使用共享密钥加密方式对密码数据进行加密处理的情况下,如果能通过某种手段拿到加密使用的密钥,也就可以对密码数据解密了。
加密算法的漏洞
考虑到加密算法本身可能存在的漏洞,利用该漏洞尝试解密也是一种可行的方法。但是要找到那些已广泛使用的加密算法的漏洞,又谈何容易,因此困难极大,不易成功。
2.点击劫持
点击劫持是指利用透明的按钮或链接做成陷阱,覆盖在Web页面之上。然后诱使用户在不知情的情况下,点击那个链接访问内容的一种攻击手段。这种行为又称为界面伪装。
已设置陷阱的Web页面。表面上内容并无不妥,但早已埋入想让用户点击的链接。当用户点击到透明的按钮时,实际上是点击了已指定透明属性元素的ifram页面。
3.Dos攻击
Dos攻击(Denial of Service attack)是一种让运行中的服务呈停止状态的攻击。有时也叫做服务停止攻击或拒绝服务攻击。Dos攻击的对象不仅限于Web网站,还包括网络设备及服务器等。
主要有以下两种Dos攻击方式。
- 集中利用访问请求造成资源过载,资源用尽的同时,实际上服务也就呈停止状态。
- 通过攻击安全漏洞使服务停止。
多台计算机发起的Dos攻击称为DDos攻击(Distributed Denial of Service attack)。DDos攻击通常利用那些感染病毒的计算机作为攻击者的攻击跳板。
4.后门程序
后门程序是指开发设置的隐藏入口。可不按正常步骤使用受限功能。利用后门程序就能够使用原本受限制的功能。
通常的后门程序分为以下3种类型。
- 开发阶段作为Debug调用的后门程序
- 开发者为了自身利益植入的后门程序
- 攻击者通过某种方法设置的后门程序