您的当前位置:首页正文

Jsonp常见安全漏洞分析

2022-05-14 来源:钮旅网


Jsonp常见安全漏洞分析(京东商城Jsonp 漏洞分析)

JSONP(JSON with Padding)是资料格式 JSON 的一种“使用模式”,可以让网页从别的网域要资料。这个解释来自于互联网上面的答案。jsonp只是 一种使用json模式,之所以能够很广泛使用。主要用它来解决跨域访问问题。可以方便跨域名传输数据。一些是一个jsonp的例子。但是,正确的使用 jsonp是至关重要的,用得不好。将带来重要资料把超范围访问,还会带来各自xss漏洞。

JSONP跨域请求例子

传统的ajax ,往往是 XMLHttpRequest ,读取一个接口,返回类似: {“Name”: “小明”, “Rank”: 7} json值。一般我们都采用xmlhttprequest方法通过状态判断执行请求是否完毕。 JSONP的使用模式里,该URL回传的是由自定义传入函数名,动态生成JSON作为该函数入参,这就是JSONP 的“填充(padding)”或是“前辍(prefix)”的由来。 请求:

返回:

parseResponse({\"Name\": \"Cheeso\

parseResponse是传入参数值决定的,这样好处通过script标签可以解决跨域问题,并且只要script src地址加载完,js解析引擎就开始执行src地址返回 js内容了。 我们使用者不用关心,什么时候src地址加载解析完。只用写好接收函数:parseResponse,到时候自动回执行该项目。比传统ajax确实多了很 多方便!目前,象google翻译,地图等都用该方法。实现了跨域及异步调用!

JSONP漏洞将来自哪里?

它给我们带来的发布,是毫无疑问的。那么它将会有哪些漏洞呢?首先,我们知道,一切输入是有害的。传入callback 值会在结果里面直接返回。因此,如果该参数过滤不严格。可以随便输入:callback值为:alert(‘1’);parseResponse 字符串。返回结果会打印个alert窗口,然后也会正常执行。

那么另外我们知道,flash是可以跨域的。flash请求外部资源,现在都有个”crossdomain.xml”,可以授权允许那些来源的站点,访问指定站点的资源。其实目的就是为了防止,资源被越权调用

了。 如果我们不对其授权,那么任何网站都可通过:创建script标记,读取我网站资源了!这个安全项,也就是是否有对访问来源进行了授权访问! JSONP漏洞总结:

知道了JSONP漏洞点主要有:callback参数注入、资源访问授权设置!我们其实,可以通过这2项,来检测我们的做的JSONP项目,里面是 否有安全隐患了。好了,今天先分析到这里。这些漏洞都是,技术实现型漏洞!只要,我们明白了方法,杜绝是很容易的。之所以会出现类似安全隐患,更多来自,不知道这里有类似安全问题! ,题外话、发发感慨!!现在网上看到很多教程,以及书籍都只会讲,怎么样使用某个功能,它的方法、技巧等等!很少解决,技术功能点安全避免漏洞的调用方法!做一个功能很重要,但是我始终认为,开发一个安全、稳定功能是最基础的前提。 如果做的功能不安全,稳定!它急着上线,只会带来更大的风险、或是损失!!! 欢迎大家交流,提出更换的建议!(”什么?这里不是说京东商城有JSONP漏洞吗?“ ”对!没错!” 今天我这里分析漏洞点,大家可以找找京东商城这方面使用漏洞,我们下次分享实例!)

京东商城Jsonp 漏洞分析 (京东商城XSS漏洞)

继续我们jsonp 安全使用分享吧!上一篇文章我们提到jsonp使用,常见2种类型漏洞出现!详细可以看看:Jsonp常见安全漏洞分析 ,今天我们来结合实例分析下该漏洞的测试、及利用过程吧! 题外话

为什么我选择是京东商城来分析它的jsonp 漏洞呢,其实主要原因最近6.18一直在做活动,我也买了不少便宜东西。现在该商城越做越好了。它系统也非常庞大,速度性能也很好。当时在购物时候,只是 想看看,它的系统分离设计方面。通过分析页面http请求,发现有很多jsonp调用(也许跟换域名有关系,2种域名都可以访问,中间用jsonp交换数 据),于是就看看,jsonp常见2种安全方面,有没有做处理。结果一测试。发现完全没有做任何处理,几乎是完完全全暴露出来。个人认为,对于这么大站 点,这一点还是头一次遇到!居然,没有任何参数处理、以及资源授权!

京东商城Jsonp xss漏洞分析

我们看到,该请求就是一个jsonp,

默认返回:jsonp13**********({“Identity”:{“Name”:”\我们知道callback传入参数,会在response中 作为函数调用名称返回! 分析callback 字符范围

1、测试下有没有屏蔽常见特殊字符” <> ()’”;. {}“,以下这些字符,经常会用到xss里面的。

到这里,分析说明这里存在着xss注入漏洞的。而且,可以选择很多种方法注入! 本编文章,旨在说明jsonp xss漏洞成因!不会具体去扩大漏洞拿到其它什么权限。以下还有个很有意思事情,callback其实,jd对一些特殊字符串做了处理的。我们看看:

从上图中,我们可以看到,京东商城,对输入callback对一些特定的字符串进行了屏蔽处理!这也是,我们做xss漏洞检查时候,经常出现问题。屏蔽字符串能够屏蔽完吗?常见26字符,长度不一任意组合。该有多少字符串呢? 很多朋友,在做安全检测时候,就是屏蔽某些觉得很不安全的标签就认为安全了。 其实,我们发现这样做法只能是一时安全,过不了多久,你会发现又有新的字符串出现。你会为此花费大量的人力物力!好了,做类似事情,我们最好方法是,认证那些觉得安全的字符,予以放行!

其实,为什么用白名单方法放行允许的字符呢? 而不是去过滤一些字符串。原因刚刚说了,字符串太多了。过滤不过来!另外是,我们自己每个业务参数,会用到那些字符其实我们更清楚。另外有人会问,为什么不去屏蔽不用的字符呢?我们知道基础ascii码有0-127,128字符。往往我们,不会用到的字符可能更多呢,我们去过滤不会用到字符,有时候更困难! 正确检查jsonp callback方法

建议收到callback函数对它进行白名单字符范围检测!我们可以用一般函数检测规范来检查就可以了。 既然它是一个函数名称,一般都是字符+数字+下划线+点号(对象分割)。那么我们检测变得非常简单,代码类似如: $callback = isset($_GET['callback'])?$_GET['callback']:''; 2 3

if(!preg_match(\"/^[0-9a-zA-Z_.]+$/\",$callback)) 4 { 5 6 exit('参数错误!'); 7 }

后记:以上是分析一个jsonp xss漏洞过程。要检测一个站点是否有该漏洞,其实简单方法,就是看通过参数传入进去的特殊字符,是不是原原本本的response 返回出来。 如果有朋友问我,怎么样利用该漏洞,它能做点什么? 你可以把它比作一个蚁穴,能带来多大危害,看蚂蚁怎么样啃食啦!这些年,sql注入几乎难找了,不过xss漏洞是头号杀手。只要有xss漏洞出现,几乎可 以做到无所不能,就看利用的人怎么用了。 以上漏洞,我反馈京东商城,这么好的一个网站,不能因为这个小小xss,给用户带来大的安全隐患了!最后,欢迎朋友提出自己建议!还有一个忘记说了,就是 它的jsonp访问权限完全没有限制,下次再分享吧!

京东商城Jsonp 资源越权限访问漏洞分析

最近比较忙,电脑一直有问题,还没有修理好。本来以前买个电脑才3000来块,现在刚好过保几个月,然后修下说要700多,如果换配件要1000 多。这个电脑现在买个新二手,应该也就千把块,够黑了。呵呵,不说这么些了。今天我们继续分析京东商城Jsonp使用漏洞之二,未对资源访问进行授权。

对于Jsonp漏洞,这里我就不细说了,详细可以看:Jsonp常见安全漏洞分析(京东商城Jsonp 漏洞分析) ,从上面文章,我们知道jsonp是可以跨域名调用的。这个漏洞是:没有授权网站,可以直接在该站点访问jsonp接口资源。可能有朋友会问题:“这个漏洞有什么影响呢?”,一般我们常见有:

1.对于存在漏洞的网站来说:jsonp资源给外部调用,浪费接口资源,也给调用带来压力 2.利用者,可以通过jsonp获取网站资源,构造钓鱼站点,或者给用户发送钓鱼站点。获取用户在漏洞网站上面的用户信息(用户登陆情况下),或者偷偷操作用户功能! 具体我们看看实例:

我们看看,如果有个另外域名站点,怎么样调用该信息! header(\"Content-Type: text/html; charset=utf-8\"); ?>

总结,通过上面例子,对于jsonp跨站访问,带来资源别越权调用漏洞。我们应该知道了它的原理。如果要防止这类越权访问,我们一般只需要对访问来源:reffer进行授权 这 是最简单的方法! 也是最常用方法了。如果有朋友会问,这个漏洞有什么危害呀,看起来好像没有什么问题?如果一个站点别有用心站点(这里叫A站),在京东商城上面发了一个链 接。有不小心朋友点过去。这个时候,你刚好自己登陆了。这个时候,A站就可以悄悄读到你在京东商城一些信息了。到此,对京东商城jsonp漏洞都分析完 毕,国内这么大一个商城,在这个方面使用,几乎没有做任何检测,确实有些不应该!希望,以上分析对即将应用jsonp朋友有所帮助!也需要大家发表自己看法

因篇幅问题不能全部显示,请点此查看更多更全内容