web滲透測(cè)試之攻破登錄頁(yè)面
當(dāng)我們?cè)谧鰸B透測(cè)試時(shí),無(wú)論廠商項(xiàng)目還是src眾測(cè)項(xiàng)目,都會(huì)遇到給一堆登錄系統(tǒng)的URL亮蛔,然后讓我們自己去測(cè),能不能進(jìn)去全看天的狀況擎厢,本文將講一下怎么突破這種封閉的web系統(tǒng)究流,從而進(jìn)行更深層次的滲透 辣吃,學(xué)完后你會(huì)發(fā)現(xiàn),其實(shí)你就是系統(tǒng)管理員芬探。
0x0 0系統(tǒng)繞過(guò):
如果能直接繞過(guò)登錄系統(tǒng)界面神得,后面的就比較好做了,目前常見(jiàn)的登錄系統(tǒng)繞過(guò)方法有:
- 利用xss獲取到已經(jīng)登陸用戶或者是管理員的cookie偷仿,替換cookie后進(jìn)入系統(tǒng)
- SQL注入利用萬(wàn)能密碼登錄哩簿,常見(jiàn)的萬(wàn)能密碼有: 'or'='or' 'or 1=1/* admin' or 1=1/*
- 通過(guò)掃描系統(tǒng)目錄,目錄遍歷酝静,google hacking找到未授權(quán)訪問(wèn)的登陸頁(yè)面节榜,直接進(jìn)入到系統(tǒng)內(nèi)部
- 用burp抓取數(shù)據(jù)包,更改URL中的id參數(shù)别智,更改用戶名密碼字段(比如直接刪去密碼字段)宗苍,更改cookie字段,可以越權(quán)登錄到系統(tǒng)內(nèi)部
0x01 密碼爆破:
大部分情況下亿遂,系統(tǒng)登錄頁(yè)面都不存在xss浓若,目錄遍歷渺杉,SQL注入等漏洞蛇数,這時(shí)候最常用的方法就是爆破和猜解登錄口令,密碼猜解最關(guān)鍵的就是字典要高效準(zhǔn)確
- 在應(yīng)用層http/https爆破密碼的常用工具是burpsuite 安裝教程請(qǐng)自行百度是越,burp最新破解版下載地址:
https:// down.52pojie.cn/Tools/N etwork_Analyzer/Burp_Suite_Pro_v1.7.31_Loader_Keygen.zip
2.準(zhǔn)確的用戶名耳舅,密碼字典是高效破解的重中之重 ,一般都是指定幾個(gè)常見(jiàn)用戶名 倚评,嘗試 top500浦徊,top1000進(jìn)行爆破 字典不必要太大,最重要的是針對(duì)性要強(qiáng) 天梧,下面是top1000:
鏈接: https:// pan.baidu.com/s/1-XztuB 8YTfpT5aUBVbmbzA 密碼: 56pb
3.如果還是不能猜解成功盔性,就要根據(jù)目標(biāo)信息用字典生成器構(gòu)造針對(duì)性的字典來(lái)猜解了,推 薦幾個(gè)比較好的字典生成工具
pydictor:
crunch:
Cewl:
Cupp:
0x02系統(tǒng)管理員爆破
因?yàn)楣芾韱T權(quán)限較高呢岗,通常我都會(huì)先進(jìn)行管理員口令的猜解冕香,總結(jié)了一些常見(jiàn)的管理員用戶名字典
<u>鏈接:</u> <u>https:// pan.baidu.com/s/1sOD1-u whnStaw_LfMOf-sQ </u><u>密碼: 3yqe</u>
用此用戶名字典,再加上弱口令top1000后豫,同時(shí)爆破系統(tǒng)管理員用戶名密碼
鏈接: https:// pan.baidu.com/s/1-XztuB 8YTfpT5aUBVbmbzA 密碼: 56pb
0x03普通用戶爆破
常見(jiàn)的普通用戶用戶名是姓名拼音悉尾,總結(jié)了普通用戶字典
TOP3000姓名
<u>鏈接:</u> <u>https:// pan.baidu.com/s/1qN9kCF tymP4ugvu3FFkKbA </u><u>密碼: hkzp</u>
TOP10w姓名
https:// github.com/rootphantome r/Blasting_dictionary/blob/master/top10W.txt
通常可以選擇幾個(gè)弱口令密碼挫酿,比如:123456构眯,123abc,111111早龟,然后配合top10w來(lái)猜解登陸口令惫霸,一些初始化的默認(rèn)密碼也很簡(jiǎn)單猫缭,如果能找到配合top10w通常也能爆出登錄口令
0x04 突破加密傳輸
現(xiàn)在的業(yè)務(wù)系統(tǒng)口令傳輸?shù)胶蠖饲岸紩?huì)進(jìn)行加密處理 ,web常見(jiàn)的加密方式有 md5 加密它褪、sha1 加密饵骨、RSA 加密,在此基礎(chǔ)上總結(jié)了兩種破解方式:
1.利用burpsuite的payload processing功能茫打,把字典按照加密方式先加密再發(fā)包
2.用字典生成工具生成加密好的字典居触,然后burp直接加載加密字典
這里推薦的字典生成工具是pydictor,encode功能內(nèi)置了多種加密算法老赤,調(diào)用handler工具直接加密自己的明文字典
0x05 突破登錄IP地址限制
如果登錄系統(tǒng)設(shè)置了IP地址白名單轮洋,我們可以通過(guò)下面的幾個(gè)http頭字段偽造IP地址,用burp抓包后將下面的某個(gè)http頭字段加入數(shù)據(jù)包發(fā)送到服務(wù)器
<pre class="prettyprint hljs css" style="padding: 0.5em; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; color: rgb(68, 68, 68); border-radius: 4px; display: block; margin: 0px 0px 1.5em; font-size: 14px; line-height: 1.5em; word-break: break-all; overflow-wrap: break-word; white-space: pre; background-color: rgb(246, 246, 246); border: none; overflow-x: auto;">Client-Ip: 127.0.0.1
X-Client-IP: 127.0.0.1
X-Real-IP: 127.0.0.1
True-Client-IP: 127.0.0.1
X-Originating-IP: 127.0.0.1
X-Forwarded-For: 127.0.0.1
X-Remote-IP: 127.0.0.1
X-Remote-Addr: 127.0.0.1
X-Forwarded-Host: 127.0.0.1</pre>
0x06 圖形驗(yàn)證碼繞過(guò)方式
如果在系統(tǒng)登陸界面加上了驗(yàn)證碼抬旺,那么上面的方法基本上就都失效了弊予,那有什么方法可以繞過(guò)驗(yàn)證呢
1.圖形驗(yàn)證碼不刷新
在一段時(shí)間內(nèi)只要不刷新頁(yè)面,無(wú)論登錄失敗多少次都不刷新驗(yàn)證碼开财,這個(gè)時(shí)候就可以使用同一個(gè)驗(yàn)證碼根據(jù)上面的方式進(jìn)行暴力破解
2.驗(yàn)證碼失效
不管在驗(yàn)證碼表單輸入什么樣的數(shù)據(jù)汉柒,都會(huì)判斷通過(guò),但這種情況很少見(jiàn)
3.圖形驗(yàn)證碼可被識(shí)別责鳍,抓包直接可以獲得驗(yàn)證碼
很多網(wǎng)站的驗(yàn)證碼都可以在請(qǐng)求數(shù)據(jù)包中找到碾褂,或者隱藏在request的cookie中,response的源碼中历葛,可以利用burpsuite的macros來(lái)匹配response中的相應(yīng)數(shù)據(jù)正塌,具體的爆破方法參見(jiàn)下文:
burpsuite爆破密碼(含驗(yàn)證碼) - CSDN博客
4.圖形驗(yàn)證碼參數(shù)直接繞過(guò)
對(duì)于request數(shù)據(jù): user=admin&pass=1234&vcode=brln,有兩種繞過(guò)方法:
一是驗(yàn)證碼空值繞過(guò)恤溶,改成 user=admin&pass=1234&vcode=乓诽;
一是直接刪除驗(yàn)證碼參數(shù),改成 user=admin&pass=1234咒程。
5.萬(wàn)能驗(yàn)證碼
滲透測(cè)試的過(guò)程中鸠天,有時(shí)候會(huì)出現(xiàn)這種情況,系統(tǒng)存在一個(gè)萬(wàn)能驗(yàn)證碼帐姻,如0000稠集、9999,只要輸入萬(wàn)能驗(yàn)證碼卖宠,就可以無(wú)視驗(yàn)證碼進(jìn)行暴力破解巍杈。
6. 驗(yàn)證碼可被識(shí)別
有些圖形驗(yàn)證碼加入的像素線條過(guò)于簡(jiǎn)單,使用圖形驗(yàn)證碼識(shí)別工具可以識(shí)別出每次更換的驗(yàn)證碼扛伍,在平常的漏洞挖掘過(guò)程中筷畦,如果我們發(fā)現(xiàn)登錄的驗(yàn)證碼非常簡(jiǎn)單且易于識(shí)別,那我們就可以嘗試使用自動(dòng)化工具來(lái)進(jìn)行登錄破解了,如 PKAV 的 HTTP Fuzzer
7.使用機(jī)器學(xué)習(xí)算法識(shí)別驗(yàn)證碼
主要是對(duì)特定網(wǎng)站的圖形驗(yàn)證碼訓(xùn)練識(shí)別模型鳖宾,達(dá)到一定的準(zhǔn)確率就可以調(diào)用進(jìn)行模擬提交圖形驗(yàn)證碼的值了吼砂。可參考以下三篇文章進(jìn)行學(xué)習(xí):
使用KNN算法識(shí)別驗(yàn)證碼:
卷積神經(jīng)網(wǎng)絡(luò)識(shí)別驗(yàn)證碼
使用 TensorFlow 訓(xùn)練驗(yàn)證碼
0x07:短信驗(yàn)證碼繞過(guò)
對(duì)于網(wǎng)站要求輸入手機(jī)號(hào)鼎文,接收手機(jī)短信并校驗(yàn)短信驗(yàn)證碼是否正確進(jìn)行登錄的系統(tǒng)渔肩,突破的主要思路有:
1.短信驗(yàn)證碼生命期限內(nèi)可暴力枚舉
在驗(yàn)證碼還未過(guò)期的時(shí)間段內(nèi),可枚舉全部的純四位數(shù)字拇惋、六位數(shù)字等較簡(jiǎn)單的短信驗(yàn)證碼周偎;
2. 短信驗(yàn)證碼在數(shù)據(jù)包中返回
和圖形驗(yàn)證碼一樣,在response中可以直接獲取到短信驗(yàn)證碼撑帖。
3. 修改請(qǐng)求數(shù)據(jù)包參數(shù)或 Cookie 值繞過(guò)
比如有 post 數(shù)據(jù)包:mobile=12435437658&userid=123456, Cookie中有:codetype=1
在特定步驟蓉坎,修改 mobile=自己的手機(jī)號(hào),自己手機(jī)就可以收到別人的驗(yàn)證碼胡嘿,后面再用別人的手機(jī)號(hào)和接收到的驗(yàn)證碼登錄蛉艾;
修改 Cookie 中可疑的參數(shù)和值,進(jìn)行繞過(guò)衷敌,比如上面修改 codetype=0勿侯;
4. 修改返回包繞過(guò)
提交錯(cuò)誤的短信驗(yàn)證碼,返回包中有: status=false缴罗,在Burpsuite中修改為 status=true助琐,即可繞過(guò)前端判斷,成功進(jìn)入系統(tǒng)瞒爬。具體還要結(jié)合實(shí)際的場(chǎng)景弓柱,靈活操作沟堡。
總結(jié):
web系統(tǒng)登陸頁(yè)面看似銅墻鐵壁侧但,但其實(shí)只要梳理一遍思路,右鍵看過(guò)每一行網(wǎng)站源碼航罗,弄懂每個(gè)參數(shù)的意義禀横,查看每一個(gè)js文件,就會(huì)發(fā)現(xiàn)其實(shí)自己就是系統(tǒng)管理員粥血,只是我把密碼忘了柏锄,現(xiàn)在我要用上面的方式進(jìn)入。