上周Java日志库Log4j2的注入漏洞CVE-2021-44228,被定义为极高危漏洞,国外评分为10(满分为10)。让各厂的工程师忙的不可开交,加急通宵处理这个漏洞。为什么大家都这么重视这个漏洞,今天就对这个漏洞进行复现,来认识一下它的危害性。本DEMO目的是认识该漏洞的危害性并根据您系统的情况做出针对性的防御。
警告
- 本DEMO只是针对技术层面的研究,不涉及恶意远程计算机侵入方面的相关脚本,而且仅能在本机执行。
请勿利用漏洞非法侵入他人计算机。否则您将可能承担以下侵权责任:
根据《中华人民共和国治安管理处罚法》第二十九条 对违反国家规定,侵入计算机信息系统,造成危害的,处五日以下拘留;情节较重的,处五日以上十日以下拘留。
根据《中华人民共和国刑法》第二百八十五条第一款的规定,犯本罪的,处三年以下有期徒刑或者拘役。单位犯本罪的,对单位判处罚金,并对其直接负责的主管人员和其他直接责任人员,依照上述规定处罚。
- 请勿利用漏洞进行非法活动,否则将承担相应的法律责任。
漏洞复现
由于本漏洞可执行高权限操作,危害性极大,因此不对细节进行详细展开。仅仅用来演示,你可以针对自己的系统副本进行对应的测试以进行漏洞复现。
复现预期
src包下的Log4j2中的日志打印存在CVE-2021-4428漏洞,直接在Log4j2执行JNDI注入,可以直接拉起Windows的计算器应用。效果图如下:
环境
本复现DEMO需要以下环境:
Windows操作系统。
nodejs环境,无明确版本要求。
java环境,无明确版本要求,本DEMO是在Java 8的环境下编写的。
log4j日志库,版本需在漏洞版本范围,本DEMO使用2.13.3版本。
步骤
克隆本项目后,进入项目根目录执行:
- cd http-server
- # 安装
- npm i
- # 启动服务
- node index
然后执行src包下的main方法即可进行复现操作。
本文转载自微信公众号「码农小胖哥」,可以通过以下二维码关注。转载本文请联系码农小胖哥公众号。