文件上传漏洞获取服务器,渗透测试-文件上传漏洞

article/2025/9/29 5:26:08

声明:文中出现的ip为练习靶场,本文仅供学习,旨在学习web安全,不允许任何侵权行为

WebShell与WebShell管理工具

文件上传漏洞概述

文件上传漏洞绕过

文件上传漏洞防御

一、WebShell与WebShell管理工具

什么是WebShell

webshell,简称网页后门,简单的来说它是运行在web应用之上的远程控制程序。

webshell其实就是一张网页,由php、jsp、asp、asp.net等这类web应用程序语言开发,但webshell并不具备常见网页的功能,例如登录、注册、信息展示功能,一般会具备文件管理、端口扫描、提权、获取系统信息等功能。拥有较完整功能的webshell,我们一般称为大马。功能简易的webshell称为小马。除此之外还存在一句话木马、菜刀马、脱裤马等等的名词,是对于webshell功能或者特性的简称。

webshell之php一句话木马

@eval($_POST[x]); ?>

获取POST请求参数中x的值,例如POST请求中传递x=phpinfo(); 那么 $_POST[x] 就等同于 phpinfo();

@是错误控制运算符,当将 @ 放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都被忽略掉。

eval() 将字符串当做PHP代码去执行。例如eval(‘phpinfo();’) 其中 phpinfo(); 会被当做PHP代码去执行。

我们通过该webshell,传递任意PHP代码,让其去执行,从而达到任意代码执行。

webshell管理工具

中国蚁剑 是一款开源的跨平台网站管理工具,也是一款webshell管理工具,它主要面向与合法授权的渗透测试安全人员以及进行常规操作的网站管理员。中国蚁剑的核心代码模板均改自于伟大的中国菜刀。

二、文件上传漏洞概述

什么是文件上传漏洞

文件上传漏洞是指文件上传功能没有对上传的文件做合理严谨的过滤,导致用户可以利用此功能,上传能被服务端解析执行的文件,并通过此文件获得执行服务端命令的能力。

三、文件上传漏洞绕过

1. 前端js限制绕过

(1)开启插件noscript

(2)改webshell文件后缀名上传,利用burpsuite抓包改回文件后缀名

2. 服务端MIME 类型验证绕过

利用burpsuite抓包,将报文中的Content-Type改成允许的类型

Content-Type: image/gif

Content-Type: image/jpg

Content-Type: image/png

afedfc4b7470039545a0f4601c26e36e.png

256d35aa8360400d8e07238be531ce19.png

3. 服务器文件内容验证-文件头

图片格式往往不是根据文件后缀名去做判断的。文件头是文件开头的一段二进制,不同的图片类型,文件头是不同的。文件头又称文件幻数。

常见文件幻数:

JPG:FF D8 FF E0 00 10 4A 46 49 46

GIF :47 49 46 38 39 61 (GIF89a)

PNG:89 50 4E 47

(1)第一种方法:文件前缀加GIF89a

上传一张将后缀名为png改成gif出现如下结果

f9b8a71355088c389dd6a7e0b61ea60a.png

这说明服务端对文件内容文件头进行了检测

fbe4ced03bc50ec84f22491e7b18af27.png

(2)第二种方法:找一个gif图片,在最后把木马加上

2d041826520c74560439972f42e958e8.png

访问上传成功之后的文件名

75d6d16eb6c3b8d5f8c88acae7b5bddb.png

使用 antSword 连接

d159359f219cd4aa5f6382d0c7819a92.png

4. 服务端文件扩展名验证-黑名单绕过

后缀名大小写绕过:服务端没有将后缀名转换为统一格式进行对比,导致可以上传后缀为pHp的文件,又因为windows操作系统大小写不敏感,所以 .pHp 扔回被当成PHP文件解析。

重写绕过:服务端将黑名单的后缀名替换为空,但仅进行一次。上传.phphpp后缀,替换php一次为空,则后缀为.php。

特殊可解析后缀绕过:黑名单规则不严谨,在某些待定环境中某些特殊后缀名仍会被当做PHP文件解析。php|php2|php3|php4|php5|php6|php7|pht|phtm|phtml基于debian和ubuntu的apt-get安装apache,默认对于文件解析如下。d77512ae4d868540b2b5a1e0fa56b6db.png

.htaccess 绕过

