针对Web的攻击技术
- 攻击目标:应用HTTP协议的服务器和客户端,运行在服务器上的Web应用
HTTP不具备必要的安全功能
在客户端即可篡改请求
- 在HTTP请求报文内加载攻击代码,就能发起对Web应用的攻击。通过URL查询字段或表单、HTTP首部、Cookie等途径把攻击代码传入,若这时Web应用存在安全漏洞,那内部信息就会遭到窃取,或被攻击者拿到管理权限。
针对Web应用的攻击模式
- 主动攻击
以服务器为目标的主动攻击(SQL注入攻击和OS命令注入攻击):通过直接访问Web应用,把攻击代码传入 - 被动攻击
利用用户的身份攻击企业内部网络
因输出值转义不完全引发的安全漏洞
- 客户端的认证
采用JavaScript,可是在客户端允许篡改数据或关闭JavaScript,不适合将JavaScript验证作为安全的防范对策 - Web应用端(服务器端)的认证
输入值验证:指检查是否是符合系统业务逻辑的数值或检查字符编码等预防对策
输出值转义:对数据库或文件系统、HTML、邮件等输出Web应用利用输出值转义进行数据处理
跨站脚本攻击
- 通过存在安全漏洞的Web网站注册用户的浏览器内运行非法的HTML标签或JavaScript进行的一种攻击
- 影响:利用虚假输入表单骗取用户个人信息。 显示伪造的文章或图片。
XSS是攻击者利用预先设置的陷阱触发的被动攻击
- 创建嵌入恶意代码的URL,植入事先准备好的欺诈邮件或Web页面内,诱使用户去点击该URL
对用户Cookie的窃听攻击
http://hackr.jp/xss.js
文件
SQL注入攻击
会执行非法SQL的SQL注入攻击
- SQL注入(SQL Injection)是指针对Web应用使用的数据库,通过运行非法的SQL而产生的攻击
- 影响:
● 非法查看或篡改数据库内的数据
● 规避认证
● 执行和数据库服务器业务关联的程序等 - 例:
–后面的内容将会被忽略
OS注入攻击
$adr
是邮件地址
- 攻击者将下面的值指定作为邮件地址:
- 构成下面的命令组合
- 结果,含有Linux账户信息/etc/passwd的文件,就以邮件形式发送给了
hack@example.jp
HTTP首部注入攻击
- HTTP首部注入攻击(HTTP Header Injection)是指攻击者通过在响应首部字段内插入换行,添加任意响应首部或主体的一种攻击。属于被动攻击模式。
- Web应用有时会把从外部接收到的数值,赋给响应首部字段Location和Set-Cookie。在这里可以添加换行
- 影响:
● 设置任何Cookie信息
● 重定向至任意URL
● 显示任意的主体(HTTP响应截断攻击) - 例:
%0D%0A
代表HTTP报文中的换行符
HTTP响应截断攻击
- 两个
%0D%0A%0D%0A
连续的换行就可作出HTTP首部与主体分隔所需的空行了
- 利用这个攻击,已触发陷阱的用户浏览器会显示伪造的Web页面,再让用户输入自己的个人信息等,可达到和跨站脚本攻击相同的效果。
邮件首部注入攻击
- 攻击者通过向邮件首部
To
或Subject
内任意添加非法内容发起的攻击。利用存在安全漏洞的Web网站,可对任意邮件地址发送广告邮件或病毒邮件。 - 邮件地址:
%0D%0A
代表一个换行符,可以实现邮件地址的追加
%0D%0A%0D%0A
代表两个连续的换行符,可以篡改邮件文本内容
目录遍历攻击:
- 对本无意公开的文件目录,通过非法截断其目录路径后,达成访问目的的一种攻击
- 用户可使用.…/等相对路径定位到/etc/passed等绝对路径上
- 例:
远程文件包含漏洞
- 当部分脚本内容需要从其他文件读入时,攻击者利用指定外部服务器的URL充当依赖文件,让脚本读取之后,就可运行任意脚本的一种攻击。
- 例:
攻击者在cmd.php
准备了