[CVE-2017-15688]GitBook 任意文件讀取漏洞


本文首發(fā)地址 :

https://xianzhi.aliyun.com/forum/read/2258.html

先知技術社區(qū)獨家發(fā)表本文汰寓,如需要轉(zhuǎn)載励饵,請先聯(lián)系先知技術社區(qū)授權滑燃;未經(jīng)授權請勿轉(zhuǎn)載表窘。
先知技術社區(qū)投稿郵箱:Aliyun_xianzhi@service.alibaba.com


前言 :

漏洞已經(jīng)報告給廠商 , 不過廠商并不認為這個是一個嚴重的漏洞
因為 GitBook 網(wǎng)站在編譯 Markdown 的書籍的時候是在 LXC 環(huán)境下進行的
其實只是一個虛擬的環(huán)境 , 并不能讀取到敏感的數(shù)據(jù)

image.png

挖掘過程 :

漏洞報告 PDF : https://drive.google.com/file/d/0B3gR_-XJ9Er3ZnhjSnFReW5PMDA/view?usp=sharing

其實過程和之前的 CVE-2017-15690 幾乎一模一樣

http://www.reibang.com/nb/15767357
http://www.reibang.com/p/fae6e1484c23

漏洞的成因都是因為沒有處理好 Linux 下的符號鏈接文件 , 導致任意文件讀取的

漏洞需求 :

首先需要攻擊者需要擁有一個 GitHub 賬號 , 一個 GitBook 賬號 , 并且將兩個賬號關聯(lián) , 使 GitBook 賬號可以使用 GitHub 中的倉庫來創(chuàng)建書籍

利用步驟 :

  1. 在 GitHub 上創(chuàng)建一個倉庫
  2. 將空的倉庫克隆到本地
  3. 使用命令在倉庫中初始化一個書籍
gitbook init
  1. 在倉庫的某一個目錄下 (或者根目錄) 創(chuàng)建一個符號鏈接文件 , 例如
ln -s /etc/passwd ./passwd.md

注意后綴名必須為 .md

1.png
  1. 編輯倉庫根目錄的 SUMMARY.md 將剛才創(chuàng)建的符號鏈接文件添加至該文件的目錄結(jié)構中
2.png
  1. 執(zhí)行命令 , 編譯該書籍
gitbook serve
# 編譯并在本地搭建 web 服務器 可以用來直接訪問查看效果
3.png
  1. 訪問發(fā)現(xiàn)確實讀取到了本機的 /etc/passwd 文件
4.png
  1. 將本地倉庫提交并 push 到 GitHub, 然后在 GitBook 中就可以看到讀取到的目標服務器的文件了
5.png
6.png
7.png

POC :

https://wangyihang.gitbooks.io/awesome-web-security/content/vulnerabilities/passwd.html


白盒分析 :

https://github.com/GitbookIO/gitbook
下載代碼, 定位到解析 SUMMARY.md 的函數(shù)

判斷是否是一個文件
路徑清洗函數(shù)
定義 MarkDown 文件的配置文件

在黑盒測試的時候就已經(jīng)發(fā)現(xiàn), 符號鏈接文件必須是 .md 才可以

image.png

這里是讀取文件的函數(shù) , 可以看到在讀取之前并沒有對文件是否是符號鏈接文件進行判斷
這樣也就造成了這個漏洞


修補方案 :

在編譯時 , 判斷文件是否是符號鏈接 , 如果是則跳過對該文件的編譯

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末黍匾,一起剝皮案震驚了整個濱河市呛梆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌纹腌,老刑警劉巖滞磺,帶你破解...
    沈念sama閱讀 221,406評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異涎劈,居然都是意外死亡,警方通過查閱死者的電腦和手機谅海,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評論 3 398
  • 文/潘曉璐 我一進店門扭吁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來侥袜,“玉大人徒河,你說我怎么就攤上這事顽照∶龉眩” “怎么了爷狈?”我有些...
    開封第一講書人閱讀 167,815評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長思币。 經(jīng)常有香客問我羡微,道長谷饿,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,537評論 1 296
  • 正文 為了忘掉前任博投,我火速辦了婚禮,結(jié)果婚禮上盯蝴,老公的妹妹穿的比我還像新娘。我一直安慰自己捧挺,他們只是感情好虑绵,可當我...
    茶點故事閱讀 68,536評論 6 397
  • 文/花漫 我一把揭開白布闽烙。 她就那樣靜靜地躺著翅睛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上宏所,一...
    開封第一講書人閱讀 52,184評論 1 308
  • 那天酥艳,我揣著相機與錄音,去河邊找鬼充石。 笑死,一個胖子當著我的面吹牛霞玄,可吹牛的內(nèi)容都是我干的坷剧。 我是一名探鬼主播,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼狞尔,長吁一口氣:“原來是場噩夢啊……” “哼丛版!你這毒婦竟也來了偏序?” 一聲冷哼從身側(cè)響起研儒,我...
    開封第一講書人閱讀 39,668評論 0 276
  • 序言:老撾萬榮一對情侶失蹤豫缨,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后端朵,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體好芭,經(jīng)...
    沈念sama閱讀 46,212評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,299評論 3 340
  • 正文 我和宋清朗相戀三年逸月,在試婚紗的時候發(fā)現(xiàn)自己被綠了栓撞。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,438評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡碗硬,死狀恐怖瓤湘,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情恩尾,我是刑警寧澤弛说,帶...
    沈念sama閱讀 36,128評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站翰意,受9級特大地震影響木人,放射性物質(zhì)發(fā)生泄漏信柿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,807評論 3 333
  • 文/蒙蒙 一醒第、第九天 我趴在偏房一處隱蔽的房頂上張望渔嚷。 院中可真熱鬧,春花似錦稠曼、人聲如沸形病。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,279評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽漠吻。三九已至,卻和暖如春司恳,著一層夾襖步出監(jiān)牢的瞬間途乃,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,395評論 1 272
  • 我被黑心中介騙來泰國打工扔傅, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留耍共,地道東北人。 一個月前我還...
    沈念sama閱讀 48,827評論 3 376
  • 正文 我出身青樓猎塞,卻偏偏與公主長得像划提,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子邢享,可洞房花燭夜當晚...
    茶點故事閱讀 45,446評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 本文詳細講解了 Gitbook 生成電子書的完整過程,內(nèi)容包括:安裝淡诗、命令骇塘、配置、文檔結(jié)構韩容、生成電子書款违、部署。限于...
    靜默虛空閱讀 11,259評論 9 138
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,275評論 25 707
  • 從翠無阻新枝冒群凶,自許高材老更剛插爹。 但知世人皆愛淺,余則偏執(zhí)茂時深请梢。
    我的晴天借你閱讀 405評論 0 1
  • *名字瞎取的 *后期會有副cp赠尾,不過還沒確定 *HE 下面開始w —————— 黃少天拼命地跑著,呼吸聲回蕩在腦海...
    凌柒_XL閱讀 189評論 0 0
  • 一個人的內(nèi)心怎么感知這場比賽毅弧,對比賽的結(jié)果有很大的影響气嫁。什么樣的狀態(tài)是好的“內(nèi)在比賽”狀態(tài)呢?加爾韋給出的答案是:...
    一個就夠啦閱讀 339評論 0 0