netstat -tupln | grep 8080
查看端口是否被佔用,若是被佔用,用kill 進程號
終止佔用8080端口的進程。由於kali始終沒法安裝JDK,故使用本機實驗。java -jar webgoat-container-7.0.1-war-exec.jar
localhost:8080/WebGoat
直接用默認用戶名密碼登陸便可,開始練習概念:命令注入攻擊對任何一個以參數驅動的站點來講都是一個嚴重威脅。這種攻擊技術背後的技術方法,簡單易學,能形成大範圍的損害,危及系統安全。儘管這類風險數目使人難以置信,互聯網中的系統很容易受到這種形式的攻擊。javascript
原理:在正常的參數提交過程當中添加惡意代碼以執行某條指令。html
目標:能夠在目標主機上執行任何系統命令java
操做方法:web
右鍵點擊複選框,選擇inspect Element
審查網頁元素對源代碼進行修改,在末尾添加"& netstat -an & ipconfig"
正則表達式
點擊view
,能夠看到執行指令後的網絡端口使用狀況和IP地址。攻擊成功!
sql
概念:注入數字型數據(如:永真式)達到注入的效果。數據庫
原理:在station字段中注入特徵字符,組合成新的SQL語句。
如:SELECT * FROM weather_data WHERE station = [station]
瀏覽器
目標:該例子經過注入SQL字符串查看全部的天氣數據。安全
操做方法:服務器
右鍵點擊頁面,選擇inspect Element
審查網頁元素對源代碼進行修改,在選中的城市編號Value值中添加or 1=1
顯示全部城市的天氣狀況,攻擊成功!(5)
概念:經過在日誌文件中插入腳本實現欺騙。
原理:在日誌文件中愚弄人的眼睛,攻擊者能夠利用這種方式清除他們在日誌中的痕跡
目標:灰色區域表明在 Web 服務器的日誌中的記錄的內容,咱們的目的是使用戶名爲「admin」的用戶在日誌中顯示「成功登陸」
操做方法:
前提:本題目接受用戶輸入的任何一個用戶名,並將其追加到日誌文件中。
利用入回車(0D%)和換行符(%0A),在 username 中填入sxx%0d%0aLogin Succeeded for username: admin
概念:經過注入字符串繞過認證
原理:基於如下查詢語句構造本身的 SQL 注入字符串。
SELECT * FROM user_data WHERE last_name = '?'
目標基於查詢語句構造本身的SQL 注入字符串將全部信用卡信息顯示出來。
Injection Flaws
-String SQL Injection
Smith' or 1=1--
'
提早閉合""
,插入永真式1=1
,且--
註釋掉後面的內容,這樣就能select表裏面的全部數據原理:經過注入字符串繞過認證
操做方法:
右鍵點擊頁面,選擇inspect Element
審查網頁元素對源代碼進行修改,將password密碼框的最大長度限制改成100。
以用戶Neville(admit)登陸,輸入密碼hello' or '1' = '1
獲得全部人員列表,攻擊成功!
跨站腳本攻擊是經過HTML注入劫持用戶的瀏覽器,任意構造用戶當前瀏覽的HTML內容,能夠模擬用戶當前的操做。這裏實驗的是一種獲取用戶名和密碼的攻擊。
原理:當用戶輸入非法HTTP響應時容易受到XSS攻擊。在XSS的幫助下,能夠實現釣魚工具或向某些官方頁面中增長內容。對於受害者來講很難發現該內容是否存在威脅。
目標:建立一個 form,要求填寫用戶名和密碼。將數據提交到 http://localhost/WebGoat/catche r?PROPERTY=yes&user=catchedUserName&password=catchedPasswordNam
操做方法:
利用XSS能夠在已存在的頁面中進一步添加元素,包括兩部分:
編寫一段腳本讀取被攻擊者在表單上輸入的用戶名和密碼信息,將這些信息發送給捕獲這些信息的 WebGoat
編寫一個帶用戶名和密碼輸入框的表格
原理:跨站請求僞造是一種讓受害者加載一個包含網頁的圖片的一種攻擊手段。如:<img src="https://www.mybank.com/me?transferFunds=5000&to=123456"/>
,當受害者的瀏覽器試圖呈現此頁面時,它將使用指定的參數向www.mybank.com的「me」端點發出請求。瀏覽器將請求連接以得到圖像,即便它其實是一個資金轉移功能。提交請求時,瀏覽器將添加與站點相關的全部cookie。所以,若是用戶對站點進行了身份驗證,而且擁有永久或當前會話cookie,那麼站點將沒法將其與合法的用戶請求區分開來。經過這種方式,攻擊者可讓受害者執行他們不打算執行的操做,好比「購買物品」,或者脆弱網站提供的任何其餘功能。
目標:向新聞組發送一封email。這個email包含一個image,其URL指向一個惡意請求。URL應該指向「攻擊」servlet,其中包含「屏幕」和「菜單」參數,以及一個額外的參數「transferFunds」,其數值爲5000。能夠經過在右側插入的參數中找到「Screen」和「menu」值來構造連接。當通過身份驗證的CSRF電子郵件的收件人將被轉移他們的資金。
操做方法:
<img src="http://localhost:8080/WebGoat/attack?Screen=267&menu=900&transferFunds=5000" width="1" height="1" />
,以圖片的的形式將URL放進Message框,這時的URL對其餘用戶是不可見的(寬高設置成1像素的目的是隱藏該圖片),用戶一旦點擊圖片,就會觸發一個CSRF事件,點擊Submit
提交