理解經常使用網絡攻擊技術的基本原理。Webgoat實踐下相關實驗。前端
(1)SQL注入攻擊原理,如何防護java
把SQL命令插入到網頁請求表單中來欺騙服務器;限制輸入sql語句的關鍵詞web
(2)XSS攻擊的原理,如何防護sql
利用HTML以及用戶端腳本語言注入攻擊來獲取cookie;過濾<script>
等XSS攻擊可能涉及到的字符瀏覽器
(3)CSRF攻擊原理,如何防護服務器
攻擊者假裝成用戶,以用戶的名義發送請求;利用隨機驗證碼cookie
打開WebGoat:java -jar webgoat-container-7.0.1-war-exec.jar
等待一會就讓它待在後臺運行網絡
而後在瀏覽器輸入localhost:8080/WebGoat
進入xss
輸入永真式'or 1='1
,獲得了所有的信用卡號網站
此題沒法在前端注入,須要利用BurpSuite
·設置代理「Proxy」的「Options」選項
·添加一個新的端口8888,點擊add
·設置瀏覽器的代理 如圖
·而後回到題目,GO,再到burpsuite,出現了捕獲到的數據:
·而後點擊send to repeater ,修改station值從爲101 爲101 or 1=1
,點擊GO,
成功
·按上一個題目操做來,捕獲到數據、
·send to Repeater,更改URL處爲AccessControlMatrix.help"&&ifconfig"
使用戶訪問時載入攻擊者所指望的內容,直接輸入<script>alert("you are a shabi.Had this been a real attack...hehe");</script>
欺騙用戶本身去點擊連接才能觸發XSS代碼,也就是說它的代碼是不存在服務器中的,因此存儲型XSS攻擊危害更大。
建立一個form,讓用戶在咱們建立的form中填寫用戶名和密碼,再添加一段JavaScript代碼,讀取用戶輸入的用戶名和密碼
·利用URL誘使其餘用戶點擊,來觸發CSRF攻擊,咱們能夠用圖片的形式將URL放進Message框,這時的URL對其餘用戶是不可見的,用戶一旦點擊圖片,就會觸發一個CSRF事件。
·輸入<img src=' attack?Screen=網站的scr &menu=網站的menu &transferFunds=轉錢數額 >
·嘗試輸入默認的101,發現是有效數字
·而後肯定範圍101 AND ((SELECT pin FROM pins WHERE cc_number='1111222233334444') > 100 );
如有效,說明值大於100
101 AND ((SELECT pin FROM pins WHERE cc_number='1111222233334444') > 10000 );
若無效,說明值小於10000
而後按此方法肯定
最後爲2364
·要求是欺騙登陸成功
·因此利用回車%0d,換行符%0a
·輸入5228%0d%0aLogin Succeeded
即可以僞裝進入
·剛開始輸入' or 1 = 1 --
,這樣是不行的,密碼框被設置只能輸入8位
·而後在頁面點右鍵Inspect Element,將長度改成16,格式改成text便於咱們查看本身的輸入
·再次輸入便可成功
·輸入' or 1 = 1 --
,
·後面要求使用該SQL語句實如今myBackDoor表中添加新用戶就在用戶表裏將新用戶的郵箱改成題目固定的郵箱。
·而後加上101 or 1=1;CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='john@hackme.com'WHERE userid = NEW.userid;
此次實驗收穫不少,學到了SQL、XSS、CSRF攻擊的思路以及原理、方法,對網絡攻擊的方式更加多樣化,理解了這些以後對咱們如何防護這些攻擊有了有較大幫助