20145227鄢曼君《网络对抗》Web安全基础实践
生活随笔
收集整理的這篇文章主要介紹了
20145227鄢曼君《网络对抗》Web安全基础实践
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
20145227鄢曼君《網(wǎng)絡(luò)對(duì)抗》Web安全基礎(chǔ)實(shí)踐
實(shí)驗(yàn)后回答問(wèn)題
1.SQL注入攻擊原理,如何防御?
- SQL注入攻擊指的是通過(guò)構(gòu)建特殊的輸入作為參數(shù)傳入Web應(yīng)用程序,而這些輸入大都是SQL語(yǔ)法里的一些組合,通過(guò)執(zhí)行SQL語(yǔ)句進(jìn)而執(zhí)行攻擊者所要的操作,其主要原因是程序沒(méi)有細(xì)致地過(guò)濾用戶輸入的數(shù)據(jù),致使非法數(shù)據(jù)侵入系統(tǒng)。
- 根據(jù)相關(guān)技術(shù)原理,SQL注入可以分為平臺(tái)層注入和代碼層注入。前者由不安全的數(shù)據(jù)庫(kù)配置或數(shù)據(jù)庫(kù)平臺(tái)的漏洞所致;后者主要是由于程序員對(duì)輸入未進(jìn)行細(xì)致地過(guò)濾,從而執(zhí)行了非法的數(shù)據(jù)查詢。
- 防御:對(duì)輸入的數(shù)據(jù)進(jìn)行過(guò)濾,過(guò)濾掉敏感字符。加密數(shù)據(jù)庫(kù)。
2.XSS攻擊的原理,如何防御?
- XSS是一種經(jīng)常出現(xiàn)在web應(yīng)用中的計(jì)算機(jī)安全漏洞,它允許惡意web用戶將代碼植入到提供給其它用戶使用的頁(yè)面中。攻擊者利用網(wǎng)站漏洞,輸入可以顯示在頁(yè)面上的、對(duì)其他用戶造成影響的HTML代碼;由于受害者瀏覽器對(duì)目標(biāo)服務(wù)器的信任,當(dāng)其訪問(wèn)目標(biāo)服務(wù)器上被注入惡意腳本的頁(yè)面后,這段惡意腳本可以順利執(zhí)行,實(shí)現(xiàn)獲取用戶cookie并可以利用用戶身份進(jìn)行非法操作的目的。
- 防御:檢查用戶輸入的內(nèi)容中是否有非法內(nèi)容,如尖括號(hào)、引號(hào)等,嚴(yán)格控制輸出。還有就是在表單提交或者url參數(shù)傳遞前,對(duì)需要的參數(shù)進(jìn)行過(guò)濾。
3.CSRF攻擊原理,如何防御?
- CSRF全名是Cross-site request forgery,是一種對(duì)網(wǎng)站的惡意利用。CSRF攻擊的主要目的是讓用戶在不知情的情況下攻擊自己已登錄的一個(gè)系統(tǒng),通過(guò)偽裝來(lái)自受信任用戶的請(qǐng)求來(lái)利用受信任的網(wǎng)站。它危害性甚至比XSS更大。比如實(shí)驗(yàn)中的轉(zhuǎn)賬之類(lèi)的。
- 防御:用戶在瀏覽其它站點(diǎn)前登出站點(diǎn);在瀏覽器會(huì)話結(jié)束后清理瀏覽器的cookie;盡量不要在頁(yè)面的鏈接中暴露用戶隱私信息;避免全站通用的cookie,嚴(yán)格設(shè)置cookie的域。
實(shí)驗(yàn)感想
- 這次實(shí)驗(yàn)確實(shí)內(nèi)容很多,但是都還挺有意思的,而且我也學(xué)到了一些東西。這次的實(shí)驗(yàn)感覺(jué)與我們生活息息相關(guān),其實(shí)我們之前學(xué)的很多課程都有涉及到web安全,這一次的Web安全基礎(chǔ)實(shí)踐又讓我了解到了更多的關(guān)于這方面的攻擊手段等,相信以后登錄網(wǎng)頁(yè)或者點(diǎn)擊鏈接之類(lèi)的我會(huì)更加謹(jǐn)慎。
實(shí)踐過(guò)程
- 開(kāi)啟webgoat,打開(kāi)WebGoat:java -jar webgoat-container-7.0.1-war-exec.jar
- 然后在瀏覽器輸入localhost:8080/WebGoat,進(jìn)入webgoat。
SQL練習(xí)
String SQL Injection(SQL字符串注入)
- 這個(gè)題的題目大意是:這個(gè)表單允許使用者查詢他們的信用卡號(hào),使用SQL注入讓所有的信用卡號(hào)都看得見(jiàn)。
- 我們構(gòu)造一個(gè)永真式“1”,那么不管前面的WHERE是否成立都能執(zhí)行,所以構(gòu)造語(yǔ)句'or 1='1,成功得到了全部的信用卡號(hào)。
Numeric SQL Injection(數(shù)字型SQL注入)
- 這個(gè)題大概意思是這個(gè)表單允許使用者看到天氣數(shù)據(jù),利用SQL注入使得可以看見(jiàn)所有數(shù)據(jù)。
- 由于沒(méi)辦法直接輸入,無(wú)法在前端進(jìn)行SQL注入,我們可以從捕獲包中修改。
- 首先啟動(dòng)BurpSuite。然后設(shè)置代理“Proxy”的“Options”選項(xiàng),默認(rèn)是8080端口被占用時(shí)需要添加一個(gè)新的端口8888,點(diǎn)擊add;添加后勾選。
- 然后設(shè)置瀏覽器的代理:打開(kāi)瀏覽器右側(cè)的“更多”選項(xiàng)卡,preference-advanced-settings
- 這相當(dāng)于將burpsuite當(dāng)成中間服務(wù)器,每個(gè)數(shù)據(jù)包都流過(guò)它。
- 設(shè)置好之后回到題目,任意選擇一項(xiàng),點(diǎn)擊GO,然后回到burpsuite。發(fā)現(xiàn)多了捕獲的包。然后右鍵send to repeater ,我們修改station值從為101 為 101 or 1=1,點(diǎn)擊GO,可以看到右邊response包中的SQL語(yǔ)句為SELECT * FROM weather_data WHERE station = 101 or 1=1。
- 回到Proxy中點(diǎn)擊Intercept is on對(duì)剩下的包不作處理,回到火狐瀏覽器發(fā)現(xiàn)已經(jīng)成功了!
Command Injection(命令注入)
- 題目要求能夠在目標(biāo)主機(jī)上執(zhí)行系統(tǒng)命令,我發(fā)現(xiàn)可以通過(guò)火狐瀏覽器下的一個(gè)擴(kuò)展Firebug對(duì)源代碼進(jìn)行修改,例如在BackDoors.help旁邊加上& netstat -an & ipconfig
- 選中修改后的值再點(diǎn)view,可以看到命令被執(zhí)行,出現(xiàn)系統(tǒng)網(wǎng)絡(luò)連接情況:
Database Backdoors
- 輸入注入語(yǔ)句:101; update employee set salary=9000,成功把該用戶的工資漲到了9000。這種給別人漲工資的感覺(jué)好棒啊~
- 接下來(lái)使用語(yǔ)句101;CREATE TRIGGER ymjBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='20145227@qq.com' WHERE userid = NEW.userid 創(chuàng)建一個(gè)后門(mén),把表中所有的郵箱和用戶ID都設(shè)為我的。所有人的工資都郵到我這里吧,哈哈哈
Blind Numeric SQL Injection
- 題目要求是得到一個(gè)存放在pins表中值pin的內(nèi)容,行號(hào)cc_number=1111222233334444,是一個(gè)int型的數(shù)據(jù)。
- 然后使用BurpSuite進(jìn)行攔截,攔截后action--send to intruder進(jìn)行暴力破解,使用sniper模式,選擇10000進(jìn)行數(shù)字爆破(選擇前先clear將默認(rèn)的爆破點(diǎn)清除),從1到10000,步長(zhǎng)為1。可以發(fā)現(xiàn)2364的報(bào)文長(zhǎng)度明顯和其他不一樣,那這個(gè)值就應(yīng)該就是2364:
Log Spoofing(日志欺騙)
- 這道題大概意思是說(shuō),我們輸入的用戶名會(huì)被追加到日志文件中。所以我們可以使用障眼法來(lái)使用戶名為“admin”的用戶在日志中顯示“成功登錄”,例如在User Name文本框中輸入ymj%0d%0aLogin Succeeded for username: admin,其中%0d是回車(chē),%0a是換行符:
- 攻擊成功:
LAB:SQL Injection
Stage 1:String SQL Injection
- 題目要求:使用字符串SQL注入在沒(méi)有正確密碼的情況下登錄賬號(hào)boss。
- 以用戶Neville登錄,在密碼欄中輸入' or 1=1 --進(jìn)行SQL注入,但是登錄失敗。
- 查看了一下網(wǎng)頁(yè)源碼,發(fā)現(xiàn)輸入框?qū)斎氲淖址L(zhǎng)度進(jìn)行了限制,最多只允許輸入8個(gè)字符:
- 于是我對(duì)字符長(zhǎng)度進(jìn)行了修改,然后重新登錄,登錄成功!
Stage 3:Numeric SQL Injection
- 題目要求:通過(guò)注入語(yǔ)句,瀏覽到原本無(wú)法瀏覽的信息。通過(guò)一個(gè)普通員工的賬戶larry,瀏覽其BOSS的賬戶信息。
- 首先我們用上一題的辦法登錄Larry的賬號(hào)!在密碼框里輸入' or 1=1 --,登錄后發(fā)現(xiàn)我們只能看見(jiàn)Larry一個(gè)人的工資信息.
- 瀏覽員工信息的按鈕是ViewProfile.在網(wǎng)頁(yè)代碼中分析一下這個(gè)按鈕,發(fā)現(xiàn)這個(gè)地方是以員工ID作為索引傳遞參數(shù)的,我們要達(dá)到通過(guò)Larry來(lái)瀏覽老板賬戶信息的目的,把其中的value值改為101 or 1=1 order by salary desc --,這樣老板的信息就會(huì)被排到第一個(gè):
- 然后成功查看到老板的信息!
XSS攻擊
Phishing with XSS
- 這個(gè)題目我們要在搜索框中輸入XSS攻擊代碼:
- 在搜索框中輸入攻擊代碼后點(diǎn)擊搜索,會(huì)看到一個(gè)要求輸入用戶名密碼的表單,然后輸入用戶名密碼,點(diǎn)擊登錄,WebGoat會(huì)將你輸入的信息捕獲并反饋給你:
- 攻擊成功,結(jié)果如下圖:
Stored XSS Attacks
- 題目要求:要?jiǎng)?chuàng)建非法的消息內(nèi)容,可以導(dǎo)致其他用戶訪問(wèn)時(shí)載入非預(yù)期的頁(yè)面或內(nèi)容。
- 直接在title里隨便輸入,然后在message中輸入一串代碼,比如:<script>alert("hhh5227lll!");</script> 提交后,再次點(diǎn)擊剛剛創(chuàng)建的帖子,成功彈出窗口,說(shuō)明攻擊成功!
Reflected XSS Attacks
- 當(dāng)我們輸入錯(cuò)誤的用戶信息后,服務(wù)器校驗(yàn)輸入有誤,會(huì)返回錯(cuò)誤頁(yè)面并將錯(cuò)誤內(nèi)容展示給我們看:
- 如果我們將帶有攻擊性的URL作為輸入源,比如<script>alert("hhh20145227ymj");</script>,就會(huì)彈出對(duì)話框:
- 攻擊成功!
- 這個(gè)看上去和上面很相似,但是原理不同,上面的是存儲(chǔ)式的,這個(gè)是通過(guò)寫(xiě)在url里面達(dá)到的效果,里面的腳本也可以改寫(xiě)成其他惡意的內(nèi)容。
CSRF攻擊
Cross Site Request Forgery
- 題目要求:需要寫(xiě)一個(gè)URL誘使其他用戶點(diǎn)擊,從而觸發(fā)CSRF攻擊,我們可以以圖片的的形式將URL放進(jìn)Message框,這時(shí)的URL對(duì)其他用戶是不可見(jiàn)的,用戶一旦點(diǎn)擊圖片,就會(huì)觸發(fā)一個(gè)CSRF事件。
- 查看自己電腦的Screen和menu的值:
- 然后在message里面輸入<img src="http://localhost:8080/WebGoat/attack?Screen=291&menu=900&transferFunds=轉(zhuǎn)賬金額"/>就會(huì)發(fā)出一個(gè)轉(zhuǎn)錢(qián)的請(qǐng)求,盜取錢(qián)財(cái)。
- 提交后,會(huì)在消息列表中看到一個(gè)新的消息,點(diǎn)擊該消息,當(dāng)前頁(yè)面就會(huì)下載這個(gè)消息并顯示出來(lái),轉(zhuǎn)走用戶的錢(qián),達(dá)到CSRF攻擊的目的。
CSRF Prompt By-Pass
- 這個(gè)就是利用CSRF進(jìn)行冒名操作轉(zhuǎn)賬,不過(guò)這次包括了兩個(gè)請(qǐng)求,一是轉(zhuǎn)賬請(qǐng)求,二是確認(rèn)轉(zhuǎn)賬成功請(qǐng)求,即需要額外傳遞兩個(gè)參數(shù)給服務(wù)器(transferFunds=4000,transferFunds=CONFIRM)。直接在message中寫(xiě)入攻擊代碼,然后提交:
- 點(diǎn)擊了CONFIRM按鈕,成功實(shí)現(xiàn):
轉(zhuǎn)載于:https://www.cnblogs.com/m3182218/p/6842135.html
總結(jié)
以上是生活随笔為你收集整理的20145227鄢曼君《网络对抗》Web安全基础实践的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 卢伟冰秀Redmi K50至尊版续航32
- 下一篇: 置换矩阵