图片目录里有文件体积异常,用文本工具打开能看到脚本片段。第一次遇到会往复杂处想,其实漏掉的多是个小前提。

file --mime-type uploads/*.jpg | grep -v image
find . -name '*.jpg' -exec grep -l '<?php' {} \;

攻击者把可执行代码追加到图片末尾,靠包含方式触发执行。这一点先确认清楚,后面就不用反复试。

「图片后门」相关的日志我一般连着看前后五分钟,单看一条报错经常判断不出是哪一步失败。把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。

改动写完就同步给同事,下一个人踩同一个坑,成本还是你的。验证用真实数据走一遍,测试数据太干净,边界情况根本碰不到。

能分两步做的操作就别合成一步,中间看一眼返回值,出问题好判断。报错里带路径的,先去看那个路径在不在、权限对不对。

具体做法是,按文件头判断真实类型;扫描内容里的脚本标记;清理后加强上传校验。

改完照着核一遍,可疑文件被清除,图片目录类型全部正常。

作者 9823189