close

0x00背景

前兩天在realworld挖到一個docx的xxe漏洞,昨天朋友和我說國外某CTF也出現其中考點了,所以我把docx格式的xxe來簡單總結下

0x01前置知識

首先是關於docx這種格式 在微軟2007之後 在傳統的文件名都添加了x 比如pptx xlsx,還有我們本文提到的docx 他的優點是占用空間會比doc文件占有的少,並且他的本質其實是個xml文件

當你拿到一個docx文件時 使用本機自帶的unzip命令進行解壓

會得到如下的xml文件因為docx文件的主要內容是保存為xml的 他是保存在一個壓縮包 然後取擴展名為zip 這裡面主要存儲信息的地方在於word文件夾下的document.xml

我們發現在word輸入的內容在

<w:t>&xxe;</w:t>

這個標籤內解析xml實體的位置也是如此

0x02lets xxe 1

第一個位點就是我們剛才提到的地方

我們只需要做的是在xml聲明處添加如下第一行代碼 在第二行標籤進行修改

<!DOCTYPEtest[<!ENTITYtestSYSTEM'file:///etc/passwd'>]><w:t>&test;</w:t>

然後將文件重新壓縮 修改為.docx 然後找到上傳點上傳就可以

但做好的即使用微軟官方的word並不能打開 發現只有用Libreoffice時候能解析

當然這個在ctf題中也有案例 感興趣的師傅可以翻閱HackPack 2021 Indead v2 用一模一樣的方法就可以

0x03xxe 2

首先是關於

第一種方法被廣流傳之後 很多都進行了相對的修改 當然最暴力的方法就是直接禁止實體解析,當然也有做的相對柔和一點就是在document.xml裡面檢測了關鍵字 很顯然這種方法並不全面 那我們需要探索的就是是否有別的位點

我注意到在線瀏覽或者轉換pdf的地方還有一個回顯點 就是頁碼

經過簡單翻找可以看到

在docProps/app.xml標籤裡面

在pages這裡面加入xxe語句即可

0x04ole to readfile

然後就是出自前幾天比賽學習的一種新手法 這種手法只適用於Libreoffice 並且在實戰場景是有利用空間的 很多在線網站word轉pdf用的都是libreoffice

這道題的設計背景就是 試了xxe發現不行 然後就各種搜索資料 發現word文檔是可以以文件的方式嵌入和鏈接OLE對象 OLE就是一種面向對象技術 利用這種方式就可以把文件 聲音 圖像表格 應用程序組合在一起

選擇插入 OLE Object

然後在這裡選擇Link to file

可以看到這裡面可以成功讀取

然後我們保存 這裡面要注意一個坑 不能直接保存為docx格式 要先保存為odt格式 我們再手動修改擴展名

這時候以zip格式打開就可以看到

格式大概是這樣 我們打開content.xml

可以看到在xlink: href 這裡面連接到/etc/passwd 那你也能想到我們可以把他修改/flag上傳

這時候我們發現是可行的 但是這種方法讀取的行數是有限的 讀不到完整flag

解決方法也很簡單 我們自己寫個文本框來解析 代碼如下

<text:sectiontext:name="string"><text:section-sourcexlink:href="../../../../../../flag"xlink:type="simple"xlink:show="embed"xlink:actuate="onLoad"/></text:section>

可以看到能過成功解析讀取flag

0x05docx壓縮包的其他考點

回過頭來我們想當他本質是個壓縮包的話 php有豐富的偽協議 zip 如果我們在php網站有這種上傳docx的地方 也可以考慮 把php一句話寫入 然後用zip://把它解壓出來

後來發現早有師傅想到這個點了


以上文章來源:先知社區(你回來嗎)

原文地址:https://xz.aliyun.com/t/11203#toc-0

贈書福利

一:Python自動化測試實戰

書的寫作初衷是為了幫助更多功能測試人員轉型自動化測試方向。在轉型過程中,主流自動化測試技術和應用場景的結合是非常重要的一環。本書從自動化測試理論入手,全面地闡述自動化測試的意義及實施過程。全文以Python語言驅動,結合真實案例分別對主流自動化測試工具Selenium、Robot Framework、Postman、Python+Requests、Appium等進行系統講解。通過學習本書,讀者可以快速掌握主流自動化測試技術,並幫助讀者豐富測試思維,提高Python編碼能力。

二:人工智能算法基礎

(1)零基礎也能快速入門。本書從最基礎的算法基礎講起,由淺入深,層層遞進,在鞏固固有知識的同時深入講解人工智能的算法原理,無論讀者是否從事計算機相關行業,是否接觸過人工智能,都能通過本書實現快速入門。(2)理論和實踐相結合。每章最後提供根據所在章的理論知識點精心設計的「應用」,讀者可以通過應用實例進行實踐操作,為以後的算法學習奠定基礎。(3)大量範例源碼+習題答案,為學習排憂解難。本書所有示例都有清晰完整的源碼,每章之後設有習題並配套題目答案,講解清晰,解決讀者在學習中的所有困惑。

三:數據結構和算法基礎(Java語言實現)

算法和數據結構是程序的靈魂,在計算機類培訓課程中屬於必開的課程。雖然實際工作中大多數人並不是專業的算法工程師,不以算法為深,但不可否認算法在工作中的重要性,初級工程師與高級工程師的差距也許就在對於算法的理解上。理解算法,運用合理的數據結構,可以讓程序更加高效。

贈書規則

為了感謝大家一直以來的關注與支持,會有三本書籍免費贈送

規則如下:

1. 本文末點『在看』,不需要轉發朋友圈,點個『在看』就可以。

2.私聊文末公眾號發送「0708」即可掃描參與抽獎,注意看是發送暗號「0708」。

3. 中獎者不滿足條件1,視為放棄中獎資格。

4. 活動截止時間7月8日 16:00點,到時候還要中獎者及時聯繫號主發送你的中獎核驗二維碼、收貨地址、姓名、手機號以及想要的書籍,好給您發送書籍哦!24小時內未聯繫號主視為自動放棄!騙書行為出版社會永久拉黑!

先點「再看」,然後點擊下方公眾號私聊發送「0708」即可馬上掃描參與抽獎


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鑽石舞台 的頭像
    鑽石舞台

    鑽石舞台

    鑽石舞台 發表在 痞客邦 留言(0) 人氣()