Openssl Infinite Loop 漏洞(CVE-2022-0778)

Openssl Infinite Loop 漏洞(CVE-2022-0778)

1. 漏洞详情

在该漏洞中由于证书解析时使用的 BN_mod_sqrt() 函数存在一个错误,它会导致在非质数的情况下永远循环。可通过生成包含无效的显式曲线参数的证书来触发无限循环。由于证书解析是在验证证书签名之前进行的,因此任何解析外部提供的证书的程序都可能受到拒绝服务攻击。此外,当解析特制的私钥时(包含显式椭圆曲线参数),也可以触发无限循环。
任何使用BN_mod_sqrt()的其他应用程序,如果可以控制参数值,也会受到此漏洞影响。需要注意的是,任何需要证书中公钥的操作都会触发无限循环,特别是自签名的证书,在验证证书签名时会触发循环。

2. 漏洞复现

启动相应的docker容器
docker-compose up -d
在这里插入图片描述

我们根据这个项目来构建和运行存在恶意的服务器,如果没有 Golang 编译器,只需使用 Docker 镜像:
docker run -it --rm -p 12345:12345 yywing/cve-2022-0778 --addr 0.0.0.0:12345
我们的思路是实现DDos攻击即看CPU负载程度是怎么样的,所以我们得先监控内部CPU利用率
docker-compose exec curl top
在这里插入图片描述

因为该漏洞可以在解析证书的时候调用有问题的函数BN所以我们可以通过cURL来实现漏洞
进入容器内部,使用cURL启动上面建立的服务器
docker-compose exec curl bash
curl -k https://host.docker.internal:12345
此时,curl就会陷入死循环中,查看CPU会看到被全部占用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值