JSONP 漏洞

Last updated on September 2, 2025 pm

Jsonp 原理

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

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

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

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

JSONP 攻击方法

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

JSONP 简单实现

  • 前端 http://localhost

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

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?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/posts/39c6ae33/
Author
Lixiney
Posted on
September 2, 2025
Licensed under