zema1 / watchvuln

一个高价值漏洞采集与推送服务 | collect valueable vulnerability and push it
MIT License
1.4k stars 155 forks source link

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

Open r90tpass opened 1 year ago

r90tpass commented 1 year ago

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

期待你的回复

zema1 commented 1 year ago

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

ramoncjs3 commented 8 months ago

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
zema1 commented 7 months ago

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

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