啓動webgoatjava
Numeric SQL Injection(數字型注入)git
String SQL Injection(SQl語句注入)github
Database Backdoors(數據庫後門)web
Phishing with XSS(XSS釣魚攻擊)sql
Stored XSS Attacks(存儲型XSS攻擊)數據庫
Reflected XSS Attacks(反射型XSS攻擊)瀏覽器
Cross Site Request Forgery(跨站腳本攻擊)安全
CSRF Prompt By-Pass(不太清楚該咋翻譯)服務器
下載webgoat:網站https://github.com/WebGoat/WebGoat/releases/tag/7.0.1,下載webgoat-container-7.0.1-war-exec.jar(這裏多說一句8.0.0版本的有問題,有點頭禿,看到以前的學長學姐用的都是7.0.1,那就也用這個版本吧)
再有該文件的在命令行輸入 java -jar webgoat-container-7.0.1-war-exec.jar 開啓WebGoat
運行一段時間以後命令行出現Starting ProtocolHandler證實開啓成功
打開瀏覽器訪問localhost:8080/WebGoat
若是右側未出現課程則從新下載jdk(一開始左邊只有一欄,忘記截圖)看了學姐的博客知道是編譯後的java程序與Linux上的java Se版本不一致而產生的錯誤,我服了,真是啥問題都給趕上;不過直接下載個jdk1-8,而後按這篇連接作就行。
目的:容許用戶查看天氣數據,經過注入一條SQL語句來顯示所有天氣信息
原理:經過選擇不一樣地點,能夠選擇查看相應城市的信息。每選擇一個城市,就會把該城市對應的station字段填入SELECT * FROM weather_data WHERE station = ?這條語句中,在數據庫後臺執行,並將從數據庫中獲得的搜索結果打印在屏幕上
而後右鍵選擇inspter....,這裏找sql語句的values加上 or 1=1 永真以顯示其餘城市,這裏找sql語句時候要耐心
而後這裏再選哥倫比亞->GO就會驚喜的發現這裏全部的城市都顯示了
日誌欺騙就是經過添加假的日誌文件以實現登陸,在User Name輸入 lyz%0d%0aLogin Succeeded for username: admin ,%0d表示空格,%0a表示換行;接下來點擊登陸會顯示兩行信息,第二行顯示admin登錄成功,證實登錄成功
題目中 SELECT * FROM user_data WHERE last_name = 'Your name' ,咱們知道他是一個查詢語句,因此真正須要修改的就是查詢名字那裏
而咱們須要顯示全部用戶的信息,因此這裏在查詢時加入用永真式語句'or 1 = 1',將查詢語句變爲 SELECT * FROM user_data WHERE last_name = ''or 1 = 1 ,因爲有一個條件永遠爲真,所以會查詢全部用戶的信息(其實感受這裏原理和數字注入原理差很少)
驚喜的發現還有步驟二,就是讓你設置一個tigger,達到目的:只要添加了新員工,就把他郵箱設置成john@hackme.com
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;
完成
在搜索框中輸入XSS攻擊代碼,利用XSS能夠在已存在的頁面中進一步添加元素的特色。咱們先建立一個form,讓受害人在咱們建立的form中填寫用戶名和密碼,再添加一段JS代碼,讀取受害人輸入的用戶名和密碼,而且將這些信息發送給http://localhost:8080/WebGoat/catcher?PROPERTY=yes...
能夠發現下方多了一個登陸頁面
存儲型XSS攻擊,經過輸入代碼使用戶訪問時彈出非預期的內容。
反射型XSS是最多見的Web應用程序安全漏洞之一;
指:攻擊者在網頁嵌入客戶端腳本,一般是JavaScript編寫的危險代碼,當用戶使用瀏覽器瀏覽網頁時,腳本就會在用戶的瀏覽器上執行,從而達到攻擊者的目的;
在上一次的實驗八中實際上作的就是反射型XSS,這裏在文本框加入和上文同樣的警告,發現結果同樣,證實攻擊成功
實驗要求目標是發一個電子郵件給newsgroup,內容包括一個有惡意請求的圖片URL。這個URL指向「attack」(包含參數「Screen」和「Menu」,還有一個參數「transferFunds」(轉帳))。若是收到含有CSRF頁面的郵件時,就會執行transferFunds。 在框中輸入代碼 ,當受害者瀏覽這個網頁時,會發送一個transferFunds的請求,瀏覽器認爲是正常的打開圖片請求,但實際執行了惡意轉帳請求。
在文本框中提交一個含有轉帳惡意請求的代碼,<img src="http://localhost:8080/WebGoat/attack?Screen=&menu=900&transferFunds=104"/>
成功後旁邊會有對勾
網頁上的手動發起的請求,經過HTML+JavaScript向服務器請求;這道題的要求咱們確認用戶轉帳,也就是說url須要使用下面兩個參數:transferfunds=數額 和transferfunds=CONFIRM
<iframe src="attack?Screen=279&menu=533&transferFunds=5104">
</iframe>
<iframe src="attack?Screen=279&menu=533&transferFunds=confirm" >
</iframe>
SQL注入攻擊原理,如何防護
sql注入原理:就是經過把SQL命令插入到「Web表單遞交」或「輸入域名」或「頁面請求」的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令,來獲取一些隱私信息甚至越權登陸。
防護手段:
一、使用參數化篩選語句,爲了防止SQL注入,用戶輸入不能直接嵌入到SQL語句中。
二、避免使用解釋程序,這是黑客用來執行非法命令的手段。
三、防止SQL注入,但也避免一些詳細的錯誤消息,由於黑客可使用這些消息。標準的輸入驗證機制用於驗證全部輸入數據的長度、類型、語句和企業規則。
四、使用專業的漏洞掃描工具。
五、最後,企業在Web應用程序開發過程的全部階段執行代碼安全檢查。首先,安全測試應該在部署Web應用程序以前實現,這比之前更重要、更深遠。企業還應在部署後使用漏洞掃描工具和站點監控工具測試網站。
(二)XSS攻擊的原理,如何防護
XSS攻擊原理:利用網頁開發時留下的漏洞,將惡意代碼植入網頁,使用戶加載並執行攻擊者惡意製造的網頁程序。攻擊成功後,能夠進行越權操做、獲取私密網頁內容、會話和cookie等各類內容
防護手段:
1.對輸入和URL參數進行過濾(白名單和黑名單)
2.對輸出內容進行編碼
(三)CSRF攻擊原理,如何防護
CSRF攻擊原理:利用你關閉網站但未結束的會話,盜取你的身份以你名義發送郵件,發消息,盜取你的帳號,甚至於購買商品,虛擬貨幣轉帳......
防護手段:
1.客戶端頁面增長僞隨機數(驗證碼)
2.按期清理cookie
本次實驗實際上本質是利用教學軟件webgoat進行了一系列的的sql、xss、crsf攻擊以用來達到更加了解網絡安全的目的,在平時也能更好的防範這幾種攻擊;感受實驗八和實驗九彌補了上學期的不少欠缺的知識點;此次試驗是本學期的最後一次是實驗,雖然不少實驗作起來很艱辛;但總體來講仍是受益不淺的