0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一次授權(quán)測(cè)試引起的全域名淪陷

jf_hKIAo4na ? 來源:菜鳥學(xué)安全 ? 2023-07-03 09:57 ? 次閱讀

0x00 前言

本次滲透測(cè)試為授權(quán)滲透測(cè)試,為此筆者還與開發(fā)人員交了個(gè)好朋友。

要求:不許危害到任何用戶,盜取任何人的密碼信息,以及不允許危害到服務(wù)器權(quán)限。

PS:該次滲透測(cè)試為師生關(guān)系。

82f99132-1939-11ee-962d-dac502259ad0.jpg

好像是因?yàn)槠髽I(yè)入駐學(xué)校的原因,班里所有人被安排上了一門培訓(xùn)課程,給學(xué)生們?cè)诰€學(xué)習(xí)Python

0x01 草率的信息收集

因?yàn)榘嚅L(zhǎng)只發(fā)了一個(gè)域名,提供給我們進(jìn)行學(xué)習(xí)Python,所以此時(shí)筆者首先使用layer進(jìn)行爬取域名。

8310703c-1939-11ee-962d-dac502259ad0.jpg

在這里筆者發(fā)現(xiàn)幾個(gè)敏感的點(diǎn)如下:

A域名泄露源碼問題

831fe01c-1939-11ee-962d-dac502259ad0.jpg

可以看到,這種站點(diǎn)模擬了github,筆者在想,會(huì)不會(huì)這些站點(diǎn)里的源代碼搭建到目前收集到的某些域名?

結(jié)果發(fā)現(xiàn)這些都是go語言編寫的,這是在勸退筆者。如圖:

83305226-1939-11ee-962d-dac502259ad0.jpg

不過這里話同時(shí)記錄了用戶名。

8341e6bc-1939-11ee-962d-dac502259ad0.jpg

**le5,為此筆者進(jìn)行收集了一些用戶名。

83526ab4-1939-11ee-962d-dac502259ad0.jpg

觀察到登錄接口,沒有驗(yàn)證碼。那么進(jìn)行爆破操作。

如圖:

83699fa4-1939-11ee-962d-dac502259ad0.jpg

觀察HTTP請(qǐng)求包,發(fā)現(xiàn)有csrf驗(yàn)證token,但是token在cookie中,如圖:

837719f4-1939-11ee-962d-dac502259ad0.jpg

這樣就不需要特地的去準(zhǔn)備python腳本了。爆破之:

83863588-1939-11ee-962d-dac502259ad0.jpg

這里因?yàn)閣eb有記錄時(shí)間戳的功能,影響了BurpSuite包返回長(zhǎng)度,那么爆破就需要特意的編寫python腳本,并且爆破的效率看起來也一般般,先把這條路放到最后。

B域名一處未授權(quán)訪問

在B站點(diǎn)中,筆者訪問一下第一眼顯示管理界面,然后突然就發(fā)生了跳轉(zhuǎn),查看源代碼:

8394bfa4-1939-11ee-962d-dac502259ad0.jpg

存在跳轉(zhuǎn)操作,那么禁用js:

83a80adc-1939-11ee-962d-dac502259ad0.jpg

但是點(diǎn)來點(diǎn)去發(fā)現(xiàn)都是白頁,先不去研究。

C域名一個(gè)未知上傳點(diǎn)

83bc3124-1939-11ee-962d-dac502259ad0.jpg

但是是無任何東西的,上傳點(diǎn)也是壞的,上傳記錄也是空,目測(cè)開發(fā)到一半程序員跑路了。

0x02 一處邏輯漏洞

轉(zhuǎn)了一圈回來倒是收集了點(diǎn)信息,因?yàn)槟繕?biāo)的站點(diǎn)我是可以使用我自己的學(xué)號(hào)的。那么登錄之,發(fā)現(xiàn)存在綁定手機(jī)號(hào)的功能,如圖:

83d1bdf0-1939-11ee-962d-dac502259ad0.jpg

