声明:这里所有提供的信息仅供学习目的。所有引用的漏洞基于已披露信息。作者认为广泛的披露这些信息应该会产生更好的效果。
一、简介
2021年12月,log4j2的漏洞席卷世界,很多公司都连夜升级产品,安全公司也马不停蹄的提供各种解决方案。FullHunt公司发布的开源log4j漏洞扫描脚本github地址如下:
https://github.com/fullhunt/log4j-scan.git
log4-scanner:python编写的log4j漏洞扫描器。
支持检测漏洞:CVE-2021-44228、CVE-2021-45046漏洞的检测。
这篇文章里咱们就看一下这个log4-scanner的扫描功能,和是否能对项目中的漏洞进行检测。
二、安装
整个扫描器项目很小,压缩包只有17K。
运行需要python3环境。
pip3 install -r requirements.txt
进行安装需要的库。
查看帮助信息:
python3 log4j-scan.py -h usage: log4j-scan.py [-h] [-u URL] [-p PROXY] [-l USEDLIST] [--request-type REQUEST_TYPE] [--headers-file HEADERS_FILE] [--run-all-tests] [--exclude-user-agent-fuzzing] [--wait-time WAIT_TIME] [--waf-bypass] [--custom-waf-bypass-payload CUSTOM_WAF_BYPASS_PAYLOAD] [--test-CVE-2021-45046] [--dns-callback-provider DNS_CALLBACK_PROVIDER] [--custom-dns-callback-host CUSTOM_DNS_CALLBACK_HOST] [--disable-http-redirects]
三、测试
基本的扫描操作:
python3 log4j-scan.py -u
https://log4j.lab.secbot.local
没有漏洞显示结果:
有漏洞显示结果:
看源码主要是通过headers、params、data 传入注入信息。
由此可见,这个扫描还是对已经确定的url,而且也只能扫描出来header、data、json这种打印数据,对于大部分需要传固定参数的的注入还是无法扫描处理,比如:
这段代码,这种userName参数明显存在注入风险的,扫描器就无法扫描,需要在脚本中添加参数。
所以这个扫描器扫描不出漏洞,并不代表真的没有漏洞。
项目的说明中也说了:This is not intended to be a 100% true positive solution; False negatives may occur.
所以这个扫描器适合在大的方面检测一下有没有特别容易被发现被利用的漏洞。对于项目本身的log4j的修复,还是要在代码层面和依赖引用层面进行修复。