·xss文件上传漏洞

·xss文件上传漏洞

本质:对上传的文件不加限制的漏洞,例如上传PHP文件。

面对一定程度上的防护,我们应该如何绕过。

一·,一句话木马:

<?php

Eval($.post{})>

::$DATA ([‘pass’]);

?>

再url栏对pass进行赋值,可实现类似cmd命令的操作。

Eval():将括号内的语句当作PHP语句进行执行。

二,工具:webs hell,可以通过它传递任意php代码,让其去执行,并且是可视化操作。

三,靶场:upload-labs(注意要使用老版本的PHP study,不然无法运行)。

  • 绕过方法
  1. 若过滤.php,可以将其改为.ph51上传(我们可以通过尝试 php3、php5、php*这种后缀名尝试,PHP5 文件实际上就是.PHP 文件,只不过代码由 PHP5 引擎解析。PHP5 是一种 PHP 版本间的区分,该后缀名并不常见,另外还有.PHP2、.PHP3 和.PHP4 文件。而当前最新的 PHP 版本为 PHP7)。
  2. 存在 js 前端判断,通过删除前端代码中的 checkfile(),使前端无法对上传的文件进行判断。
  • 先上传一个符合要求后缀的文件,使用抓包软件进行抓包,发送成功后将文件名改为.php,再放包。
  • 开代理进行抓包,看过滤位置在前端还是后端。
  • 在前端过滤的话,更改文件后缀让其运行。
  • 将文件后缀改为原后缀,重发,让其运行。
  • 复制链接,将其添加到webs hell上,得到shell。
  1. 如果服务端代码是通过 Content-Type (白名单)的值来判断文件的类型,那么就存在被绕过的可能,因为可以将其修改为可以通过的类型。

4,超文本入口:.htaccess,可以重新定义规则,例如:

:AddType application/x-httpd-php .jpg

这个指令代表着.jpg 文件会当做.php进行执行,但检测时,会被识别为jpg文件。

5,用 5.php. .绕过

代码运行最后得到的后缀为"." 不在黑名单中 然而又用原来的 5.php. .来拼接路径 由于 windows在文件命名中会删除.和空格 所以最终得到的是 5.php 因此绕过了黑名单限制。

补充知识:php 在 window 的时候如果文件名+"::$DATA"会把::$DATA 之后的数据当成文件流处理, 不会检测后缀名,且保持"::$DATA"之前的文件名 他的目的就是不检查后缀名。所以我们上传的文件绕过了检测,会被执行。

6,大小写绕过

 $file_ext = strtolower($file_ext); //转换为小写 这个函数会将文件后缀名转化为小写 如果没有这类型的函数进行黑名单的检测,我们可以考虑使用大小写绕过的方式进行文件上传。 例如 pHP、PHP、PHp。

7、空格绕过 $file_ext = trim($file_ext); //首尾去空 会将文件后缀名前后的空格去除 在没有这种函数的情况 下,我们可以使用在后缀名后面加空格的方法绕过黑名单检测。

8、加点绕过

$file_name = deldot($file_name);//删除文件名末尾的点 在没有这类型函数的情况下,我们可以在文件名后加.绕过黑名单。

9、::$DATA 绕过

补充知识:php 在 window 的时候如果文件名+"::$DATA"会把::$DATA 之后的数据当成文件流处理, 不会检测后缀名,且保持"::$DATA"之前的文件名名可以改成 1.php::$DAT

10、综合型绕过,具体得根据代码是如何过滤的来设定

用 10.php. .绕过代码运行最后得到的后缀为"." 不在黑名单中 然而又用原来的 10.php. .来保存文件,因此绕过了黑名单限制。

11、双写绕过

阅读代码 关键代码如下

$file_name = trim($_FILES['upload_file']['name']);

$file_name = str_ireplace($deny_ext,"", $file_name);

$temp_file = $_FILES['upload_file']['tmp_name'];

$img_path = UPLOAD_PATH.'/'.$file_name;

if (move_uploaded_file($temp_file, $img_path)) {

$is_upload = true;

}