看到這里大家懂得都懂,4位數(shù)驗(yàn)證碼爆破可成功。如圖:

83dba31a-1939-11ee-962d-dac502259ad0.jpg

遺憾的是開發(fā)人員并沒有添加一項(xiàng)“找回密碼”這樣的功能。那么這個(gè)綁定手機(jī)號(hào)也沒什么意義了。

0x03 令人激動(dòng)的在線代碼運(yùn)行

因?yàn)槭窃诰€學(xué)習(xí)python,那么筆者在web中翻到了一處“在線代碼運(yùn)行”,如圖:

83ed7c3e-1939-11ee-962d-dac502259ad0.jpg

發(fā)現(xiàn)進(jìn)行了過濾,那么使用__import__函數(shù)進(jìn)行繞過。

如圖:

83fb8a40-1939-11ee-962d-dac502259ad0.jpg

運(yùn)行之,在此whoami問候,如圖:

841de95a-1939-11ee-962d-dac502259ad0.jpg

驚喜的發(fā)現(xiàn)是root權(quán)限,查看一下根目錄是否存在docker文件,如圖:

842795a4-1939-11ee-962d-dac502259ad0.jpg

看來是白白高興一場(chǎng)。不過服務(wù)器是docker自有docker的利用方式。

先看一下os的過濾是什么樣的:

8434af28-1939-11ee-962d-dac502259ad0.jpg

居然使用ast抽象語法樹來進(jìn)行過濾,這里筆者簡(jiǎn)單說一下有如下種繞過方式:

1.剛剛所說的__import__方法
2.使用eval方法來進(jìn)行拼接字符
3.使用python的沙箱逃逸
4.使用未過濾的subprocess
5.使用 from os import system 來進(jìn)行繞過等

通過查看nodejs源代碼。發(fā)現(xiàn)該功能模塊是通過“前端->websocket->nodejs->執(zhí)行python”,是這種流程,那么觀察驗(yàn)證點(diǎn),如圖:

8445059e-1939-11ee-962d-dac502259ad0.jpg

這里有一處token驗(yàn)證,這里的token是該站點(diǎn)的HTTP頭的token,如圖:

845d9e06-1939-11ee-962d-dac502259ad0.jpg

故與賬號(hào)憑證綁定的死死的,不存在漏洞。下面還有一處原型鏈污染,但是無法自定義設(shè)置key,也是挺可惜的,如圖:

8475fb18-1939-11ee-962d-dac502259ad0.jpg

Package.json文件中也沒發(fā)現(xiàn)什么庫導(dǎo)致的漏洞,這里nodejs的研究告一段落。

但是目前該站點(diǎn)為多用戶一服務(wù)。也就是說,A用戶指向websocket服務(wù)器,B用戶同樣也指向websocket服務(wù)器。所以這臺(tái)docker服務(wù)器可以幫助我們觸發(fā)XSS。

例如:

8487cb40-1939-11ee-962d-dac502259ad0.jpg

將這里插入xss代碼,然后重啟node服務(wù)即可,實(shí)戰(zhàn)中筆者并沒有這么做,因?yàn)橛|發(fā)了用戶隱私。

0x04 OSS導(dǎo)致的全域名XSS淪陷

在前期的一些簡(jiǎn)單的信息收集中,所發(fā)現(xiàn)的B域名的一處未授權(quán)訪問中,發(fā)現(xiàn)一處在線代碼編輯器。如圖:

8493ace4-1939-11ee-962d-dac502259ad0.jpg

那么抓包:

84a489ec-1939-11ee-962d-dac502259ad0.jpg

可以看到,key隨著我們所上傳的文件發(fā)送到目標(biāo)存儲(chǔ)站點(diǎn),在OSS中,文件雖然不會(huì)被編程語言所解析,但是卻不會(huì)驗(yàn)證任何后綴,上傳也不會(huì)被重名。也就是一個(gè)簡(jiǎn)單的存儲(chǔ)文件功能而已。

