摘要:簡(jiǎn)介最近在逛碼云時(shí)候發(fā)現(xiàn)靶場(chǎng)系統(tǒng)感覺(jué)界面和業(yè)務(wù)場(chǎng)景設(shè)計(jì)的還不錯(cuò)所以過(guò)來(lái)分享一下同時(shí)也是分享一下我平時(shí)挖掘漏洞的一些思路吧這篇文章里雖然只簡(jiǎn)單介紹其中三種漏洞類型,但也是想是一個(gè)拋轉(zhuǎn)引玉吧給安全新手提供一些挖掘思路下載地址地址國(guó)內(nèi)地址這篇文章
簡(jiǎn)介
最近在逛碼云時(shí)候發(fā)現(xiàn)permeat靶場(chǎng)系統(tǒng),感覺(jué)界面和業(yè)務(wù)場(chǎng)景設(shè)計(jì)的還不錯(cuò).所以過(guò)來(lái)分享一下.
同時(shí)也是分享一下我平時(shí)挖掘漏洞的一些思路吧,這篇文章里雖然只簡(jiǎn)單介紹其中三種漏洞類型,但也是想是一個(gè)拋轉(zhuǎn)引玉吧,給web安全新手提供一些挖掘思路.
下載地址:
GitHub地址: https://github.com/78778443/permeate 國(guó)內(nèi)地址: https://gitee.com/songboy/permeate
這篇文章里主要介紹其中的,SQL注入挖掘,xss跨站挖掘,以及csrf漏洞把
在挖掘一網(wǎng)站的漏洞時(shí)候,我們腦海里要知道什么漏洞在什么場(chǎng)景下容易出現(xiàn),那些漏洞出現(xiàn)的比較頻繁,我腦海里的web安全漏洞有三種類型吧:
編碼型漏洞
業(yè)務(wù)邏輯漏洞
運(yùn)行環(huán)境漏洞
筆者之前給別人做代碼審計(jì)有一個(gè)習(xí)慣,通常希望給的源碼能夠正常運(yùn)行,還不是光從代碼來(lái)分析問(wèn)題.
為什么這么做呢,因?yàn)橛X(jué)得如果代碼不能運(yùn)行其實(shí)很多漏洞是無(wú)法光從代碼層面發(fā)現(xiàn)問(wèn)題的.
而代碼能運(yùn)行起來(lái),其實(shí)不僅能驗(yàn)證問(wèn)題,也可以從系統(tǒng)的業(yè)務(wù)功能來(lái)找出更多問(wèn)題.
比如說(shuō)很多網(wǎng)站提供站內(nèi)搜索功能,在搜索的時(shí)候通常會(huì)把用戶搜索的關(guān)鍵詞返回在頁(yè)面當(dāng)中,比如"你搜搜的關(guān)鍵詞"關(guān)鍵詞"結(jié)果如下",那在這里就很有可能存在反射型XSS漏洞.
另外很多網(wǎng)站都存在用戶體系,而在修改個(gè)人資料的時(shí)候很有可能存在越權(quán)問(wèn)題,比如修改的個(gè)人資料的時(shí)候查看是否又提交uid參數(shù),如果有,修改uid值,看是不是把別人的資料給修改了,這些其實(shí)都需要運(yùn)行之后才能發(fā)現(xiàn)問(wèn)題所在.
筆者在windows系統(tǒng)中是由wampser搭建還比較簡(jiǎn)單,這里先簡(jiǎn)單介紹安裝方法:
用git把代碼拉下來(lái)
配置多帶帶的虛擬主機(jī)目錄(不要放到二級(jí)目錄,貌似有問(wèn)題)
新建了一個(gè)數(shù)據(jù)庫(kù)
導(dǎo)入sql文件,文件位置 /doc/bbs_cate.sql
修改一下/config/dbconfig.php文件中的數(shù)據(jù)庫(kù)賬號(hào)密碼信息
通過(guò)上面的安裝步驟之后,應(yīng)該可以看到如下面的界面了.有一個(gè)默認(rèn)板塊和一個(gè)默認(rèn)分區(qū),就說(shuō)明連接數(shù)據(jù)庫(kù)成功了.
現(xiàn)在我們開(kāi)始去挖掘里面的漏洞,在項(xiàng)目介紹中看到有SQL注入和XSS以及CSRF問(wèn)題,但是沒(méi)有告知存在漏洞的位置,所以我們需要先分析每個(gè)漏洞的對(duì)應(yīng)場(chǎng)景.
先來(lái)說(shuō)說(shuō)SQL注入挖掘吧.
一. SQL注入挖掘懂點(diǎn)SQL注入知識(shí)應(yīng)該都可以想到sql注入是因?yàn)楣粽呖梢钥刂苨ql語(yǔ)句中的參數(shù)所造成的,那么我們就先找一個(gè)需要傳參的地址,在剛才的首頁(yè)中可以看到有一個(gè)默認(rèn)板塊,那么就點(diǎn)擊默認(rèn)板塊好了,點(diǎn)擊之后上面的URL地址變成了
http://permeate.localhost/home/index.php?m=tiezi&a=index&bk=5
在URL中可以看到,有三個(gè)參數(shù),但根據(jù)經(jīng)驗(yàn)來(lái)說(shuō),前面兩個(gè)參數(shù)m和a有點(diǎn)像是路由,所以這兩個(gè)先暫時(shí)用排除法排除,最后一個(gè)參數(shù)bk是一個(gè)數(shù)字,感覺(jué)應(yīng)該是板塊的ID,所以可以重點(diǎn)關(guān)注一下,我們先記住未測(cè)試之前的頁(yè)面是什么樣子
現(xiàn)在先用手動(dòng)測(cè)試快速測(cè)試一下,怎么測(cè)試呢? 可以在bk=5后面加一個(gè)單引號(hào),或者加一個(gè)%27,得到URL地址如下
http://permeate.localhost/home/index.php?m=tiezi&a=index&bk=5"
這個(gè)時(shí)候看一下頁(yè)面的運(yùn)行效果如何,發(fā)現(xiàn)帖子列表中帖子已經(jīng)不存在了.
這個(gè)時(shí)候我們可以初步的得出結(jié)論,這個(gè)地方可能存在SQL注入問(wèn)題,但是還不能肯定,要肯定這個(gè)地方是否存在注入問(wèn)題,我們這樣深入去驗(yàn)證一下,可以使用參數(shù)值 5" or "1"="1 來(lái)進(jìn)行驗(yàn)證,得到URL地址如下
http://permeate.localhost/home/index.php?m=tiezi&a=index&bk=5" or "1"="1
訪問(wèn)之后,發(fā)現(xiàn)頁(yè)面又發(fā)生了一次變化,這個(gè)時(shí)候我們就可以肯定這個(gè)地方存在了SQL注入問(wèn)題,如下圖
我們可以使用sqlmap來(lái)看看數(shù)據(jù)庫(kù)存在哪些數(shù)據(jù)庫(kù)信息,sqlmap命令如下:
sqlmap -u "http://permeate.localhost/home/index.php?m=tiezi&a=index&bk=5" --dbs
通過(guò)sqlmap的反饋結(jié)果可以看出,這個(gè)地方確實(shí)存在了注入問(wèn)題.
下面我們接著找一下XSS漏洞漏洞
二. XSS跨站造成xss的主要成因我們知道是參數(shù)會(huì)被在頁(yè)面輸出,所以在找XSS漏洞的時(shí)候,我們先看看站點(diǎn)有什么功能;
在首頁(yè)的圖片和帖子列表頁(yè)中可以大致看出有搜索功能,和發(fā)帖,回復(fù)帖子等功能,這些地方都會(huì)把接收的參數(shù)作為內(nèi)容展示出來(lái),所以我們可以挨個(gè)去測(cè)試.
先來(lái)一個(gè)最簡(jiǎn)單的搜索頁(yè)吧,在導(dǎo)航欄有一個(gè)搜索框,我首先在搜索框中輸入test吧,得到URL地址如下
http://permeate.localhost/home/search.php?keywords=test
從URL地址可以看出搜索的關(guān)鍵詞會(huì)通過(guò)keywords來(lái)傳遞,傳遞之后也會(huì)顯示在頁(yè)面內(nèi)容當(dāng)中,如下圖
現(xiàn)在分析顯示html元素,在關(guān)鍵詞test的父級(jí)節(jié)點(diǎn),可以看到是div,div中寫(xiě)入script標(biāo)簽是會(huì)被執(zhí)行的,所以可以直接使用下面的payload
http://permeate.localhost/home/search.php?keywords=test
進(jìn)行測(cè)試,通過(guò)瀏覽器訪問(wèn)此連接,可以看到已經(jīng)彈出123確認(rèn)框
不過(guò)xss不僅限于script標(biāo)簽可以被執(zhí)行,也可以用img標(biāo)簽的onerror屬性來(lái)執(zhí)行,可以構(gòu)造如下的payload
http://permeate.localhost/home/search.php?keywords=test![]()
依然訪問(wèn)URL地址,可以看到456的確認(rèn)框被彈出來(lái)了
上面的XSS都屬于反射型的,存儲(chǔ)型的項(xiàng)目也表明存在,這里我們先略過(guò)吧,先看看CSRF的漏洞好了.
三. CSRFCSRF漏洞主要成因是因?yàn)榉?wù)端接收表單請(qǐng)求時(shí)候沒(méi)有驗(yàn)證是用戶發(fā)送的請(qǐng)求還是瀏覽器發(fā)送的請(qǐng)求,所以在挖掘此類表單的時(shí)候先去找表單的位置,在前面的截圖當(dāng)中,可以看到有一個(gè)發(fā)帖的按鈕,可以進(jìn)去點(diǎn)進(jìn)去看看,點(diǎn)擊發(fā)帖,URL地址為
http://permeate.localhost/home/fatie.php?bk=5
在這個(gè)頁(yè)面中可以看到有一個(gè)發(fā)帖的表單,我們主要看一下表單有沒(méi)有token令牌,如果沒(méi)有的話,那就可能存在CSRF的漏洞問(wèn)題,通過(guò)瀏覽器的審查元素截圖如下
在頁(yè)面中確實(shí)沒(méi)有存在token信息,因此我們可以初步得出結(jié)論,這個(gè)地方存在CSRF的可能,現(xiàn)在需要驗(yàn)證一下,
在驗(yàn)證的時(shí)候我們需要制定CSRF有GET型和POST型,get型利用起來(lái)相對(duì)簡(jiǎn)單很多,而在這個(gè)地方表單提交雖然是通過(guò)POST,但并不排除GET提交也可以利用,所以我們先嘗試用GET型來(lái)提交數(shù)據(jù),先通過(guò)抓包瀏覽器的網(wǎng)絡(luò)分析模塊來(lái)看,發(fā)帖會(huì)發(fā)送哪一些數(shù)據(jù),如下圖
在圖中可以看到,post會(huì)傳遞三個(gè)參數(shù)過(guò)去,bk和title以及content三個(gè)參數(shù),我們先用get表單構(gòu)造出一個(gè)payload出來(lái),得到URL地址如下:
http://permeate.localhost/home/_fatie.php?bk=5&zt=0&title=111&content=222
然后去瀏覽器打開(kāi)這個(gè)地址,看看是否能提交表單成功,訪問(wèn)后發(fā)現(xiàn)彈出了一個(gè)確認(rèn)框,告訴我已經(jīng)發(fā)帖成功了,如下圖
去列表確認(rèn)一下,發(fā)現(xiàn)確實(shí)已經(jīng)發(fā)帖成功,如下圖帖子列表
這個(gè)CSRF相對(duì)來(lái)說(shuō)比較低級(jí),很多情況下用get并不能提到post提交,因此我們?cè)賮?lái)嘗試用post方法構(gòu)造一個(gè)payload出來(lái),代碼如下
test
在上面代碼中可以看出,表單里面的值已經(jīng)事先做好了定義,當(dāng)受害者打開(kāi)之后,變回自動(dòng)提交表單.
前面提到了這個(gè)系統(tǒng)中存在存儲(chǔ)型XSS,又存在CSRF漏洞,那么我們是不是可以用來(lái)做一個(gè)XSS蠕蟲(chóng)試驗(yàn)?zāi)?
四. 蠕蟲(chóng)XSS滿足蠕蟲(chóng)XSS需要兩個(gè)必要條件,存儲(chǔ)型XSS,和CSRF漏洞,這兩個(gè)這個(gè)系統(tǒng)都有,所以實(shí)現(xiàn)起來(lái)沒(méi)有問(wèn)題,需要的是先找一下存儲(chǔ)型XSS
在前面發(fā)帖的位置會(huì)把參數(shù)存儲(chǔ)起來(lái),并展示,因此這個(gè)地方是一個(gè)比較好的試驗(yàn)點(diǎn),我們?cè)诎l(fā)帖位置先來(lái)試驗(yàn)一下吧. 如下圖,表單中提交了xss驗(yàn)證代碼,當(dāng)成功觸發(fā)的時(shí)候會(huì)被彈框123,如下圖
點(diǎn)擊發(fā)布帖子按鈕,發(fā)布帖子成功,下來(lái)來(lái)到帖子列表頁(yè)面,發(fā)現(xiàn)alert(123)已經(jīng)被觸發(fā)成功了,如下圖
現(xiàn)在CSRF有了,存儲(chǔ)型XSS也有了,那么接下來(lái)就是需要把它們結(jié)合起來(lái)使用了,但蠕蟲(chóng)XSS利用代碼相對(duì)alert(123)來(lái)說(shuō)代碼會(huì)比較長(zhǎng),所以我們需要先把利用代碼放到一個(gè)文件當(dāng)中,然后再通過(guò)script引入進(jìn)去,我們構(gòu)造的代碼如下
var strrand = +new Date(); var str = "http://premeate.localhost/home/_fatie.php?bk=5&zt=0&title=1111&content=222"; var tag = document.createElement("img"); tag.src = str; document.body.append(tag.src);
在上面的代碼中,只要一被執(zhí)行,頁(yè)面將會(huì)被插入一個(gè)img標(biāo)簽,其中標(biāo)簽的src屬性又會(huì)去請(qǐng)求表單,表單里面的內(nèi)容又是一段xss代碼,這樣變回造成XSS蠕蟲(chóng)攻擊者,每次請(qǐng)求都會(huì)是倍數(shù)增長(zhǎng).如下圖,瀏覽器刷新3次之后,已經(jīng)有很多帖子了.
作者:湯青松
微信:songboy8888
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/29239.html
摘要:一背景筆者月份在慕課網(wǎng)錄制視頻教程跨站漏洞加強(qiáng)安全里面需要講到很多實(shí)戰(zhàn)案例,在漏洞挖掘案例中分為了手工挖掘工具挖掘代碼審計(jì)三部分內(nèi)容手工挖掘篇參考地址為快速找出網(wǎng)站中可能存在的漏洞實(shí)踐一本文主要記錄利用安全工具進(jìn)行漏洞挖掘部分,分為了設(shè)置代 一、背景 筆者6月份在慕課網(wǎng)錄制視頻教程XSS跨站漏洞 加強(qiáng)Web安全,里面需要講到很多實(shí)戰(zhàn)案例,在漏洞挖掘案例中分為了手工挖掘、工具挖掘、代碼審...
摘要:一背景筆者最近在慕課錄制了一套跨站漏洞加強(qiáng)安全視頻教程,課程當(dāng)中有講到的挖掘方式,所以在錄制課程之前需要做大量實(shí)踐案例,最近視頻已經(jīng)錄制完成,準(zhǔn)備將這些漏洞的挖掘過(guò)程記錄下來(lái),方便自己也方便他人。 一、背景 筆者最近在慕課錄制了一套XSS跨站漏洞 加強(qiáng)Web安全視頻教程,課程當(dāng)中有講到XSS的挖掘方式,所以在錄制課程之前需要做大量實(shí)踐案例,最近視頻已經(jīng)錄制完成,準(zhǔn)備將這些XSS漏洞的挖...
摘要:一背景筆者最近在慕課錄制了一套跨站漏洞加強(qiáng)安全視頻教程,課程當(dāng)中有講到的挖掘方式,所以在錄制課程之前需要做大量實(shí)踐案例,最近視頻已經(jīng)錄制完成,準(zhǔn)備將這些漏洞的挖掘過(guò)程記錄下來(lái),方便自己也方便他人。 一、背景 筆者最近在慕課錄制了一套XSS跨站漏洞 加強(qiáng)Web安全視頻教程,課程當(dāng)中有講到XSS的挖掘方式,所以在錄制課程之前需要做大量實(shí)踐案例,最近視頻已經(jīng)錄制完成,準(zhǔn)備將這些XSS漏洞的挖...
一、背景 不定時(shí)會(huì)做一些內(nèi)訓(xùn),會(huì)經(jīng)常用到實(shí)驗(yàn)壞境;一開(kāi)始搭建了一個(gè)docker容器,但考慮到不是所有學(xué)員都會(huì)使用docker,因此做了一個(gè)虛擬機(jī)版本,其實(shí)就是虛擬機(jī)里面安裝了docker,為了方便大家迅速搭建壞境,總結(jié)了此文檔給需要的學(xué)員; 二、操作步驟 安裝VMware 下載鏡像 啟動(dòng)容器 驗(yàn)證服務(wù) 三、安裝VMware 安裝VMware的過(guò)程只需要會(huì)點(diǎn)擊下一步下一步就行,這個(gè)過(guò)程不再過(guò)多敘...
摘要:一背景筆者此前錄制了一套的視頻教程,在漏洞案例一節(jié)中講解手工挖掘工具挖掘代碼審計(jì)三部分內(nèi)容準(zhǔn)備將內(nèi)容用文章的形式再次寫(xiě)一此前兩篇已經(jīng)寫(xiě)完,內(nèi)容有一些關(guān)聯(lián)性,其中手工挖掘篇地址為快速找出網(wǎng)站中可能存在的漏洞實(shí)踐一本文主要記錄通過(guò)代碼審計(jì)的方式 一、背景 筆者此前錄制了一套XSS的視頻教程,在漏洞案例一節(jié)中講解手工挖掘、工具挖掘、代碼審計(jì)三部分內(nèi)容,準(zhǔn)備將內(nèi)容用文章的形式再次寫(xiě)一此,前兩篇...
閱讀 2328·2021-09-22 15:25
閱讀 3666·2019-08-30 12:48
閱讀 2289·2019-08-30 11:25
閱讀 2398·2019-08-30 11:05
閱讀 795·2019-08-29 17:28
閱讀 3335·2019-08-26 12:16
閱讀 2662·2019-08-26 11:31
閱讀 1851·2019-08-23 17:08