在 apache里,这个文件作为一个配置文件,可以用来控制所在目录的访问权限以及解析设置。即是,可以通过设置可以将该目录下的所有文件作为php文件来解析

.htaccess可以写入apache配置信息,改变当前目录以及子目录的Apache配置信息。

配置上允许.htaccess生效

Apache开启rewrite模块

Apache配置文件为AllowOverride All(默认为None)

< FilesMatch ''sec.jpg" >

SetHandler application/x-httpd-php

< /FilesMatch >

sec.jpg 即可以php脚本解析

5. 利用windows特性

6231193029f23778156df103b9dfb220.png

a423387367473203af3a206a5067950b.png

warning :未经授权,不得转载

声明:本文旨在为学习网络信息安全的同学提供指引帮助,维护网络空间的安全

有问题的小伙伴请在下方留言,喜欢就点个赞吧;关注我,带你一起写bug

知乎:叄贰壹

简书:带只拖鞋去流浪


http://chatgpt.dhexx.cn/article/a7fwFB7n.shtml

相关文章

php文件上传小结,文件上传总结

检测维度 javascript 检查没有流量产生&#xff0c;F12或者FireBug移除JS代码 MIME MIME检测&#xff0c;burp拦截后更改MIME类型 if($_FILES[userfile][type] ! "image/gif") { // check Content-type 目录路径 需要存储路径可控(或文件名完全可控) 00截断 $FilePat…

上传漏洞上传方法总结

title: 上传漏洞[汇总] copyright: true top: 0 date: 2018-07-31 22:40:47 tags: 上传漏洞 categories: 渗透测试 permalink: password: keywords: description: 对上传漏洞的大部分上传方式作总结。 最后必然失去的希望就是毒药啊。 个人对上传漏洞的理解在第一章节就说过了&…

php 文件上传抓包,详解文件上传漏洞

介绍 在现代互联网网站中,上传文件基本上是一种常见的功能,允许用户上传一些图片,视频以及其他类型的文件。如果网站出现文件上传漏洞,那么恶意用户就可以将可执行脚本程序上传到web服务器中,获得网站权限,进一步 gongji web服务器。 当上传文件时,如果服务端未对客户端…

文件上传漏洞总结

文件上传 文件上传漏洞产生的原理 文件上传漏洞是指用户通过界面上的上传功能上传了一个可执行的脚本文件&#xff0c;而WEB端的系统并未对其进行检测或者检测的逻辑做的不够好。 文件上传漏洞的危害 1、由于是上传的文件&#xff0c;所以文件由用户决定&#xff0c;上传we…

php 上传文件触发,PHP文件上传漏洞浅析

PHP文件上传漏洞的浅析。 文件上传简介 在一个正常的网站中&#xff0c;通常都会存在一些允许用户上传文件的地方。但是有一些上传功能的地方没有对用户上传的内容进行过滤&#xff0c;导致会上传木马到服务器并执行命令&#xff0c;甚至控制服务器的权限。 文件上传实现 前端代…

文件上传漏洞

文件上传漏洞 1. 文件上传功能 文件上传功能是大部分WEB应用的必备功能&#xff0c;站点常见文件上传点有&#xff1a;用户头像上传、社交类网站允许用户上传照片、服务类网站需要用户上传证明材料的电子档、电商类网站允许用户上传图片展示商品情况等。然而&#xff0c;看似…

java fckeditor 上传图片_java下FCKeditor上传图片问题

展开全部 先到tomcat->webapps里建立一个文件夹叫mysite。把FCKeditor里的/editor和fckconfig.js, fckeditor.js, fckstyles.xml, fcktemplates.xml四个文件copy到mysite文件夹里&#xff0c;因为别的文件对我32313133353236313431303231363533e58685e5aeb931333239303264们…

Consider defining a bean of type ‘com.course.server.mapper.TestMapper‘ in your configuration.

问题 Description:A component required a bean of type com.course.server.mapper.TestMapper that could not be found.Action:Consider defining a bean of type com.course.server.mapper.TestMapper in your configuration.解决 我用了mybatis&#xff0c;在mapper层忘记…

@ManyToMany mappedby

学生和老师就是多对多的关系。一个学生有多个老师&#xff0c;一个老师教多个学生。多对多映射采取中间表连接的映射策略&#xff0c;建立的中间表将分别引入两边的主键作为外键。jpa 对于中间表的元数据提供了可配置的方式&#xff0c;用户可以自定义中间表的表名&#xff0c;…

