20155324《網絡對抗技術》web安全基礎實踐
20155324《網絡對抗技術》web安全基礎實踐
實驗內容
使用webgoat進行XSS攻擊、CSRF攻擊、SQL註入
實驗問答
SQL註入攻擊原理,如何防禦
①SQL註入攻擊是攻擊者在web應用程序中事先定義好的查詢語句的結尾上添加額外的SQL語句,把SQL語句當做用戶名等輸入正常網頁中以獲取數據庫信息的攻擊,最終達到欺騙服務器執行惡意的SQL命令
②對輸入的數據進行過濾,在數據庫中對密碼進行加密
XSS攻擊的原理,如何防禦
①通過對網頁註入可執行代碼,成功地被瀏覽器執行,以達到攻擊的目的
②對用戶輸入的數據進行合法性驗證,可執行代碼、特殊字符相關的不允許通過
CSRF攻擊原理,如何防禦
①CSRF是跨站請求偽造,是一種對網站的惡意利用,通過偽裝來自受信任用戶的請求來利用受信任的網站
②定期清理保存的cookie、隨機驗證碼驗證
實驗過程
輸入命令開啟webgoat
在瀏覽器輸入localhost:8080/WebGoat進入webgoat
SQL練習
SQL字符串註入(String SQL Injection)
- ?要求原本只能查到某一個人的信息,通過SQL語句的註入使整張表都顯示出來
- ?構造語句‘or 1=‘1,成功得到了全部的信息
數字型SQL註入(Numeric SQL Injection)
- 表單允許使用者看到天氣數據,利用SQL註入看見所有數據
- 修改station值從為101為101 or 1=1,右邊response包中的SQL語句為SELECT * FROM weather_data WHERE station = 101 or 1=1
返回瀏覽器隨便選一項點擊go,顯示實驗成功了,但是並沒有顯示全部信息誒,很尷尬
命令註入(Command Injection)
- 要求能夠在目標主機上執行任意系統命令
- 在網頁源代碼上直接修改,直接在選項後加上"&&ifconfig"
回到瀏覽器,選擇剛才修改的選項,提交
盲數字註入(Blind Numeric SQL Injection)
- 得到一個存放在pins表中值pin的內容,行號cc_number=1111222233334444,是一個int型的數據
- ?嘗試默認的101,發現顯示Account number is valid,說明是真
然後確定上下界使用二分法得到答案2364
SQL註入實驗(LAB SQL Injection)
- Stage 1:String SQL Injection:
- 使用字符串SQL註入在沒有正確密碼的情況下登錄賬號boss
- 直接登錄,顯示失敗
- 將密碼修改為‘ or 1=1 -- 繞過密碼檢查
- 但是密碼只能是8位,所以改一下密碼位數
登錄成功
- Stage 3: Numeric SQL Injection
- 通過一個普通員工的賬戶,瀏覽其BOSS的賬戶信息
- 登錄後發現我們只能看見Larry一個人的工資信息
把其中的value值改為101 or 1=1 order by salary desc
登錄即可看見老板的信息
日誌欺騙(Log Spoofing)
- 利用日誌的格式,使用換行等字符,欺騙管理員
- 輸入5240%0d%0aLogin Succeeded for username: admin 即可成功登錄
- Database Backdoors
- ?輸入註入語句:101; update employee set salary=10000,成功把該用戶的工資漲到了10000
使用語句:101;CREATE TRIGGER lsjBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email=‘[email protected]‘ WHERE userid = NEW.userid 創建一個後門,把表中所有的郵箱和用戶ID都設為我的
XSS攻擊
- 跨站腳本釣魚攻擊(Phishing with XSS )
- 在輸入框中註入前端代碼,顯示如下網頁
輸入用戶名和密碼,提交即可截獲
反射型XSS(Reflected XSS Attacks)
- 如果我們輸入錯誤的用戶信息,服務器校驗輸入有誤,會返回錯誤頁面並顯示錯誤內容
- 將帶有攻擊性的URLhttp://www.targetserver.com/search.asp?input=作為輸入源,會彈出對話框
儲存型XSS(Stored XSS Attakcs)
給用戶發一個信息,用戶在打開這個信息的時候觸發了隱藏在信息裏面js代碼,然後被盜走了cookies
XSCF攻擊
CSRF Prompt By-Pass
- 是通過郵件的方式進行惡意請求,使用兩個iframe模塊添加請求確認的要求
<iframe src="attack?Screen=自己的src&menu=自己的menu&transferFunds=5000">
<iframe src="attack?Screen=自己的src&menu=自己的menu&transferFunds=CONFIRM">
實驗列表
實驗總結與體會
本次實驗讓我知道了可以通過各種方法實現攻擊,上網真的是不能掉以輕心,否則一下就被攻擊了的嘛。
20155324《網絡對抗技術》web安全基礎實踐