Typora XSS to Code Execution

寫完前一篇 HackMD XSS 後,突然想到去年也有發現過一個有點類似的(但是是簡單版的)洞,因此在這邊簡單記錄一下。 前言 在 2021 年底,之前一向愛用的 Markdown 編輯器 Typora 終於邁向了 1.0 正式版,也因此變成了付費制,於是因為某種不可告人的原因,我開始逆起了 Typora。雖然說是逆向,但其實就是讀一下壓縮過的 JavaScript 而已,但看著看著就發現一些怪怪的地方惹。 逆 & 洞 如果有人是用 macOS 版的話,主要的原始碼其實就在 /path/to/Typora.app/Contents/Resources/TypeMark/ ,直接過去就能看到了。 總之呢,在 appsrc/main.js 有一段這樣的程式碼,變數名稱已經大致還原過了:…

某個自古以來就存在的 HackMD XSS

在 AIS3 2022 的時候 maple3142 突然就挖到了兩個 XSS,於是就決定跟風來挖一下,結果就順利找到了!值得一提的是這次的 XSS 不同於以往 HackMD 常見的字串拼接型 XSS,整個利用流程算是較為有趣的,所以久違的來發文來記錄個,順便 survey 一下 HackMD 的一些其他問題。 前言之類的 HackMD 允許的語法自由度相當高,允許了不少 HTML tag,也有很多自定義的特殊語法,所以一直是駭客們愛打的目標,CTF 也出現過好幾次 CodiMD 的 0-day 題 XD,像是 Pwn2Win 2021 - HackUs、hxp CTF 2020 - hackme 等等,這樣看起來,我說不定其實應該把這個洞屯起來出在下次…