打印 上一主题 下一主题

三、文件上传漏洞:从图片到服务器的跨越

[复制链接]
跳转到指定楼层
楼主
发表于 昨天 16:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查看 : 13|回复 : 0
三、文件上传漏洞:从图片到服务器的跨越3.1 什么是文件上传漏洞?
文件上传功能是Web应用的核心交互模块,但若未实施严格的安全控制,可能成为攻击者植入恶意代码的入口。文件上传漏洞允许攻击者上传恶意文件(如WebShell)到服务器,从而获取服务器控制权。
3.2 文件上传漏洞的危害
此类漏洞的危害性体现在两方面:
  • 直接系统控制:上传恶意脚本(如PHP、JSP)可获取服务器Web目录执行权限,导致数据泄露或服务中断
  • 横向渗透风险:若上传文件包含Webshell,攻击者可进一步探测内网服务,扩大攻击面

根据2024年OWASP Top 10报告,文件上传漏洞连续三年位列Web应用安全风险前十。
3.3 文件上传漏洞的攻击过程3.3.1 漏洞复现示例
攻击者通过以下步骤利用漏洞:
  • 构造恶意文件:生成包含PHP代码的shell.php.jpg文件,内容为<?php system($_GET['cmd']); ?>
  • 篡改Content-Type:在Burp Suite中将请求头的Content-Type从image/jpeg改为application/x-php
  • 双重扩展名绕过:利用服务器解析规则漏洞,上传shell.php.jpg后,通过访问/uploads/shell.php.jpg?cmd=id触发代码执行

关键请求包:
[size=12.573px]text



POST /upload.php HTTP/1.1Host: upload-labs.localContent-Type: multipart/form-data; boundary=----WebKitFormBoundaryABC123------WebKitFormBoundaryABC123Content-Disposition: form-data; name="file"; filename="shell.php.jpg"Content-Type: application/x-php<?php system($_GET['cmd']); ?>------WebKitFormBoundaryABC123--
3.3.2 漏洞根源剖析
漏洞代码示例:
[size=12.573px]php



$upload_dir = "uploads/";$file_name = $_FILES['file'['name';$tmp_name = $_FILES['file'['tmp_name';// 未校验文件类型if (move_uploaded_file($tmp_name, $upload_dir . $file_name)) {    echo "上传成功";}
核心问题:
  • 依赖客户端$_FILES['file']['name']作为文件名,未进行白名单校验
  • 未设置uploads目录的execute权限禁用
  • 未对文件内容做哈希校验,无法检测嵌入的恶意代码

3.4 文件上传漏洞的防御策略3.4.1 多层防御体系
前端校验:限制文件选择类型(仅作为辅助,不可依赖)
后端校验:
  • 校验真实MIME类型(使用finfo_file()或getimagesize())
  • 生成随机文件名并存储在数据库
  • 设置上传目录为noexec

安全代码示例:
[size=12.573px]php



$allowed_types = ['image/jpeg', 'image/png';$finfo = finfo_open(FILEINFO_MIME_TYPE);$mime = finfo_file($finfo, $_FILES['file'['tmp_name');finfo_close($finfo);if (in_array($mime, $allowed_types)) {    $ext = pathinfo($_FILES['file'['name', PATHINFO_EXTENSION);    $safe_ext = ['jpg', 'png';    if (in_array($ext, $safe_ext)) {        $new_name = uniqid() . '.' . $ext;        move_uploaded_file($_FILES['file'['tmp_name', "uploads/" . $new_name);    }}
3.4.2 服务器配置加固
在Nginx中禁用危险扩展名执行:
[size=12.573px]text



location ~* \.(php|jsp|asp)$ {    deny all;}
为上传目录设置独立用户并限制权限:
[size=12.573px]bash



chown -R www-data:www-data uploads/chmod -R 750 uploads/
3.4.3 WAF防护
部署ModSecurity等WAF规则拦截可疑上传请求
3.5 小结
文件上传漏洞的防御需遵循"默认拒绝"原则,仅允许明确安全的文件类型与操作。通过多层校验、服务器加固和持续监控,可将风险降至最低。


黑客接单网,一个诚信可靠的黑客在线接单平台网站 - 论坛版权欢迎各位客户访问黑客接单网
黑客接单网,一个诚信可靠的黑客在线接单平台网站是一个专业的黑客在线接单服务平台
黑客接单网,一个诚信可靠的黑客在线接单平台网站聚集多位顶级黑客大牛于此
专业服务于网站攻击,网站入侵,软件开发,软件破解,聊天记录截取,手机定位,删帖,改贴,开房记录查询等各种网络服务
如果您有相关业务需求,请联系我们在线客服咨询,获取解决方案
黑客接单网,一个诚信可靠的黑客在线接单平台网站全体工作人员恭候您下达任务,我们誓必不负重托。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

HeiKeJieDan(黑客接单网)黑客接单网,是一个国际顶级黑客在线接单网站平台,平台聚集数十位IT界顶级黑客精英大神,软件-网站开发工程师,逆向破解工程师,以及后勤协助人员,网络在线全职兼职人员,强大的IT精英团队聚集,只为为您提供最优质可靠的网络安全技术服务。

联系我们

新加坡-缅甸-菲律宾-美国

0037259400637(服务时间:9:00-18:00)

hk@heike8.com

在线咨询新浪微博官方微信官方微信

黑客客服

网   址:WWW.HKJD.CC
邮箱号:hk@heike8.com
快手号:HeiKeJieDan
电报TG号:hkjd9988
国际客服:0037259400637

快速回复 返回顶部 返回列表