加入收藏 | 设为首页 | 会员中心 | 我要投稿 站长网 (https://www.0599zz.com/)- 操作系统、建站、物联安全、数据计算、机器学习!
当前位置: 首页 > 服务器 > 安全 > 正文

PHP服务器安全审计:90%高危漏洞藏于配置末行

发布时间:2026-11-10 14:36:40 所属栏目:安全 来源:DaWei
导读:  那天中考刚结束,我蹲在服务器机柜前啃半截冷掉的肉夹馍,油滴到键盘F键上,按起来黏手。隔壁老王隔着隔断墙喊“老张你那PHP又崩了?我公众号后台进不去!”——他卖卤煮的,公众号连着扫码点单,二维码贴在砂锅盖上,蒸汽一熏就

  那天中考刚结束,我蹲在服务器机柜前啃半截冷掉的肉夹馍,油滴到键盘F键上,按起来黏手。隔壁老王隔着隔断墙喊“老张你那PHP又崩了?我公众号后台进不去!”——他卖卤煮的,公众号连着扫码点单,二维码贴在砂锅盖上,蒸汽一熏就糊。我含糊应着,顺手把抹布拧干,抹布是湿的,拧完直接搭在机箱散热口,反正风扇早就不转了。


  我原以为是代码问题。毕竟刚上线个抽奖模块,红包雨配了个Redis队列,我盯着日志查了俩钟头,tail -f跟看流水账似的,满屏200 200 200……结果凌晨三点翻到php.ini末尾,第842行:;cgi.fix_pathinfo=1 ——前面那个分号没了,被人手抖删了。就这一个字符,没注释,裸奔着,等于把PHP解释器直接塞给任意URL路径。谁都能往后面拼.php?随便拼。去年中考期间,有个补习班老师用curl测了个遍,顺手把我们客户数据表结构全拖走了,就因为那个分号缺了。不是黑客,是他女儿在学CTF,放假在家练手,顺手点开我们备案域名试了下——真他妈像推了就亏的菜,蒜泥白肉,成本才八块五,毛利看着高,但切片薄、蘸料贵、客人嫌蒜味重,推三回亏两回,我后来直接从菜单撕了。


文章配图,仅供参考

  冰柜压缩机一直在响,嗡嗡嗡,像台老拖拉机挂了二挡爬坡。我蹲那儿没动,肉夹馍剩下最后一口,懒得咽。手上被烫的那个泡,是昨天搬新烤箱时蹭的,水泡鼓在虎口偏左一点,按着发木。门口那只猫又来了,在脚边绕两圈,尾巴尖儿卷着打结,然后蹲下舔爪子,不理人。我盯着那行配置,突然想起上个月跟房东吵。他催涨租,说隔壁奶茶店月入二十多万,我笑出声:“您数过他们外卖单里有多少‘不放珍珠’?我后台订单备注栏里‘少糖、不加奶盖、换椰奶、不要小料、另附纸巾两张’这种单子占三成七——您去数数?”房东不吱声,掏出手机想查数据,我直接把手机递过去:“别查了,您看这儿。”点开他家物业群聊天记录,有人截图发了个“phpinfo()页面”,后面跟着三个问号。他脸一下就青了——那是他们自己装的CMS后台,连admin路径都懒得改,默认开着phpinfo。我说:“您那系统比我摊上剩的藕盒还脆。”


  外卖催单那个提示音又来了,“嘀嘀嘀——订单超时预警”,短促,带点金属颤音。我没理。旁边卖煎饼果子的老刘探头过来借火,手里捏着根皱巴巴的烟:“老张,你那啥PHP是烧锅炉的?咋还整出火情了?”我把打火机递过去,看他点烟时小指翘得老高,像在拨琵琶。他吸一口,吐出来:“我们老板前天还在群里发《餐饮数字化转型白皮书》,说要搞‘数据驱动决策’,结果收银系统里‘抹茶千层’销量最高——其实是所有下单人都写‘不要千层’,只留‘抹茶’俩字,后厨手滑当正经品项录进去了。”我点点头,心想这事儿多像php.ini里那一长串disable_functions:明明写了proc_open、exec、system,但最后几行被某次更新悄悄覆盖了,没人翻到底。不是没人审,是审到第790行就累了,觉得“差不多得了”。就像我老婆前两天看菜单说:“你这椒盐排条标价38,可炸排条油得够,盐得匀,椒得现焙,一锅最多十块,炸两锅你就亏。干脆砍成32,客人觉不出差,你还落两块钱喘气钱。”我没听,结果上周末连卖三天,返单率不到两成——排条硬了,面衣吸油太多,端出去客人第一筷就搁筷子,第二筷就拍照发朋友圈配文“预制菜实锤”。


  去年中考期间,我让实习生小陈跑一次全站安全扫描,他扫完甩给我报告PDF,第5页结论写“高危漏洞共0处”。我让他重跑,他嘟囔着说“插件最新版,规则库刚升级”,我抽了支笔,在打印出来的首页右下角画了个叉,再划一道斜线,变成个X,然后把报告垫在咖啡杯底下——杯底水渍洇开,把那个X慢慢晕成了个墨团。第三天下午,补习班那个老师打电话来,语气挺客气:“张工,你们数据库备份目录能直访,我下了三份,一个是学生手机号,一个是家长微信昵称,一个是课时余额……”我听着,左手无意识地掰手指,中指卡在关节处有点疼。挂电话后我打开配置文件,光标滚到底,一行一行往上拖,速度越来越慢,最后停在842行——那儿没分号,但更吓人的是,上面三行,写着;disable_functions = exec,passthru,shell_exec,system,proc_open,popen,eval,可等我细看,最后两个函数中间多了个空格:popen, eval——空格把eval从禁用列表里单独剥出来了。不是漏写,是格式错位。就像卤煮锅里漏了一颗八角,汤不香,但谁会专门捞八角数?


  我合上笔记本,肉夹馍早凉透了,馅儿缩成一小团。隔壁老王又喊:“老张!扫码支付到账了!六十八!”我“嗯”一声,没动。手机震了一下,是银行App推送:“账户转入¥68.00”。我忽然想起上礼拜来吃饭的程序员阿哲,总坐靠窗第三张桌,每次来点碗牛肉面,多加豆芽和醋,面快吃完时拿牙签剔牙,然后掏出U盘接笔记本,边输命令边念叨“/etc/php/8.1/apache2/php.ini——这个路径记混了三次”。他上个月跳槽去搞信创中间件,走之前在我摊子吃最后一顿,说:“老张,优胜劣汰这词儿,咱们干这行的,不该理解成谁活下来了,该看成谁死得不够快——死得快的,bug早暴露了;死得慢的,还在生产环境跑着disable_functions里缺个空格的代码。”他付钱时找零,硬币在油腻的塑料盘里滚了三圈才停住,我弯腰捡,袖口蹭过键盘,F键上那点油,又沾上了。


  我起身时膝盖咔一声。抹布还搭在机箱口,湿的。冰柜还在嗡嗡响。门口那只猫已经不见了,地上留一撮灰白猫毛,卷着,沾了点灰。

(编辑:站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!