那么在這里,筆者發(fā)現(xiàn)該域名下隨便一個(gè)站點(diǎn)都有引入OSS的站點(diǎn)的js腳本,如圖:

84b1418c-1939-11ee-962d-dac502259ad0.jpg

但是目前的文件上傳的OSS服務(wù)器并不是指明了js的OSS服務(wù)器,那么如果這兩臺(tái)的服務(wù)器的密鑰設(shè)置都是一樣的話,那么就會(huì)造成A站點(diǎn)與B站點(diǎn)的key是一樣的,具體攻擊思路如下:

84c3e6b6-1939-11ee-962d-dac502259ad0.jpg

如果密鑰一樣的情況下,我們借用OSS A的key來上傳惡意js腳本,替換掉OSS B原有的js腳本,這里就可以產(chǎn)生一個(gè)XSS漏洞。那么筆者進(jìn)行嘗試。

如圖:

84d23914-1939-11ee-962d-dac502259ad0.jpg

居然真的存在密鑰復(fù)用問題,那么回到主站點(diǎn):

84e8867e-1939-11ee-962d-dac502259ad0.jpg

成功污染站點(diǎn),通過觀察,該域名下的站點(diǎn)的js指向全部都在該OSS服務(wù)上,那么全站淪陷。

0x05 漏洞提交

至此整個(gè)漏洞過程完美結(jié)束,OSS服務(wù)器密碼復(fù)用問題可以看到是多么的可怕。交作業(yè),收工!

8501cac6-1939-11ee-962d-dac502259ad0.jpg

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    8866

    瀏覽量

    84962
  • 滲透
    +關(guān)注

    關(guān)注

    0

    文章

    19

    瀏覽量

    6261
  • python
    +關(guān)注

    關(guān)注

    54

    文章

    4759

    瀏覽量

    84295

原文標(biāo)題:實(shí)戰(zhàn) | 一次授權(quán)測(cè)試引起的全域名淪陷

