任意文件上传漏洞需要web服务提供上传服务,比如上传头像,上传附件等,尽管web服务器限制了上传文件的类型,但是,依然有很多被绕过的场景。
ailx10
网络安全优秀回答者
网络安全硕士
去咨询
场景1:文件头过滤绕过
以图片上传为例,PNG的文件头89504E47,将其加入白名单,凡是不是89504E47开头的文件,都不允许上传
黑客只需给webshell脚本的二进制文件,人工添加89504E47,即可绕过文件头过滤检验,且不影响webshell本身的功能,掏出ghex,进入插入模式
轻轻松松绕过了
场景2:文件扩展名过滤绕过
黑名单,拦截php、jsp、asp等脚本文件,黑客发现 asa、cer、cdx可以有asp的解析效果,aspx有aps的解析效果,php3、php4、phtml有php的解析效果。于是聪明的程序员想到了,文件可写但不可解析,文件可解析但不可写入的思想。
场景3:利用条件竞争机制绕过
有些程序员,允许文件上传到服务器,需要1秒到时间判断是否合法,如果不合法,就直接删掉,聪明的黑客就利用这1秒的时间,一发入魂,即使删掉了文件,webshell已经生效了,
场景4:文件解压绕过
聪明的黑客利用解压失败,控制解压完webshell之后发生异常,利用程序员忽视解压失败的场景,成功释放webshell出来。另外,黑客还可以构造特殊的解压路径,覆盖系统文件,从而造成攻击,比如zip slip攻击,通过构造压缩文件名称,在其中添加../../实现目录穿越,如果能够覆盖/etc/crontab ,就能添加计划任务,实现远程命令控制。