Web攻击技术
简单的HTTP
协议本身并不存在安全性问题,因此协议本身几乎不会成为攻击的对象。应用HTTP
协议的服务器和客户端,以及运行在服务器上的Web
应用等资源才是攻击目标。
HTTP
不具备必要的安全功能,就拿远程登录时会用到的SSH
协议来说,SSH
具备协议级别的认证及会话管理等功能,HTTP
协议则没有。
另外在架设SSH
服务方面,任何人都可以轻易地创建安全等级高的服务。而HTTP
即使已假设好服务器,但开发者需要自行设计并开发认证及会话管理功能来满足Web
应用的安全。而自行设计就意味着会出现各种形形色色的实现,可仍在运作的Web
应用背后就会隐藏着各种容易被攻击者滥用的安全漏洞的Bug
。
因输出值转义不完全引发的安全漏洞
跨站脚本攻击(
Cross-Site Scripting, XSS
):主要是指在用户浏览器内运行了非法的HTML
标签或JavaScript
脚本。比如富文本编辑器,如果不过滤用户输入的数据直接显示用户输入的HTML
内容的话,就会有可能运行恶意的JavaScript
脚本,导致页面结构错乱,Cookies
信息被窃取等问题。SQL注入攻击(
SQL Injection
):是指针对Web
应用使用的数据库,通过运行非法的SQL
而产生的攻击。
举个例子:
select * from bookstore where author = 'will' and flag =1;
使用SQL
注入:select * from bookstore where author ='will'--' and flag =1;
此时,这条SQL
语句后面的flag=1
的过滤将会被跳过,因为SQL
语句中--
之后全视为注释
OS命令攻击(
OS Command Injection
):是指通过Web
应用,执行非法的操作系统命令达到攻击的目的。 只要在能调用Shell
函数的地方就有存在被攻击的风险。HTTP
首部注入攻击(HTTP Header Injection
):是指攻击者通过在响应首部字段内插入换行,添加任意响应首部或主体的一种攻击。HTTP
响应截断攻击:是用在HTTP
首部注入的一种攻击。攻击顺序相同,但是要将两个 %0D%0A%0D%0A 并排插入字符串后 发送。利用两个连续的换行就可作出HTTP
首部与主体分隔所需的空行了,这样 就能显示伪造的主体,达到攻击的目的。
邮件首部注入攻击(Mail Header Injection
):是指 Web
应用中的邮件发送功能,攻击者通过向邮件首部 To
或 Subject
内任意添加非法内容发起的攻击。利用存在安全漏洞的Web
网站,可对任意邮件地址发送广告邮件或 病毒邮件。
目录遍历攻击(
Directory Traversal
):是指对本无意公开的文件目录,通过非法截断其目录路径后,达成访问目的的一种攻击。比如,通过 ../ 等相对路径定位到 /etc/passwd 等绝对路径上。远程文件包含漏洞(
Remote File Inclusion
): 是指当部分脚本内容需要从其他文件读入时,攻击者利用指定外部服务器的URL
充当依赖文件,让脚本读取之后,就可运行任意脚本的一种攻击。
因设置或设计上的缺陷引发的安全漏洞
- 强制浏览(
Forced Browsing
):是指,从安置在Web
服务器的公开目录下的文件中,浏览那些原本非自愿公开的文件。比如,没有对那些需要保护的静态资源增加权限控制。 - 不正确的错误消息处理(
Error Handling Vulerability
):指Web
应用的错误信息内包含对攻击者有用 的信息。 - 开放重定向(
Open Redirect
):是一种对指定的任意URL
作重定向跳转的功能。而于此功能相关联的安全漏洞是指, 假如指定的重定向URL
到某个具有恶意的Web
网站,那么用户就会被诱导至那个Web
网站。
因会话管理疏忽引发的安全漏洞
- 会话劫持(
Session Hijiack
):是指攻击者通过某种手段拿到了用户的会话ID
,并非法使用此会话ID
伪装成用户,达到攻击的目的。 - 会话固定攻击(
Session Fixation
):对以窃取目标会话ID
为主动攻击手段的会话劫持而言,会强制用户使用攻击者指定的会话ID
,属于被动攻击。 - 跨站点请求伪造(
Cross-Site Request Forgeries, CSRF
):是指攻击者通过设置好陷阱,强制对已完成认证的用户进行非预期的个人信息或设定等某些状态更新,属于被动攻击。
其它安全漏洞
- 密码破解:①通过网络进行密码试错(穷举法和字典攻击);②对已加密密码的破解(通过穷举法·字典攻击进行类推、彩虹表、拿到加密时使用的密钥、加密算法的漏洞)
- 点击劫持:是指利用透明的按钮或链接做成陷阱,覆盖在
Web
页面之上。然后诱使用户在不知情的情况下, 单击那个链接访问内容的一种攻击手段。这种行为又称为界面伪装(UI Redressing
)。 - Dos攻击:是一种让运行中的服务呈停止状态的攻击。有时也叫做服务停止攻击或拒绝服务攻击。多台计算机发起的
Dos
攻击称为DDoS
攻击(Distributed Denial of Service attach
) 。 - 后门程序:是指开发设置的隐藏入口(如开发阶段作为
Debug
调用的后门程序),可不按正常步骤使用受限功能。利用后门程序就能够使用原本受限的功能。