文章出處:【微信號(hào):菜鳥學(xué)安全,微信公眾號(hào):菜鳥學(xué)安全】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    [推薦]注冊(cè)中文域名,買得六

    一次性注冊(cè)5年,在多年優(yōu)惠的基礎(chǔ)上返款20元/個(gè)一次性注冊(cè)10年,在多年優(yōu)惠的基礎(chǔ)上返款50元/個(gè) 立即注冊(cè) 域名 注冊(cè)域名 申請(qǐng)域名
    發(fā)表于 11-18 16:47

    循環(huán)充放電一次就是少一次壽命嗎?

    循環(huán)充放電一次就是少一次壽命嗎?循環(huán)就是使用,我們是在使用電池,關(guān)心的是使用的時(shí)間,為了衡量充電電池的到底可以使用多長(zhǎng)時(shí)間這樣個(gè)性能,就規(guī)定了循環(huán)
    發(fā)表于 09-07 02:06 ?2021次閱讀

    一次電池為什么不能被充電?

    一次電池為什么不能被充電? 一次電池不能被充電再生是構(gòu)成一次電池體系的本性所決定的,因?yàn)?b class='flag-5'>一次電池的電極反應(yīng)不可逆,也就是說,放電后的放電產(chǎn)
    發(fā)表于 10-28 15:29 ?5748次閱讀

    循環(huán)充放電一次就是少一次壽命嗎?

    循環(huán)充放電一次就是少一次壽命嗎?     循環(huán)就是使用,我們是在使用電池,關(guān)心的是使
    發(fā)表于 11-11 13:59 ?835次閱讀

    電池循環(huán)充放電一次就是少一次壽命嗎?

    電池循環(huán)充放電一次就是少一次壽命嗎? 循環(huán)就是使用,我們是在使用電池,關(guān)心的是使用的時(shí)間,為了衡量充電電池
    發(fā)表于 09-06 11:05 ?3588次閱讀

    一次電源監(jiān)控功能性能測(cè)試規(guī)范下載

    某全球500強(qiáng)企業(yè)研發(fā)內(nèi)部一次電源控制功能性能測(cè)試規(guī)范
    發(fā)表于 03-02 11:56 ?1次下載

    怎樣通過測(cè)試判斷變壓器的一次繞組和二繞組

    繞組是變壓器電路的主體部分,繞組又可分為一次繞組和二繞組。一次繞組是與電源相連的電阻,能夠從電源接受能量;二繞組是與負(fù)載相連的繞組,主要是給負(fù)載提供能量的。那么
    的頭像 發(fā)表于 09-04 09:30 ?2.2w次閱讀

    APP時(shí)代域名到底還重不重要

    隨著APP的快速發(fā)展,不少米友抱怨目前域名行情大不如前。更有不少米友對(duì)域名行業(yè)的前景心存疑慮,同時(shí)還有很多粉絲一次次對(duì)我說:現(xiàn)在都APP時(shí)代了,誰還去看域名?誰還通過
    的頭像 發(fā)表于 02-03 14:53 ?2909次閱讀

    一次消諧出廠前要進(jìn)行測(cè)試!

    相適應(yīng)。般額定電壓在500伏以下的設(shè)備,選用500伏或1000伏的搖表;額定電壓在500伏及以上的設(shè)備,選用1000-2500伏的搖表。10KV以上設(shè)備用5000V搖表。 10KV一次消諧出廠前要進(jìn)行測(cè)試,本次
    發(fā)表于 02-12 10:37 ?241次閱讀

    電氣一次識(shí)圖基礎(chǔ)

    電氣一次識(shí)圖基礎(chǔ)
    的頭像 發(fā)表于 11-12 11:24 ?2070次閱讀

    怎樣用搖表來測(cè)試一次消諧是否合格

    怎樣用搖表來測(cè)試一次消諧是否合格 一次消諧器用搖表測(cè)試的方法如下: 首先將一次消諧器接線,接上測(cè)試
    發(fā)表于 02-27 14:35 ?313次閱讀

    一次性無菌注射針針尖韌性測(cè)試

    檢測(cè)一次性使用無菌注射針針管的韌性就需要用到一次性無菌注射針針尖韌性測(cè)試儀,今天威夏科技就為您詳細(xì)講解一次性無菌注射針針尖韌性測(cè)試儀。
    的頭像 發(fā)表于 01-30 17:23 ?886次閱讀
    <b class='flag-5'>一次</b>性無菌注射針針尖韌性<b class='flag-5'>測(cè)試</b>儀

    一次調(diào)頻和二調(diào)頻的概念 一次調(diào)頻可以實(shí)現(xiàn)無差調(diào)節(jié)?

    一次調(diào)頻和二調(diào)頻的概念 一次調(diào)頻可以實(shí)現(xiàn)無差調(diào)節(jié)? 、一次調(diào)頻和二調(diào)頻的概念 1.
    的頭像 發(fā)表于 10-17 16:15 ?8529次閱讀

    手表按鍵力測(cè)試機(jī):品質(zhì)掌握在每一次按鍵間

    手表按鍵力測(cè)試機(jī):品質(zhì)掌握在每一次按鍵間
    的頭像 發(fā)表于 12-27 09:09 ?505次閱讀
    手表按鍵力<b class='flag-5'>測(cè)試</b>機(jī):品質(zhì)掌握在每<b class='flag-5'>一次</b>按鍵間

    基波是一次諧波么 基波與一次諧波的區(qū)別

    基波是一次諧波么 基波與一次諧波的區(qū)別? 基波和一次諧波是兩個(gè)不同的概念。 基波是在諧波分析中指的是頻率最低且沒有任何諧波成分的波形,它是構(gòu)成復(fù)雜波形的基礎(chǔ)。在正弦波中,基波就是正弦波的本身。基波
    的頭像 發(fā)表于 04-08 17:11 ?5279次閱讀