您现在的位置是:百科 >>正文

文件删除漏洞

百科1人已围观

简介某次渗透测试,目标站点的文件上传功能过滤了后缀名,我绕过了它,上传了一个jpg。然后我试着把路径改成`../../../../tmp/shell.php`,服务器居然把文件写到了/tmp目录下。这不是 ...

某次渗透测试,文件目标站点的删除文件上传功能过滤了后缀名,我绕过了它,漏洞上传了一个jpg。文件然后我试着把路径改成`../../../../tmp/shell.php`,删除服务器居然把文件写到了/tmp目录下。漏洞这不是文件上传漏洞,这是删除删除漏洞——攻击者可以删除服务器上任意文件。

文件删除漏洞听着不如RCE唬人,漏洞但危害一点不小。文件删除`install.lock`就能重装系统,删除删除`.user.ini`或`.htaccess`能瘫痪整个目录的漏洞解析规则,删除`index.php`直接让站点白屏。文件更阴险的删除是配合竞争条件——删除临时文件、日志文件,漏洞或者删掉认证凭证文件,让管理员被迫重置密码,然后你拿着新密码登录。

这类漏洞多半出在“下载文件”功能里。开发者图省事,直接用`unlink($_GET['file'])`,以为加个`../`过滤就安全了。可过滤总有绕法——URL编码、双写、Unicode规范化,或者直接用绝对路径。我见过一个站,它把文件名base64编码后再传参,结果解码后没做任何校验,直接拼进`unlink()`。等于给攻击者递了一把万能钥匙。

还有一种更隐蔽的触发点:图片裁剪、压缩、转码功能。有些库会生成临时文件,处理完再删。如果文件名来自用户输入,且没有严格白名单,攻击者就能让程序删掉任意路径。比如某CMS的缩略图功能,文件名参数直接进`unlink($tmp_dir . $filename)`,攻击者把`$filename`改成`../../config.php`,站点配置就没了。

修复思路其实很朴素——别信任何用户输入。用随机字符串重命名临时文件,删除时只操作固定目录下的文件,用`realpath()`解析后检查前缀。更简单的做法是:干脆别用`unlink()`,把文件移到隔离区,让管理员手动确认。牺牲点便利性,换来的是一整类漏洞的根除。

我见过不少团队花大价钱买WAF、上扫描器,却忽略了自己代码里的`unlink()`。漏洞不挑地方,就怕你没想到。文件删除看似小事,真被删了核心文件,哭都来不及。

Tags:

相关文章

  • 成都技术需求

    百科

    成都的软件园里,凌晨两点还亮着灯的楼层越来越多。我上周去天府三街见一个做工业软件的团队,CTO指着窗外说,你看那些写字楼,以前是游戏公司扎堆,现在一半都改成了做硬科技和AI的。这变化快得让人来不及感慨 ...

    【百科】

    阅读更多
  • 做网站需要服务器吗

    百科

    做网站需要服务器吗?直接回答:需要,但你可能早就有了,只是没意识到。 去年我帮朋友修一个“打不开的网站”,他花三百块找人做了个企业官网,对方信誓旦旦说“包年维护”。结果三个月后页面全白,一问才知道,那 ...

    【百科】

    阅读更多
  • 日本网站大全

    百科

    日本网站大全?这题目听着像要列个黄页。可你真正打开浏览器,把那些域名挨个输进去,会发现所谓“大全”根本是个伪命题——日本网站的数量,比便利店里的饮料种类还多,而且更新换代的速度,快得让你昨天收藏的地址 ...

    【百科】

    阅读更多


友情链接