发现依旧是用上传的文件名来拼接路径并保存文件 没有对文件重命名,只是用了 str_ireplace()函数

来检测(此函数无视大小写) 如果文件名含有黑名单里面的字符串 就替换为空

但是只替换一次 并没有进行正则匹配或者是循环匹配敏感字符 因此只要双写 php 即可 因为是从

左往右读的 所以替换为空后 还是 php。pphphp、phphpp 都可以尝试

12、get 型 00 截断

需要 php 版本<5.3.4,并且 magic_quotes_gpc 关闭。

上传 zoe.php 用 BP 抓包修改参数,把 upload/后面加上 zoe.php%00(即图二),下面的

filename=”zoe.php”改为 zoe.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/740325.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言 - 各种自定义数据类型

1.结构体 把不同类型的数据组合成一个整体 所占内存长度是各成员所占内存的总和 typedef struct XXX { int a; char b; }txxx; txxx data; typedef struct XXX { int a:1; int b:1; …

字节一面:TCP 和 UDP 可以使用同一个端口吗?

数据包是计算机网络通信的核心&#xff0c;包含头部和数据负载。TCP和UDP协议在传输层使用端口号区分服务和应用。操作系统通过IP头部中的协议字段和端口号来管理网络流量&#xff0c;确保TCP和UDP流量即使共用端口号也不会相互干扰。 在现代计算机网络中&#xff0c;数据传输…

基于Springboot的代驾管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的代驾管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&…

【DAY11 软考中级备考笔记】数据结构 查找和排序

数据结构 查找和排序 3月12日 – 天气&#xff1a;晴 1. 顺序查找 顺序查找就是简单的从头一个一个的进行比较&#xff0c;注意它的平均查找长度 2. 折半查找 折半查找和二叉排序树一致&#xff1a; 优点&#xff1a;查找效率很高 缺点&#xff1a;要求必须是循序存储并且表中…

《计算机网络》考研:2024/3/11:2.1.6-习题精选(5、6题暂未完成)

2024/3/11 2.1.6 习题精选 一、单项选择题 我的答案&#xff1a;1.D 2.A 3.C 4.B 5.A 标准答案&#xff1a;1.D 2.A 3.B 4.B 5.A 3、【解】&#xff1a; 并行传输的特点&#xff1a;距离短、速度快。 串行传输的特点&#xff1a;距离长、速度慢。 在计算机内部通常为了保证速…

基于 Jenkins 搭建一套 CI/CD 系统

一、CI/CD环境介绍 本次要实现如下效果&#xff0c;开发人员完成功能开发并提交代码到gitlab仓库&#xff0c;jenkins自动完成拉取代码、编译构建、代码扫描&#xff08;sonarqube&#xff09;、打包&#xff0c;再自动化完成部署到Tomcat服务器提供访问。 环境准备三台Centos…

机器学习/深度学习 模型修正能力

一、模型修正 在了解模型修正能力之前&#xff0c;我们现在了解下‘模型修正’。 在深度学习模型训练中&#xff0c;模型通过反向传播计算损失函数的梯度&#xff0c;基于梯度利用梯度下降等优化算法更新模型参数以最小化损失函数。这个过程被称为‘模型修正’。 二、模型修正…

Linux - tmux命令

0、常用参数 tmuxnew-s<name> 新建名为name的会话&#xff08;无-s参数则默认以数字命名&#xff09; &#xff08;常用&#xff09; tmux a 恢复上一次的会话 &#xff08;常用&#xff09; tmux a-t<name> 恢复&#xff08;attach&#xff09;名为name的会话 &a…

springboot/ssm甘肃印象网站Java地区特产文化交流管理系统web

springboot/ssm甘肃印象网站Java地区特产文化交流管理系统web 基于springboot(可改ssm)vue项目 开发语言&#xff1a;Java 框架&#xff1a;springboot/可改ssm vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&#xff1a;…

搜索引擎SEO策略介绍

baidu搜索&#xff1a;如何联系八爪鱼SEO baidu搜索&#xff1a;如何联系八爪鱼SEO baidu搜索&#xff1a;如何联系八爪鱼SEO 第一、 关键词的选择策略&#xff1a; 1、门户类的网站关键词选择策略&#xff1a; 网站每个页面本身基本都包含有关键词&#xff1a;网站拥有上百…

Linux上部署zabbix 6.x

建议大家使用Rocky Linux 8.X https://download.rockylinux.org/pub/rocky/8/isos/x86_64/Rocky-8.9-x86_64-minimal.iso 1> 配置安装yum源 [rootzabbix ~]# yum install https://mirrors.huaweicloud.com/zabbix/zabbix/6.2/rhel/7/x86_64/zabbix-release-6.2-3.el8.noarc…

Centos7安装Clickhouse单节点部署

&#x1f388; 作者&#xff1a;互联网-小啊宇 &#x1f388; 简介&#xff1a; CSDN 运维领域创作者、阿里云专家博主。目前从事 Kubernetes运维相关工作&#xff0c;擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、开源软件部署维护…

Go——下划线

"_"是特殊标识符&#xff0c;用来忽略结果。 1. 下划线在import中 在golang中&#xff0c;import的作用是导入其他package。 import下划线的作用&#xff1a;当导入一个包时&#xff0c;该包下的文件里所有init()函数都会被执行&#xff0c;然而&#xff0c;有些时候…

FreeRTOS学习笔记-基于stm32(5)列表和列表项

一、列表与列表项简介 列表是FreeRTOS中的一种数据结构&#xff0c;类似双向循环链表。用来跟踪FreeRTOS中的任务。列表项就是存放在列表中的项目。 二、列表 列表结构体&#xff1a; typedef struct xLIST {listFIRST_LIST_INTEGRITY_CHECK_VALUE //校验值c…

Elasticsearch基础操作

一、Restful接口 Elasticsearch通过RESTful接口提供与其进行交互的方式。在ES中&#xff0c;提供了功能丰富的RESTful API的操作&#xff0c;包括CRUD、创建索引、删除索引等操作。你可以用你最喜爱的 web 客户端访问 Elasticsearch 。事实上&#xff0c;你甚至可以使用 curl …

k8s简单架构图

背景 k8s目前应用的很广泛&#xff0c;它其实也是采用分布式系统中最常见的一个master管理节点多个worker节点的方式构成的&#xff0c;本文就简单看下k8s的架构 k8s架构图 1.管理节点master&#xff0c;master节点主要有三个模块构成 1.1 APIServer模块&#xff1a;这个模块…

记录 Dubbo+Zookeeper 学习Demo

DubboZookeeper ZookeeperZookeeper 下载可能出现的问题 辅助程序下载dubbo-admin项目打包工程打包常见问题 SpringBoot集成Dubbo项目依赖定义服务接口服务端实现服务端配置依赖代码实现 消费端实现服务端配置依赖代码实现 启动 结合Dubbo官网学习如何完成SpringBootDubboZooke…

关于tomcat服务器配置及性能优化的20道高级面试题

1. 请描述Tomcat服务器的基本架构和组件。 Tomcat服务器的基本架构主要包括Server、Service、Connector和Container等组件。具体来看&#xff1a; Server&#xff1a;是Tomcat中最顶层的容器&#xff0c;代表着整个服务器。它负责运行Tomcat服务器&#xff0c;例如打开和关闭…

Mac上.bashrc转.zshrc时,设置PATH环境变量注意事项

由于最近系统坏了刚好就升级了&#xff0c;也就打算使用新的 zsh 了&#xff0c;反正平时在 WSL 和树莓派上用的都是 bash。按理来说应该没有什么困难&#xff0c;但还是遇到了一些问题&#xff0c;都是细节&#xff0c;需要记录一下&#xff0c;防止后续一些东西的更新比较麻烦…

React 教程

学习主要来源 React 教程 | 菜鸟教程 React 是一个用于构建用户界面的 JAVASCRIPT 库。 React 主要用于构建 UI&#xff0c;很多人认为 React 是 MVC 中的 V&#xff08;视图&#xff09;。 React 起源于 Facebook 的内部项目&#xff0c;用来架设 Instagram 的网站&#xff0…