2018-2019-2 20165221 【网络对抗技术】-- Exp9 Web安全基础
生活随笔
收集整理的這篇文章主要介紹了
2018-2019-2 20165221 【网络对抗技术】-- Exp9 Web安全基础
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
2018-2019-2 20165221 【網(wǎng)絡(luò)對抗技術(shù)】-- Exp9 Web安全基礎(chǔ)
目錄:
一 . 實(shí)驗(yàn)要求
- 二 . 實(shí)驗(yàn)過程記錄
- 1 . Webgoat安裝
- 2 . SQL注入的攻擊
- 命令注入(Command Injection)
- 數(shù)字型注入(Numeric SQL Injection)
- 日志欺騙(Log Spoofing)
- SQL 注入(LAB: SQL Injection)
- 字符串注入(String SQL Injection)
- 數(shù)據(jù)庫后門(Database Backdoors)
- 數(shù)字型盲注入(Blind Numeric SQL Injection)
- 字符串型盲注入(Blind String SQL Injection)
- 3 . XSS攻擊
- XSS 釣魚(Phishing with XSS)
- 存儲型XSS攻擊(Stored XSS Attacks)
- 反射型XSS攻擊(Reflected XSS Attacks)
- 4 . CSRF攻擊
- 跨站請求偽造(Cross Site Request Forgery (CSRF))
- 繞過 CSRF 確認(rèn)( CSRF Prompt By‐Pass)
- 三 . 實(shí)驗(yàn)基礎(chǔ)問題回答
- 四 . 試驗(yàn)中遇到的問題
五 . 實(shí)驗(yàn)總結(jié)與體會
一 . 實(shí)驗(yàn)要求
- 本實(shí)踐的目標(biāo)理解常用網(wǎng)絡(luò)攻擊技術(shù)的基本原理,做不少于7個(gè)題目,共3.5分。包括(SQL,XSS,CSRF)。
二 . 實(shí)驗(yàn)過程記錄
1 . Webgoat的安裝
- 因WebGoat默認(rèn)使用8080端口,所以開啟前先用netstat -tupln | grep 8080查看端口是否被占用,如果被占用,用kill 進(jìn)程號終止占用8080端口的進(jìn)程。
- 下載webgoat-container-7.0.1-war-exec.jar,再將其拷貝到虛擬機(jī)中
- 普通安裝,命令行輸入java -jar webgoat-container-7.0.1-war-exec.jar
- 瀏覽器轉(zhuǎn):localhost:8080/WebGoat
- 直接用默認(rèn)用戶名密碼登錄即可,開始練習(xí)
2 . SQL的注入攻擊
1.Command Injection
- 選擇 Injection Flaws -> Command Injection
- 右鍵頁面中復(fù)選框,選擇inspect Element審查網(wǎng)頁元素對源代碼進(jìn)行修改,在末尾添加"& netstat -an & ipconfig"
- 點(diǎn)擊 view,看到網(wǎng)絡(luò)端口使用情況和 IP 地址,攻擊成功
2.Numeric SQL Injection
- 選擇 Injection Flaws -> Numeric SQL Injection
- 右鍵頁面中復(fù)選框,選擇inspect Element審查網(wǎng)頁元素對源代碼value="101"進(jìn)行修改,在城市編號101后面添加or 1=1
點(diǎn)擊Go,可以看到攻擊成功
3.日志欺騙(Log Spoofing)
- 通過在日志文件中插入腳本實(shí)現(xiàn)欺騙。在日志文件中愚弄人的眼睛,攻擊者可以利用這種方式清除他們在日志中的痕跡
目標(biāo):灰色區(qū)域代表在 Web 服務(wù)器的日志中的記錄的內(nèi)容,我們的目的是使用戶名為“admin”的用戶在日志中顯示“成功登錄”
4.SQL 注入(LAB: SQL Injection)
- 選擇 Injection Flaws -> String SQL Injection,右鍵頁面將password密碼框,選擇inspect Element審查網(wǎng)頁元素對源代碼進(jìn)行修改,將其最大長度限制改為20
用該用戶信息進(jìn)行登錄,攻擊成功,并獲得賬戶信息的列表。
5.字符串盲注入:Blind String SQL Injection
- 前提是要知道pin值,這次查詢的是一個(gè)字符串而不是數(shù)值。
- 輸入:
- 將1換成2:
- 最后使用二分法測試,最終得到PIN的字段為:Jill
3 . XSS的攻擊
1.XSS釣魚:
- 編寫一個(gè)帶有用戶名的和密碼框的表格:
- 我們在搜索到的表單中輸入用戶名和密碼,點(diǎn)擊登錄,WebGoat會將輸入的信息捕獲并反饋給我們。
2.存儲型XSS攻擊:Stored XSS Attacks
- 這種攻擊常見于論壇等留言平臺,用戶留言的時(shí)候輸入一段JavaScript腳本,這段腳本就會被保存在數(shù)據(jù)庫中。因?yàn)槭橇粞?#xff0c;所以任何用戶在打開網(wǎng)頁的時(shí)候,這個(gè)腳本就會被從數(shù)據(jù)庫中取出來而運(yùn)行
- 根據(jù)題目要求,在留言板中輸入<script>alert("You've been attacked!!!");</script>
- 再次點(diǎn)擊剛剛創(chuàng)建的帖子,可以看到彈出窗口:
3.反射型XSS攻擊:Reflected XSS Attacks
- 原理:在反射的XSS攻擊中,攻擊者可以使用攻擊腳本創(chuàng)建一個(gè)URL,并將其發(fā)布到另一個(gè)網(wǎng)站、通過電子郵件或其他方式讓受害者點(diǎn)擊它。
- 目標(biāo):使用攻擊腳本創(chuàng)建URL,并將其寫入網(wǎng)站中,當(dāng)讀取到該URL的時(shí)候就會被攻擊
- 具體操作:輸入代碼<script>alert("hhhhh You've been attacked!!!");</script>,點(diǎn)擊purse的同時(shí)頁面就給出了反饋:
---
4 . CSRF的攻擊
1.跨站請求偽造(Cross Site Request Forgery (CSRF))
跨站請求偽造,盡管聽起來像跨站腳本(XSS),但它與XSS非常不同,XSS利用站點(diǎn)內(nèi)的信任用戶,而CSRF則通過偽裝來自受信任用戶的請求來利用受信任的網(wǎng)站。與XSS攻擊相比,CSRF攻擊往往不大流行(因此對其進(jìn)行防范的資源也相當(dāng)稀少)和難以防范,所以被認(rèn)為比XSS更具危險(xiǎn)性。
- 查看頁面右側(cè)Parameters中的src和menu值,分別為267和900
在title中輸入任何參數(shù),message框中輸入<img src="http://localhost:8080/WebGoat/attack?Screen=267&menu=900&transferFunds=5000" width="1" height="1" />,以圖片的的形式將URL放進(jìn)Message框。 - 這時(shí)的URL對其他用戶是不可見的,用戶一旦點(diǎn)擊圖片,就會觸發(fā)一個(gè)CSRF事件,點(diǎn)擊Submit提交
- 在Message List中生成以Title命名的消息。點(diǎn)擊該消息,當(dāng)前頁面就會下載這個(gè)消息并顯示出來,轉(zhuǎn)走用戶的5000元,從而達(dá)到CSRF攻擊的目的??梢詮淖髠?cè)的任務(wù)欄看到任務(wù)已完成。
- 查看頁面下側(cè)Parameters中的src和menu值,命名title,message框中輸入代碼:
三 . 實(shí)驗(yàn)基礎(chǔ)問題回答
(1) SQL注入的原理是什么,如何進(jìn)行防御呢?
- 原理:SQL注入攻擊指的是通過構(gòu)建特殊的輸入作為參數(shù)傳入Web應(yīng)用程序,而這些輸入大都是SQL語法里的一些組合,通過執(zhí)行SQL語句進(jìn)而執(zhí)行攻擊者所要的操作,使非法數(shù)據(jù)侵入系統(tǒng)。
- 防御手段:
- 對用戶的輸入進(jìn)行校驗(yàn)。
不要使用動態(tài)拼裝sql,可以使用參數(shù)化的sql- 或者直接使用存儲過程進(jìn)行數(shù)據(jù)查詢存取。 - 不要使用管理員權(quán)限的數(shù)據(jù)庫連接,為每個(gè)- 應(yīng)用使用單獨(dú)的權(quán)限有限的數(shù)據(jù)庫連接。
- 不要把機(jī)密信息直接存放,加密或者h(yuǎn)ash掉密碼和敏感的信息。
- 應(yīng)用的異常信息應(yīng)該給出盡可能少的提示。
采取輔助軟件或網(wǎng)站平臺來檢測sql注入。
- 對用戶的輸入進(jìn)行校驗(yàn)。
(2) XSS攻擊的原理是什么,如何進(jìn)行防御呢?
- 原理:XSS是一種經(jīng)常出現(xiàn)在web應(yīng)用中的計(jì)算機(jī)安全漏洞,它允許惡意web用戶將代碼(如,HTML代碼和客戶端腳本)植入到提供給其它用戶使用的頁面中,攻擊者可以利用XSS漏洞旁路掉訪問控制。
- 防御手段:
- 特征匹配方式,在所有提交的信息中都進(jìn)行匹配檢查,一般會對“javascript”這個(gè)關(guān)鍵字進(jìn)行檢索,一旦發(fā)現(xiàn)提交信息中包含“javascript”,就認(rèn)定為XSS攻擊。
- 對所有用戶提交內(nèi)容進(jìn)行可靠的輸入驗(yàn)證,包括對URL、查詢關(guān)鍵字、HTTP頭、POST數(shù)據(jù)等,僅接受指定長度范圍內(nèi)、采用適當(dāng)格式、采用所預(yù)期的字符的內(nèi)容提交,對其他的一律過濾。
- 實(shí)現(xiàn)Session標(biāo)記、CAPTCHA系統(tǒng)或者HTTP引用頭檢查,以防功能被第三方網(wǎng)站所執(zhí)行。
- (3) CSRF攻擊原理是什么,如何進(jìn)行預(yù)防呢?
- 原理:CSRF跨站請求偽造,也被稱為“oneclickattack”或者sessionriding,通??s寫為CSRF或者XSRF,是一種對網(wǎng)站的惡意利用,通過偽裝來自受信任用戶的請求來利用受信任的網(wǎng)站。是一種依賴web瀏覽器的、被混淆過的代理人攻擊。
防御手段:- 在form中包含秘密信息、用戶指定的代號作為cookie之外的驗(yàn)證。
- “雙提交”cookie。某個(gè)授權(quán)的cookie在form post之前正被JavaScript代碼讀取,那么限制跨域規(guī)則將被應(yīng)用。服務(wù)器需要在Post請求體或者URL中包含授權(quán)cookie的請求,那么這個(gè)請求必須來自于受信任的域。
- 用戶在瀏覽其它站點(diǎn)前登出站點(diǎn)或者在瀏覽器會話結(jié)束后清理瀏覽器的cookie。
- 原理:CSRF跨站請求偽造,也被稱為“oneclickattack”或者sessionriding,通??s寫為CSRF或者XSRF,是一種對網(wǎng)站的惡意利用,通過偽裝來自受信任用戶的請求來利用受信任的網(wǎng)站。是一種依賴web瀏覽器的、被混淆過的代理人攻擊。
五 . 實(shí)驗(yàn)總結(jié)與體會
- 這是最后一次的實(shí)驗(yàn)了,這次實(shí)驗(yàn)在前期軟件的安裝上花費(fèi)了大量的時(shí)間,后面的照著操作就問題不大,主要是對攻擊概念的理解。
轉(zhuǎn)載于:https://www.cnblogs.com/0630tx/p/10922917.html
總結(jié)
以上是生活随笔為你收集整理的2018-2019-2 20165221 【网络对抗技术】-- Exp9 Web安全基础的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 环评登记备案需要什么证件?
- 下一篇: Linux操作系统的体系结构一般分为4个