JSONP 漏洞

Jsonp 原理

jsonp 可以让网页从别的域获取内容,即跨域读取数据

攻击者模拟用户向有漏洞的服务器发送 jsonp 请求,然后获取到了用户的某些信息,再将这些信息发送到攻击者可控的服务。

jsonp 最基本的原理就是,动态添加一个 <script> 标签,而script标签的 src属性是没有跨域限制的

由于同源策略的限制,xmlHttpRequest 只允许请求当前 相同协议、域名、端口 的资源,如果要进行跨域请求,我们可以通过使用 script 标签来进行跨域请求,并在相应追踪返回要执行的 script 代码,可以直接使用json传递javascript对象

JSONP 攻击方法

和csrf类似,都需要用户登录账号,身份认证还没有被消除的情况下访问攻击者设计好的页面,就会获取json数据,将json数据发送给攻击者,寻找敏感json数据api接口,构造恶意代码,发送给用户,用户访问有恶意的页面,数据就会被劫持发送到远程服务器。

JSONP 简单实现

  • 前端 http://localhost

    <script>
      function callBack(json){
        alert(JSON.stringify(json));
      }
    </script>
    <script src="http://localhost:8888/?callback=callBack"></script>
  • 后端 http://localhost:8888

    <?php
    header("Content-Type: application/javascript");
    
    $param = $_GET['callback'];
    $info = "{'name': 'Lixiney', 'age': 18}";
    $info = json_encode($info);
    
    echo "$param($info)";
    
    ?>

JSONP 漏洞
https://blog.lixey.top/JSONP-漏洞/
Author
Lixiney
Posted on
September 2, 2025
Licensed under