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

## 2018-2019 20165118 《網絡對抗技術》Exp9 Web安全基礎html

一.實踐內容

本實踐的目標理解經常使用網絡攻擊技術的基本原理,作很多於7個題目,共3.5分。包括(SQL,XSS,CSRF)。Webgoat實踐下相關實驗。java

二.實踐過程記錄

2.1開啓webgoat:

  • 1.下載webgoat-container-7.0.1-war-exec.jar文件
  • 2.使用命令java -jar webgoat-container-7.0.1-war-exec.jar運行Webgoat
  • 3.在瀏覽器中輸入http://localhost:8080/WebGoat進入WebGoat登陸界面,默認用戶名密碼guest登陸

SQL注入攻擊:

2.2 String SQL Injection(SQL字符串注入):

目嘗試輸入Smith,發現查詢出來都是last_name是Smith的表單,分析後知道是須要WHERE這個條件語句失效,所以構造一個用真式'or 1='1 。
web

2.3:Log Spoofing(日誌欺騙):

由於咱們輸入的用戶名會被追加到日誌文件中。因此咱們可使用障眼法來使用戶名爲「admin」的用戶在日誌中顯示「成功登陸」,例如在User Name文本框中輸入%0d%0aLogin succeeded !admin ,其中%0d是回車,%0a是換行符,結果就像登陸成功同樣。
sql

2.4:Stage 1 String SQL Injection

字符串型注入,要求使用SQL注入繞過認證,實現無密碼登錄。數據庫

在密碼欄輸入' or 1 = 1 -- ,發現輸入錯誤:
瀏覽器

把長度限定改成15,把文本框格式改成text,再次輸入' or 1 = 1 --,成功。

安全

2.5 Stage 3 Numeric SQL Injection

數字型注入,要求使用一個普通員工的帳戶,瀏覽其BOSS的帳戶信息。
首先經過Larry的帳戶登錄(密碼爲larry),更改登陸後頁面源代碼value值爲112 or 1=1 order by salary desc 。
服務器

點擊ViewProfile查看信息:
cookie

2.6 Blind Numeric SQL Injection(盲數字注入)

使用盲注方式,輸入101 AND ((SELECT pin FROM pins WHERE cc_number='1111222233334444') > 2500),顯示不合法:
網絡

再次輸入101 AND ((SELECT pin FROM pins WHERE cc_number='1111222233334444') > 2300)顯示合法:

最後試出來值爲2364,成功。

XSS攻擊

2.7 Phishing with XSS(跨站腳本釣魚攻擊)

關於一個頁面中存在XSS漏洞時,它如何支持釣魚攻擊。
在文本框裏面寫一個釣魚網站代碼就能夠了,這裏我參考了其餘同窗的代碼,將代碼粘過去後登陸,成功。

2.8 Stored XSS Attacks

題目要求:要建立非法的消息內容,能夠致使其餘用戶訪問時載入非預期的頁面或內容。
直接在title裏隨便輸入,而後在message中輸入一串代碼,好比: 提交後,再次點擊剛剛建立的帖子,成功彈出窗口,說明攻擊成功。

2.9 Reflected XSS Attacks

將帶有攻擊性的URL做爲輸入源,好比 ,就會彈出對話框:

CSRF攻擊

2.10 Cross SSite Request Forgery(CSRF)

題目要求:須要寫一個URL誘使其餘用戶點擊,從而觸發CSRF攻擊。
在message裏面輸入,就會發出一個轉錢的請求,盜取錢財。

提交後,會在消息列表中看到一個新的消息,點擊該消息,當前頁面就會下載這個消息並顯示出來,轉走用戶的錢,達到CSRF攻擊的目的。

2.11 CSRF Prompt By-Pass

這個就是利用CSRF進行冒名操做轉帳,不過此次包括了兩個請求,一是轉帳請求,二是確認轉帳成功請求,即須要額外傳遞兩個參數給服務器(transferFunds=5000,transferFunds=CONFIRM)。直接在message中寫入攻擊代碼,而後提交:

3、實驗問題回答

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

  • 攻擊原理: SQL注入攻擊指的是經過構建特殊的輸入做爲參數傳入web應用程序,而這些輸入大都是SQL語法裏的一些組合,程序經過執行SQL語句進而執行攻擊者所要的操做。其主要緣由是程序沒有細緻的過濾用戶輸入的數據,導致非法數據侵入系統
  • 防護方法:
    對輸入的數據進行過濾,將常見的sql語句的關鍵詞:select or ' " 等字符進行過濾。
    對在數據庫中對密碼進行加密,驗證登錄的時候先將密碼進行加密再與數據庫中加密的密碼進行對比,若此時一致則基本是安全的。
    對數據庫中密碼採用經常使用的MD5加密時儘可能在字符串的前邊和後邊加上指定字符後在進行加密,這樣即使是看到了數據庫也很難破解密碼。

(2)XSS攻擊的原理,如何防護

  • 攻擊原理: XSS攻擊是一種網站應用程序的安全漏洞攻擊,是代碼注入的一種。它容許惡意用戶將代碼注入到網頁上,其餘用戶在觀看網頁時就會受到影響。
  • 防護方法:
    當惡意代碼值被做爲某一標籤的內容顯示:在不須要html輸入的地方對html標籤及一些特殊字符( 」 < > & 等等 )作過濾,將其轉化爲不被瀏覽器解釋執行的字符。
    當惡意代碼被做爲某一標籤的屬性顯示,經過用「將屬性截斷來開闢新的屬性或惡意方法:屬性自己存在的單引號和雙引號都須要進行轉碼;對用戶輸入的html標籤及標籤屬性作白名單過濾,也能夠對一些存在漏洞的標籤和屬性進行專門過濾。

(3)CSRF攻擊原理,如何防護

  • 攻擊原理: CSRF跨站請求僞造是一種對網站的惡意利用,經過假裝來自受信任用戶的請求來利用受信任的網站。
  • 防護方法:
    經過referer、token或者驗證碼來檢測用戶提交。
    儘可能不要在頁面的連接中暴露用戶隱私信息。
    對於用戶修改刪除等操做最好都使用post操做。
    避免全站通用的cookie,嚴格設置cookie的域。

4、實驗總結與體會

在之後在設計網站的時候必定要謹慎,針對這些攻擊作出相應的防範措施,提升網絡的安全性。

相關文章
相關標籤/搜索