zema1 / watchvuln

一个高价值漏洞采集与推送服务 | collect valueable vulnerability and push it

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

数据库密码中包含特殊字符会出错

r90tpass opened this issue · comments

比如密码中有&%等会出错
是否能加一个编码转换的
类似于:password先用url进行编码,然后代码在连接时再进行解码。
decodedDB, err := url.QueryUnescape(password)

期待你的回复

commented

这个是 url.Parse 解析时出错的,暂时没想到好的办法,只能先改下数据密码别有特殊字符了 ==

watchvuln/ctrl/config.go:51

// +add
conn, err := url.QueryUnescape(u.User.String())
if err != nil {
	return "", "", fmt.Errorf("failed to unescape db_conn: %w", err)
}
return dialect.MySQL, fmt.Sprintf("%s@tcp(%s)/%s?%s", conn, u.Host, path, query), nil

@ramoncjs3 实际上,在这之前就已经报错了,报错在这一行 https://github.com/zema1/watchvuln/blob/main/ctrl/config.go#L28

这种情况可以试试手动把 password 用 url编码工具编码一下,再传到这个连接配置里