提交需求
*
*

*
*
*
立即提交
点击”立即提交”,表明我理解并同意 《美创科技隐私条款》

logo

    产品与服务
    解决方案
    技术支持
    合作发展
    关于美创

    申请试用
      安全实验室:JSONP劫持原理及利用
      发布时间:2020-07-03 阅读次数: 332 次

      浏览器的同源策略使得比如http://www.a.com的网站没法直接获取http://www.b.com的相关数据,那么假如在一些应用场景一定要获取怎么办?这时,便可以利用JSONP实现跨域读取数据。


      01、什么是JSONP


      JSONP(JSON with Padding)是为了跨域获取资源而产生的一种非官方的技术手段,它利用的是script标签的src属性不受同源策略影响的特性,使网页可以得到从其他来源动态产生的json数据,因此可以用来实现跨域读取数据。

      02、JSONP实例


      JSONP的最基本的原理是:动态添加一个


      4)用户收到响应,解析恶意代码,将回调函数作为参数向网站B发出请求;

      5)网站B接收到请求后,解析请求的URL,以 JSON 格式生成请求需要的数据,将封装的包含用户信息的JSON数据作为回调函数的参数返回给浏览器,网站B返回的数据实例如下:

      Callback({"id":1,"name":"test","email":"test@test.com"})

       6)网站B数据返回后,浏览器则自动执行Callback函数将JSON数据回传到网站A的服务器,这样网站A利用网站B的JSONP漏洞便获取到了用户在网站B注册的信息。

      04、JSONP劫持漏洞的利用


      当我们发现信息泄露的 jsonp 接口以后,我们需要构造一个恶意html页面,然后引诱受害者去访问这个网站,一旦访问了这个网站,脚本就会自动运行,就会向这个接口请求用户的敏感数据,并传送到攻击者的服务器上。恶意html页面aa.html代码如下:



      受害者访问恶意html页面后,攻击者服务器上便可以接受到受害者的敏感信息。如下图所示,可以看到看到用户名为123132,密码hash为b144ef4a51d09eb8878
      c77bdc4ee8e6e。通过md5在线爆破可知密码为Qwe123。


      05、防御方法


      ☞ 一、接受请求时检查referer来源。

      ☞ 二、在请求中添加 Token并在后端进行验证。

      ☞ 三、严格过滤callback函数名及JSON里数据的输出。


      免费试用
      服务热线

      马上咨询

      400-811-3777

      回到顶部