一.针对Web的攻击技术
1.HTTP不具备必要的安全功能
2.在客户端可篡改请求
主动攻击:
SQL注入攻击、OS注入攻击
攻击者通过直接访问Web应用,把攻击代码传入攻击模式。主要攻击服务器上的资源
被动攻击:
跨站脚本攻击、HTTP首部注入攻击、邮件注入攻击、会话固定攻击、跨站点请求伪造
利用圈套策略执行代码的攻击模式。在被动攻击过程中,攻击者不直接对目标Web应用访问发起攻击。
(1)攻击者诱导用户触发已设置好的陷阱,而陷阱会启动发送已嵌入攻击代码的HTTP请求。
(2)用户的浏览器出发事先已设定好陷阱的HTTP请求。
(3)用户的浏览器运行攻击代码
(4)执行攻击代码的后果是用户所持的Cookie等被窃取、用户权限遭恶意使用。
二.因输出值转义不完全引发的安全漏洞
客户端的验证
Web应用端(服务器端)的验证【输入值验证、输出值转义】
1.跨站脚本攻击
通过存在安全漏洞的Web网站注册用户的浏览器内运行非法的HTML标签或JavaScript进行的一种攻击。
(1)利用虚假输入表单骗取用户个人信息
(2)利用脚本窃取用户的Cookie值,被害者在不知名的情况下,帮助攻击者发送恶意请求。
(3)显示伪造的文章或图片
2.SQL注入攻击
(1)非法查看或篡改数据库的数据
(2)规避认证
(3)执行和数据库服务器业务失联的程序等
Eg:改写‘—’之后的内容会自动判为注视
破坏SQL语句结构
3.OS命令注入攻击
通过Web应用,执行非法的操作系统命令达到攻击的命令,只要在能调用Shell函数的地方就有存在被攻击的风险。
4.HTTP首部注入攻击
攻击者通过在响应首部字段内插入换行,添加任意响应首部或主体的一种攻击。
向首部主体内添加内容的攻击称为HTTP响应截断攻击
(1)设置任何Cookie信息
(2)重定向至任意URL
(3)显示任意的主体(HTTP响应截断攻击)
%0D%0A,原本应属于首部字段Location的查询值部分,但经过解析后变成了换行符,结果插入了新的首部字段
HTTP响应截断攻击
是在HTTP首部注入的一种攻击。要两个%0D%0A%0D%0A并排插入字符串后发送。这两个连续的换行就可作出HTTP首部与主体分隔所需的空行了,这样就能显示伪造的主体,达到已攻击的目的。
5.邮件首部注入攻击
攻击者通过To或Subject内任意添加非法内容发起的攻击。
%0D%0A在邮件报文中表示换行符。一旦咨询表单所在的Web应用接收了这个换行符,就可能实现对Bcc邮件地址的追加发送,而这原本是无法指定的。
使用两个连续的换行符就有可能篡改邮件文本内容并发送。
6.目录遍历攻击
对本无意公开的文件目录,通过非法截断其目录路径后,达成访问目的的一种攻击。(也称路径遍历攻击)
7.远程文件包含漏洞
当部分脚本内容需要从其他文件读入时,攻击者利用指定外部服务器的URL充当依赖文件,让脚本读取之后,就可以运行任意脚本的攻击
三.因设置或设计上的缺陷引发的安全漏洞
1.强制浏览
从安置在Web服务器的公开目录下的文件中,浏览那些原本非自愿公开的文件。
(1)泄露顾客的个人信息等重要情报
(2)泄露原本需要具有访问权限的用户才可查阅的信息内容
(3)泄漏为连接到外界的文件
2.不正确的错误消息处理
(1)Web应用抛出的错误信息
(2)数据库等系统抛出的错误信息
Web应用不必在用户的浏览画面上展现详细的错误信息。对攻击者来说,详细的错误信息有可能给它们下一次攻击的提示。
系统抛出的错误主要集中在
i.PHP或ASP等脚本错误
ii.数据库或中间的错误
iii.Web服务器的错误
各个系统应对详细的错误信息进行抑制设定,或使用自定义错误消息,以避免某些错误信息给攻击者启发
3.开放重定向
一种对指定的任意URL作重定向跳转的功能。假如指定的重定向URL到某个具有恶意的网站,那么用户就会被诱导至那个Web网站。
四.因会话管理疏忽引发的安全漏洞
1.会话劫持
攻击者通过某种手段拿到了用户的会话ID,并非法用此ID伪装成用户,以达到攻击的目的
(1)通过非正规的生成方式推测会话ID
(2)通过窃听或XSS(可跨站攻击)攻击盗取会话ID
(3)通过会话固定攻击(Session Fixation)强行获取会话ID:强制用户使用攻击者指定的会话ID,被动攻击
2.跨站点请求伪造
事先设置好陷阱,强制对已完成认证的用户进行非预期的个人信息或设定信息等某些状态更新
(1)利用已通过认证的用户权限更新设定信息等
(2)利用已通过认证的用户权限购买商品
(3)利用已通过认证的用户权限在留言板上发表言论
五.其他安全漏洞
1.密码破解
算出密码,突破认证
(1)通过网络的密码试错
(2)对已加密码的破解(指攻击者入侵系统,已获得加密或散列处理的密码数据情况)
2.通过网络进行密码试错
对Web应用提供的认证功能,通过网络尝试候选码进行的一种攻击
(1)穷举法:对所有密钥集合构成的密钥空间进行穷举。
(2)字典法:利用事先收集好的候选码,枚举字典中的密码
3.对已加密密码的破解
Web应用保存密码时,不会用明文保存,通过散列函数处理或加salt的手段对要保存的密码本身进行加密。
(1)通过穷举法字典攻击进行类推:尝试调用相同的散列函数加密候选码,然后把计算出的散列值与目标散列值匹配,类推出密码
(2)彩虹表:由明文密码及与之对应的散列值构成的一张数据库表,是一种通过事先制作庞大的彩虹表,可在穷举法字典攻击等实际破解过程中缩短消耗时间的技巧。
(3)拿到密钥:使用共享密钥加密方式对密码数据进行加密处理的情况下,如果能通过某种手段拿到加密使用的密钥,也就可以对密码数据进行解密了
(4)加密算法的漏洞:考虑到加密算法本身可能存在漏洞,利用该漏洞尝试解密也是一种可行方法。但是困难极大
4.点击劫持
利用透明的按钮或连接做陷阱,覆盖在Web页面上。然后诱导用户在不知情的情况下,点击那个连接访问的一种手段
5.DoS攻击
让运行中的服务呈停止状态的攻击
(1)集中利用访问请求造成资源过载,资源用尽时,实际上服务也呈停止状态
发送大量的合法请求,服务器很难辨别何为正常请求,何为攻击请求,因此很难仿制DoS攻击
(2)通过攻击安全漏洞使服务停止
6.后门程序
(1)开发阶段作为Debug调用的后门程序
(2)开发者为了自身利益植入的后门程序
(3)攻击者通过某种方法设置的后门程序