最近看到很多讨论 log4j 的那个 bug ,修复方案很多,但是基本都要动线上服务,我分享一种思路,大伙帮忙看下: 使用 nginx 来拦截指定关键字,不知道这样可行不
1
yanqiyu 2021-12-13 16:00:54 +08:00
类似于 WAF ,应该好使,但是你怎么保证你的关键字拦截包含了所有情况?
比如某个后端程序会对请求里面的 base64 字段解码后写日志,这时候关键字不就不好使了 |
2
amrom OP @yanqiyu nginx 拦截应该可以应对起码一半以上的情况,不能拦截文本中的内容,或者加密后的东西,只能当作一种临时方案,给后端服务留下时间修复
|
3
liuidetmks 2021-12-13 16:02:30 +08:00
有时候,参数是加密的,或者参数是 base64 之后的 ,不同业务甚至叠加了各种 encode
|
4
zeni123 2021-12-13 18:42:31 +08:00
还是得用 java instrumentation ,因为你不知道 你的包的依赖里面藏了一个 log4j
|
5
a398058068 2021-12-13 18:45:59 +08:00
spring boot + lombok 用 @sl4j2 注解 ,切换上层日志框架 基本 0 成本
|
6
BeautifulSoap 2021-12-13 18:48:04 +08:00
拦截不光要拦截 url 还得拦截 post/put 等的 payload
通过车 websocks 的话也要处理 还有上传的文件内容、文件名之类的 |
7
zeni123 2021-12-13 18:54:18 +08:00
@BeautifulSoap 两个值加起来的这种已有可能成功吧 ,可以用特殊字符 log.info("value is {} and {}", var1,var2); 可能性太多了
|
8
podel 2021-12-13 19:00:55 +08:00
有很多陈年老服务甚至都不维护了。一丁点配置改动都不敢动。
楼主应该说的这种情况。 |
9
xuanbg 2021-12-13 19:29:03 +08:00
拦截肯定不能完全拦住,那就等于没拦。
pom 文件里面指定一下版本再重新打包发布很难吗? |
10
izoabr 2021-12-13 22:55:27 +08:00
没用,都用 WAF 拦都抗不过一会儿一个变种 payload
|
12
ikas 2021-12-14 13:47:01 +08:00
如果你的部署没有禁止 mbean 连接,可以使用 mbean 动态修改配置...
1.打开 jconsole,连接你的 app,然后找到 org.apache.logging.log4j2.. 2.找到 操作>getConfigText ,参数填写 utf-8,然后执行获取当前配置,复制配置,修改好 3.找到 操作>setConfigText,参数填写(配置 text,utf-8),然后执行 |
13
fengjianxinghun 2021-12-14 15:14:55 +08:00
甚至二进制文件里带 jndi 。。。。
``` https://twitter.com/zhuowei/status/1469176410170437634 Zhuowei Zhang @zhuowei ghidra_10.0.2_PUBLIC $ find . -name "*.jar"|grep log ./Ghidra/Framework/Generic/lib/log4j-core-2.12.1.jar ./Ghidra/Framework/Generic/lib/log4j-api-2.12.1.jar ./Ghidra/Features/GhidraServer/data/yajsw-stable-12.12/lib/core/commons/commons-logging-1.1.jar crap 1:25 PM · Dec 10, 2021 https://twitter.com/zhuowei/status/1469186818549719042 Zhuowei Zhang @zhuowei Ghidra's vulnerable to log4j: __attribute__((__section__(".note.${jndi:ldap://127.0.0.1:1234/abc}"))) int a = 1; int main(){} $ gcc hello.c $ nc -l 1234 Load into Ghidra; it connects to 127.0.0.1:1234. Ghidra 10.0.2, macOS OpenJDK Corretto 11.0.4.11.1 2:06 PM · Dec 10, 2021 ``` |