pikachu靶場(chǎng)的搭建及部分測(cè)試
文
章
目
錄
| 01 |
前言 |
| 02 |
環(huán)境準(zhǔn)備 |
| 03 |
安裝與配置 |
| 04 |
Burt Force(暴力破解)的測(cè)試 |
01
前言
Hello,小伙伴們,大家好!今天我?guī)?lái)的是Pikachu靶場(chǎng)的搭建與測(cè)試,Pikachu是一個(gè)帶有漏洞的web應(yīng)用系統(tǒng),在這里包括了常見(jiàn)的web安全漏洞。如果你是一個(gè)web剛?cè)腴T(mén)web安全的小白且正發(fā)愁沒(méi)有合適的靶場(chǎng)進(jìn)行練習(xí),那么Pikachu就可能非常適合你心意了。
02
環(huán)境準(zhǔn)備
接下來(lái)我們進(jìn)入主題吧,首先我們需要有phpstudy這個(gè)集成開(kāi)發(fā)環(huán)境,然后就是Pikachu靶機(jī)了。
上面都沒(méi)有的小伙伴我這里附上下載鏈接:
Pikachu靶機(jī)下載地址:
https://github.com/zhuifengshaonianhanlu/pikachu
phpstudy集成開(kāi)發(fā)環(huán)境:
https://www.xp.cn/
03
安裝與配置
一、phpstudy的下載與安裝
1、下載跟自己電腦版本對(duì)應(yīng)的安裝包
2、下載完成后跟其它軟件一樣正常安裝即可,如下:
3、點(diǎn)擊安裝完成后打開(kāi)小皮軟件,如圖:
4、搭建PHP+MySQL的話(huà)點(diǎn)擊啟用Apache2.4.39和MySQL5.7.26:
5、Mysql管理工具安裝,點(diǎn)擊軟件管理-網(wǎng)站程序-安裝
6、 勾選確認(rèn)即可等待安裝
7、 訪(fǎng)問(wèn)主頁(yè),點(diǎn)擊網(wǎng)站-管理-打開(kāi)網(wǎng)站即可
8、瀏覽器訪(fǎng)問(wèn)自己的ip地址,顯示如下則成功安裝
二、Pikachu靶場(chǎng)配置
1、去官網(wǎng)這里下載zip壓縮包:
https://github.com/zhuifengshaonianhanlu/pikachu
2、下載并解壓縮
3、修改配置文件(mysql 用戶(hù)名:root 密碼:root,保存)
這里用Notepad++打開(kāi)config.inc.php后如下圖:
用Notepad++打開(kāi)config.inc.php修改完MySQL的用戶(hù)和密碼后按快捷鍵Ctrl+S 保存文件即可。
4、修改完保存,安裝初始化界面
瀏覽器訪(fǎng)問(wèn):這里用自己的電腦IP地址加/pikachu/訪(fǎng)問(wèn)
安裝初始化頁(yè)面
點(diǎn)擊安裝/初始化,顯示如下界面則安裝完成
至此所有安裝步驟已結(jié)束,可以開(kāi)始搞了。
04
Burt Force(暴力破解)的測(cè)試
一、基于表單的暴力破解
-
進(jìn)入靶場(chǎng)
2.賬號(hào)密碼隨便輸入,登錄抓包,右鍵發(fā)送到intruder模塊
3.在這里我們使用Cluster bomb模式進(jìn)行破解,在Payloads中配置第一個(gè)變量和第二個(gè)變量的字典,這里僅測(cè)試就手動(dòng)輸入添加,也可以在系統(tǒng)中添加已經(jīng)寫(xiě)好的字典或者去百度找大佬公布的字典。
添加字典進(jìn)行爆破
4.添加字典后進(jìn)行攻擊,根據(jù)返回?cái)?shù)據(jù)包的長(zhǎng)度進(jìn)行判斷是否成功。為了方便觀察也可以在grep-match中刪除原有字符串,添加username or password is not exists,burp就會(huì)將所有含有此字符串的數(shù)據(jù)包flag出來(lái)。沒(méi)有被flag出的數(shù)據(jù)包則是我們破解成功的數(shù)據(jù)包。點(diǎn)擊username or password is not exists進(jìn)行排序,沒(méi)有勾選的則表明破解成功,有勾選的則表明破解失敗。
二、繞過(guò)驗(yàn)證碼(on server)
有些服務(wù)器后臺(tái)是不刷新驗(yàn)證碼的,所以抓到包后不要放包,這樣驗(yàn)證碼就一直有效,把包發(fā)到攻擊模塊直接爆破隨機(jī)輸入賬號(hào)密碼和相應(yīng)的驗(yàn)證碼,利用burp抓包。
進(jìn)入靶場(chǎng)
登錄失敗了,驗(yàn)證碼發(fā)生了變化
把數(shù)據(jù)包發(fā)送到Repeater,進(jìn)行判斷,將驗(yàn)證碼設(shè)置為空,點(diǎn)擊發(fā)送,出現(xiàn)錯(cuò)誤提示,驗(yàn)證碼不能為空
隨機(jī)輸入一個(gè)驗(yàn)證碼,點(diǎn)擊發(fā)送,出現(xiàn)錯(cuò)誤提示驗(yàn)證碼不正確。
所以我們可以知道后臺(tái)對(duì)驗(yàn)證碼有進(jìn)行校驗(yàn),那是不是這樣就沒(méi)問(wèn)題了呢?顯然不是這樣,從表面上看沒(méi)有問(wèn)題,但是我們還需要對(duì)驗(yàn)證碼是否在后臺(tái)過(guò)期進(jìn)行進(jìn)一步驗(yàn)證。首先先點(diǎn)擊驗(yàn)證碼,獲取一個(gè)新的驗(yàn)證碼,并將其記錄下來(lái),然后返回?cái)?shù)據(jù)包,將正確的驗(yàn)證碼輸入。點(diǎn)擊發(fā)送,提示用戶(hù)名和密碼錯(cuò)誤,為了驗(yàn)證驗(yàn)證碼是否一直有效,我們修改用戶(hù)名和密碼,驗(yàn)證碼不變,點(diǎn)擊發(fā)送,結(jié)果一樣。說(shuō)明驗(yàn)證碼可以重復(fù)利用。這樣我們就可以將數(shù)據(jù)包發(fā)送到Intruder,設(shè)置變量用戶(hù)名和密碼,驗(yàn)證碼則輸入正確的驗(yàn)證碼,不設(shè)置變。輸入字典進(jìn)行破解。
根據(jù)長(zhǎng)度判斷爆破是否成功,長(zhǎng)度不同的就是爆破成功的。
三、驗(yàn)證碼繞過(guò)(on client)
隨機(jī)輸入賬號(hào)密碼和相應(yīng)的驗(yàn)證碼,利用burp抓包。
查看源碼,我們可以發(fā)現(xiàn)驗(yàn)證碼是JavaScript隨機(jī)生成,點(diǎn)擊一次函數(shù)運(yùn)行一次生成一個(gè)相應(yīng)的驗(yàn)證碼
將數(shù)據(jù)包發(fā)送到repeater中,對(duì)驗(yàn)證碼進(jìn)行判定,判定后臺(tái)是否對(duì)驗(yàn)證碼進(jìn)行校驗(yàn)。修改驗(yàn)證碼點(diǎn)擊go,多次嘗試發(fā)現(xiàn)返回的信息都是username or password is not exists,但是沒(méi)有提示驗(yàn)證碼錯(cuò)誤。
則可以判斷雖然驗(yàn)證碼被提交,但是后臺(tái)并沒(méi)有驗(yàn)證。這個(gè)驗(yàn)證碼框是通過(guò)JavaScript實(shí)現(xiàn)的,對(duì)于不懂安全的人來(lái)說(shuō),可以起到一定的防范作用。但對(duì)于知道這個(gè)原理的人來(lái)說(shuō)形同虛設(shè)。
接下來(lái),就與基于表單的流程一樣,發(fā)送數(shù)據(jù)包到Intruder中,選用Cluster bomb模式修改變量,因?yàn)轵?yàn)證碼后臺(tái)并不校驗(yàn)沒(méi)有用,所以只用選擇用戶(hù)名與密碼。跟上面的表單一樣爆破就行。
四、token防爆破?
token的作用:簡(jiǎn)單來(lái)說(shuō)就是服務(wù)器給前端發(fā)的身份證,前端向服務(wù)器發(fā)送請(qǐng)求時(shí)都要帶上這個(gè)身份證,服務(wù)器通過(guò)這個(gè)身份證來(lái)判斷是否是合法請(qǐng)求。
抓包發(fā)送給暴力破解模塊,攻擊類(lèi)型選擇pitchfork(音叉),需爆破的內(nèi)容為密碼和token。
修改密碼的payload,添加密碼的爆破字典
修改token的payload,點(diǎn)擊選項(xiàng)里的Grep—Extract的添加,然后點(diǎn)擊獲取回復(fù),選中token的值復(fù)制,然后點(diǎn)擊OK
將token的payload類(lèi)型設(shè)置成遞歸搜索,在遞歸搜索選項(xiàng)中的第一個(gè)請(qǐng)求的初始有效負(fù)載設(shè)置為之前復(fù)制的token
攻擊后,通過(guò)響應(yīng)的長(zhǎng)度和內(nèi)容判斷是否爆破成功
至此pikachu靶場(chǎng)的Burt Force(暴力破解漏洞)我就測(cè)試到這里啦希望對(duì)大家有幫助。
