游客发表
2019年夏天,济南漏洞我在济南经十路一家咖啡馆里,济南漏洞看一个穿格子衫的济南漏洞年轻人对着屏幕骂了句“这他妈也能行”。他叫李想,济南漏洞做安全测试的济南漏洞。那天他刚发现济南某区政务系统的济南漏洞一个接口,用身份证号就能直接拉出全部社保记录——不需要密码,济南漏洞不需要验证码,济南漏洞连token都懒得验。济南漏洞他把这个叫“济南漏洞”。济南漏洞
这不是济南漏洞什么高深的东西。李想说,济南漏洞就是济南漏洞开发图省事,把鉴权逻辑写在了前端。济南漏洞改个URL参数,济南漏洞就能从A用户跳到B用户。他给我演示了一遍:先登录自己的账号,把请求里的user_id从“10086”改成“10087”,页面刷新,跳出来的是另一个人的姓名、电话、家庭住址。整个过程不到十秒。
我问他,这算严重吗。他笑了,说你去问问济南搞黑产的,这种洞他们叫“捡钱洞”。因为不用挖,不用绕,直接就能用。那年济南刚推“无证明城市”,政务数据打通了三十多个部门。打通是好事,但打通之后,鉴权没跟上,就成了筛子。
后来我跟着李想去了一趟他接私活的地方——济南西边一个老国企的机房。机柜嗡嗡响,空调开到18度,运维老张穿着棉袄在啃煎饼。老张说,他们系统上线前也测过,但“测的是功能,不是安全”。功能测试就是点一遍菜单,能打开、能提交、能导出,就算过。没人会去试“把id改成别人的会怎样”。
李想补了一句:济南很多单位的开发模式是外包给本地小公司,三五个人,两个月交付。合同里写“符合等保要求”,但等保测评是另一回事。测评机构来了,看文档、看制度、看防火墙日志,很少真去手工测业务逻辑漏洞。于是那个“改id就能看别人数据”的问题,从开发到上线到测评,一路绿灯。
我后来自己试了几个济南本地的公共服务App。有一个查公积金的,登录后抓包,把手机号换成同事的,居然真返回了他的缴存明细。我没敢再往下试。这个洞如果被批量利用,等于全市公积金数据裸奔。但直到我写这篇东西的时候,那个接口还能用——只是需要先登录一个真实账号。
李想说,圈子里把这类问题叫“济南漏洞”,不是地域黑,是因为2018到2020那几年,济南的政务和民生系统集中上云、集中整合,速度快,安全投入没跟上。外地也有,但济南特别密集。他经手过的就有七八个:社保、医保、不动产、甚至一个区的幼儿园报名系统,都能通过改参数看到别人的信息。
有个细节我印象很深。他给我看了一张截图,是某系统后台的报错页面,直接显示了数据库连接字符串,用户名root,密码是“jinan@123”。他说这密码用了三年没改。我问他为什么不报给CNVD(国家信息安全漏洞共享平台)。他说报过,有的修了,有的回一句“内部系统,不对外”。
“不对外”三个字,就是最大的漏洞。因为很多系统虽然不直接对公网开放,但通过VPN、通过内网跳板、甚至通过一个弱口令的测试账号,就能进去。济南不少单位的内网和公网之间,只隔了一层纸。
2021年,济南某医院的一个预约挂号系统被曝出可遍历患者信息。李想说他早就知道,但没报。因为报过一次,对方第一反应是“你怎么证明”,第二反应是“删帖”。后来那个洞被一个学生发到网上,医院才连夜修。修的方式也很粗暴:把接口关了,挂号改成电话预约。用户体验倒退五年。
这就是济南漏洞的另一个侧面:发现容易,修复难。难的不是技术,是流程、是责任、是“多一事不如少一事”的心态。李想现在转行了,去了一家做车联网的公司。他说车联网也有漏洞,但至少车企怕出事,修得快。政务系统不怕,因为“不出事就没事”。
我最后一次见他是去年冬天,在济南西站。他指着候车厅的大屏说,那个信息发布系统,如果我能连上它的WiFi,就能改上面的字。我说你别试。他说放心,早就不干这个了。然后他笑了笑,补了一句:“但那个‘济南漏洞’的域名,我还留着。哪天想起来了,写个回忆录。”
我没问他域名是什么。有些漏洞,不修比修好。因为修了,就没人记得它曾经存在过。
```友情链接