某贸易公司的oa系统由于存在系统漏洞

上周三下午两点,某贸宁波某贸易公司的易公由于财务小张正要把一笔38万的货款审批推给老板,OA系统突然弹出一串乱码。系统她刷新了三次页面,存系跳出来的统漏不是审批界面,而是某贸一个挂着公司logo的空白页,上面只有一行字:“您的易公由于账户权限已失效,请联系管理员。系统”小张以为是存系自己账号出了问题,打电话问IT,统漏结果IT那边已经炸了锅——全公司两百多号人,某贸有一半登不进系统,易公由于另一半登进去的系统,看到的存系订单数据全是乱序的。

问题出在OA系统的统漏文件上传接口上。这家公司用的是三年前外包定制的一套办公系统,当时图便宜,签的是某家小工作室,交付之后只做了基本的功能测试,安全测试压根没做。技术负责人老周后来跟我聊,说那个上传接口连最基础的文件类型校验都没有,用户可以把.jsp文件伪装成.jpg传上去,服务器直接解析执行。攻击者就是利用这个漏洞,传了一个webshell,拿到了服务器权限。

拿到权限之后的事情更离谱。这家公司的OA数据库和文件服务器在同一台机器上,没有做任何隔离。攻击者翻了不到十分钟就找到了财务模块的数据库连接字符串,明文写在配置文件里。老周说他们之前一直觉得“内网系统没人会攻击”,所以数据库密码用的是admin123。我听到这儿的时候,脑子里只有一个念头:这不是漏洞,这是敞着门请人进来坐。

更麻烦的是数据被动了手脚。攻击者没有直接删库,而是把部分订单的金额字段改了。比如一笔原本12万的单子,被改成了1.2万。财务那边如果没仔细核对,直接按系统里的数字做账,月底对账的时候就是一笔烂账。小张后来跟我说,她那天下午手动核对了四十多笔订单,眼睛都快看花了。IT那边临时把OA下线,切回了Excel审批流程,老板在微信群里发了三次“大家先用手工单”,语气一次比一次急。

这件事暴露出来的问题不止是技术层面的。我翻了一下这家公司的IT制度,发现他们连最基本的漏洞扫描都没做过。老周说每年预算里IT这块就只够维护服务器和买杀毒软件,渗透测试的报价单他提过两次,都被财务以“没必要花这个钱”给拒了。可这次事件之后,公司停摆了大半天,加上数据修复和后续的客户解释成本,损失远远超过一次渗透测试的费用。有些账,不是这么算的。

后来我帮他们联系了一个做安全应急响应的团队,对方来了之后第一件事就是查日志。结果发现攻击者其实在系统里待了将近一周,前几天都在踩点,没动手。也就是说,如果这家公司有任何一个人每天看一眼服务器日志,或者装一个简单的入侵检测工具,这事完全可以在造成实际损失之前被拦下来。但他们没有。服务器日志文件已经涨到了2个G,没人看过。

现在这家公司的OA已经重新部署了,换了新的供应商,做了基础的安全加固。老周说老板批了一笔安全预算,虽然不多,但至少能买个商业版的WAF。我问他这次最大的教训是什么,他想了想说:“以前总觉得安全是成本,现在才知道安全是保险。不出事的时候觉得白花钱,出了事才知道那点钱根本不算什么。”

小张那边倒是恢复得挺快。她跟我说,现在每次点“提交审批”之前,都会下意识看一眼金额对不对。这个习惯,是那次乱码事件给她留下的后遗症。