BSH Servlet为何成为远程代码执行的高危组件?
泛微OA远程代码执行漏洞批量扫描脚本
BSH Servlet的远程代码执行漏洞在安全圈内早已不是新闻,但这个看似老生常谈的话题背后,隐藏着令人细思极恐的技术细节。作为一个允许直接执行BeanShell脚本的接口,它本质上为攻击者打开了一条直达系统内核的捷径。
脚本引擎的双刃剑特性
BeanShell作为轻量级脚本语言,其设计初衷是提供动态执行Java代码的能力。BSH Servlet将这个功能直接暴露在Web层,相当于把系统的控制台搬到了公网上。攻击者只需要构造一个简单的HTTP请求:
GET /weaver/bsh.servlet.BshServlet?bsh.script=Runtime.getRuntime().exec("calc")
就能在服务器上执行任意命令。这种设计违背了最小权限原则,将本应受严格控制的脚本执行环境直接对外开放。
默认配置的安全缺失
更致命的是,许多企业在部署含有BSH Servlet的系统时,往往采用默认配置。这些配置通常缺乏必要的访问控制机制,既没有身份验证要求,也没有IP白名单限制。攻击者甚至不需要任何凭证,就能直接访问这个高危接口。
2021年某大型企业的安全事件就是典型例证。攻击者通过扫描发现暴露在公网的BSH Servlet,仅用一行脚本就获取了服务器完整控制权,导致核心业务数据泄露。事后调查发现,该接口已经对外开放超过两年,期间从未被正确配置过安全策略。
漏洞利用的低门槛
与其他需要复杂利用链的漏洞不同,BSH Servlet的利用几乎没有任何技术门槛。攻击者不需要理解复杂的内存布局,也不需要构造精密的ROP链,只需要具备基础的HTTP知识和简单的Java语法就能完成攻击。
这种低门槛特性导致该漏洞被广泛用于大规模自动化攻击。安全团队监测到的攻击流量显示,针对BSH Servlet的探测请求平均每天超过百万次,其中成功利用的案例不在少数。
防护措施的缺失与滞后
令人担忧的是,即使漏洞公开多年,仍有大量系统未能及时修复。部分企业由于业务连续性考虑,不敢轻易升级或禁用相关功能;另一些则根本不知道自己的系统中存在这个"定时炸弹"。
安全研究人员在最近的扫描中发现,全球仍有数万台服务器暴露着未受保护的BSH Servlet接口。这个数字在过去半年内仅下降了15%,修复进度远远跟不上新系统的部署速度。
面对这种情况,安全团队能做的不仅是及时打补丁,更需要重新审视整个系统的安全架构。毕竟,在数字化时代,一个被忽视的脚本接口可能成为整座"数字大厦"崩塌的起点。

参与讨论
这漏洞也太可怕了吧,随便一个请求就能执行命令
之前公司就因为这个中招了,数据全泄露了
为啥这么多企业都不修复啊,心真大
这种默认配置也太坑了,连个认证都没有
有没有人试过加IP白名单?效果怎么样
从技术角度看,这确实违背了最小权限原则
感觉这个比一般漏洞危险多了,利用太简单
我们系统好像也有这个,明天得赶紧查查
每天百万次探测?这也太疯狂了
这种老漏洞居然还能这么活跃,服了