MapDB简单用法

MapDB提供了Java映射、集、列表、队列和其他由非堆或磁盘存储支持的集合。它是java集合框架和嵌入式数据库引擎之间的混合。它是Apache许可下的免费和开放源码。 如果处理GB级数据&#xff0c;请考虑使用非缓存存储容器&#xff0c;比如本篇提到的MapDB&#xff0c;而不要把庞大…

BaseMapper

* 1.公共的方法进行抽取,抽取到BaseMapper接口中,将用户操作的方法对象,转化为数据库能够识别的SQL语句 * 2.通过userMapper查找父级接口BaseMapper * 3.根据BaseMapper查找泛型对象User对象 * 4.根据user对象查找指定的注解TableName,获取表明 * 5.根据user对象的属性,动态获取…

MappedBy

对于mappedBy复习下&#xff1a; a) 只有OneToOne,OneToMany,ManyToMany上才有mappedBy属性&#xff0c;ManyToOne不存在该属性&#xff1b; b) mappedBy标签一定是定义在the owned side(被拥有方的)&#xff0c;他指向the owning side(拥有方)&#xff1b; c) mappedBy的含义…

Data Mapper

使用 Data Mapper分离数据源的Model和页面现实的Model&#xff0c;不要因为数据源的增加、修改或者删除&#xff0c;导致上层页面也要跟着一起修改 interface Mapper<I,O> {fun map(input:I):O }data class CarEntity(var no:String) data class CarModel(var num:String…

全网最详细的postman接口测试教程,一篇文章满足你

目录 目录 1、前言 2、接口理论 3、接口实例 一、POST 二、GET 4、总结&#xff1a; 1、前言 之前还没实际做过接口测试的时候呢&#xff0c;对接口测试这个概念比较渺茫&#xff0c;只能靠百度&#xff0c;查看各种接口实例&#xff0c;然后在工作中也没用上&#xff0c;…

简单粗暴的PostMan使用说明文档让你一片文章看懂PostMan怎么使用

PostMan功能简单介绍 创建文件夹 点击Collections创建新的文件夹&#xff0c;可以将不同的接口存入不同的文件夹中 点击右边三个点可以进行设置&#xff0c;Rename是重新命名 点击Add request&#xff0c;会在右侧创建一个get请求方式的request。 点击Add Folder&#xff0…

postman基础使用教程

Postman教程大全 - 简书推荐一款接口测试工具&#xff01;POSTMAN&#xff01;简单来说&#xff0c;四个词&#xff0c;简单实用大方美观&#xff01; Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件 Postman背景...https://www.jianshu.com/p/97ba64888894 …

不会接口测试?用Postman轻松入门(一)—— Postman实现get和post请求

测试行业现在越来越卷&#xff0c;不会点接口测试好像简历都已经拿不出手了&#xff0c;但很多小伙伴都会头疼&#xff1a;接口测试应该怎么入门&#xff1f;那么多的接口测试工具应该学哪个&#xff1f; 其实&#xff0c;接口测试工具&#xff0c;就像吃饭用的筷子&#xff0…

Postman快速入门(一)

一、基本介绍 postman是一款流程的接口调试工具&#xff0c;其特点就是使用简单&#xff0c;功能强大。使用角色也非常广泛&#xff0c;后端开发&#xff0c;前端人员&#xff0c;测试人员都可以使用它进行接口调试或测试。 下图是基本功能介绍 发送第一个请求 如果你是第一次…

Postman工具介绍以及使用方法教程(一)

Postman工具 1、postman简介 Postman最早是Google浏览器的一个插件存在的&#xff0c;因为Google退出国内市场&#xff0c;现在postman主要是以一个 APP的形式存在。 Postman最初设计上就是为接口测试而设计的&#xff0c;对于测试人员来说主要用来做接口测试。 2、postman的…

使用PostMan上传文件,有图易懂

现在&#xff0c;越来越多的人习惯用postman来测试接口。那么&#xff0c;关于如何使用postman来上传文件&#xff0c;本文进行讲解 1、将请求方式选择为post 2、填写接口地址 3、填写请求头 key&#xff1a;Content-Type value&#xff1a;multipart/form-data 4、填写Body…