您现在的位置是:娱乐 >>正文
文件上传漏洞攻击
娱乐3713人已围观
简介一个文件上传接口,如果只检查了文件扩展名,那它跟没检查差不多。2018年,某国内CMS曝出一个上传漏洞,攻击者把PHP代码写进一张图片的EXIF字段,文件后缀改成.jpg,上传成功后用本地文件包含漏洞 ...
一个文件上传接口,文件如果只检查了文件扩展名,上传那它跟没检查差不多。漏洞2018年,攻击某国内CMS曝出一个上传漏洞,文件攻击者把PHP代码写进一张图片的上传EXIF字段,文件后缀改成.jpg,漏洞上传成功后用本地文件包含漏洞一引,攻击服务器直接执行了里面的文件代码。整个链路不需要多高深的上传技术,一个Burp Suite改包就够了。漏洞
这就是攻击文件上传漏洞的典型面貌。它不复杂,文件但杀伤力极大。上传上传一个webshell,漏洞等于把服务器的大门钥匙交了出去。攻击者能读文件、写文件、执行命令、连数据库,甚至以此为跳板渗透内网。很多人觉得这种漏洞早该绝迹了,但你去翻翻漏洞平台,文件上传相关的提交量从来没跌出过前十。
问题出在哪?出在开发者的侥幸心理。前端JS校验后缀?抓包绕过。后端黑名单禁了.php?试试.php5、.phtml、.php.jpg,Apache在某些配置下照样当PHP解析。Content-Type检查?改一下请求头就行。这些绕过手法在网上流传了十几年,依然有效,因为总有人只做一层防护就觉得万事大吉。
我见过一个真实案例。某企业的OA系统,上传头像的功能只允许.jpg和.png。看起来没问题对吧?但后端用的是白名单校验文件名后缀,却忘了校验文件内容。攻击者上传了一个.jpg文件,里面全是PHP代码,然后利用系统的文件包含功能去引用这个“图片”。服务器一解析,代码就跑了。更离谱的是,上传目录还有执行权限。两个配置失误叠加在一起,直接导致服务器沦陷。
防御这件事,单靠一层根本兜不住。文件名要重命名,别用用户传上来的原始名字,../../etc/passwd这种路径穿越也是老套路了。后缀用白名单,但白名单本身不够,还得配合文件内容检测。图片就检查文件头魔数,FF D8 FF是JPEG,89 50 4E 47是PNG,对不上就拒绝。上传目录必须禁止脚本执行,Nginx里加一条location ~* \.(php|jsp|asp)$ { deny all; },Apache关掉Options +ExecCGI。这些配置不复杂,但缺一个都可能出事。
还有个容易忽略的点:上传后的文件存储位置。别放在Web根目录下能直接访问的地方。理想情况是存到独立的对象存储或者专用文件服务器,通过后端脚本读取后再输出给用户。这样即使传了恶意文件,也没法通过URL直接触发执行。
文件上传功能几乎每个Web应用都有,头像、附件、导入数据,到处都是入口。攻击面大,防御又容易出纰漏,这就是它长期活跃的原因。别指望WAF能挡住所有绕过,WAF规则更新永远滞后于攻击手法。真正靠谱的做法是在代码层面把校验做扎实,把权限收干净。一个上传点失守,整台服务器就可能变成别人的肉鸡。
Tags:
相关文章
注入扫描
娱乐注入扫描 凌晨两点,我盯着屏幕上那串十六进制代码,咖啡杯沿已经结了一层干涸的糖渍。目标服务器的防火墙日志像一条被切断的河流,流量在某个时间戳后突然断流——这是典型的注入点特征。我敲下第三组payloa ...
【娱乐】
阅读更多银川传销是怎么套人的
娱乐银川火车站出站口,一个穿白衬衫的年轻人举着牌子上写“接王哥”。我那次是去找朋友,他非说在银川做枸杞批发生意,一年能挣三十万。到了才发现,所谓“公司”在贺兰县一个老小区里,三室一厅,住着八个人,地上铺满 ...
【娱乐】
阅读更多不正当竞争赔偿标准
娱乐杭州一家做短视频剪辑软件的小公司,被同行抄走了核心算法和用户界面。官司打了两年,法院判赔120万。老板拿到判决书那天发了条朋友圈:“律师费花了40万,取证花了20万,两年没睡好觉,最后到手60万。这赔 ...
【娱乐】
阅读更多