一、什么是JSONP
JSONP(Json in Paddig)
- 第一、在网络中为了传输数据与读取数据有统一的格式,所以使用json结构来重构数据,简单点就是键值对;
- 第二、由于同源策略,所以不同域的网站无法通过AJAX直接读取数据,比如一个银行,有两个不同域的网站,一个网站可以以json格式显示用户信息,银行希望另一个网站能够读取到这些信息;
- 第三、虽然不能跨域请求,但是能跨域脚本包含
基于此,JSONP诞生了,其实JSONP的实现原理就是JSONP劫持的实现原理,用个靶场举例:
二、实现原理
目标网站提供一个这样的网页:
注意到json数据被test()包括起来,这很关键
攻击者可以写一个而已网页,让受害者点击:
<script type="text/javascript">
function test(data){
document.write("<b>"+data.username+"<b>")
}