web-文件上传和upload-labs靶场通关

news2024/11/28 20:59:10

目录

前端过滤

uploads-lab-1:

后端验证

upload-labs-2:mime验证

upload-labs-3:黑名单绕过

upload-labs-4:黑名单绕过-.htaccess(这里得用旧版的phpstudy,新版的不行)

upload-labs-5:后缀名绕过

upload-labs-6:大小写绕过

upload-labs-7:后缀名加空格绕过

upload-labs-8:后缀名加点绕过

upload-labs-9:文件流或者空格点

upload-labs-10:双写绕过或者点空格点绕过

upload-labs-11:双写绕过

upload-labs-12:截断符%00绕过

upload-labs-13:文件包含、文件头检验

upload-labs-14

upload-labs-15:exif_imagetype()判断图像的类型

连接

知识点:

一句话木马


-----------------------
  webshell利用工具:
-----------------------
蚁剑:
    https://github.com/AntSwordProject/AntSword-Loader
    https://github.com/AntSwordProject/antSword
冰蝎:
    https://github.com/rebeyond/Behinder
哥斯拉:
    https://github.com/BeichenDream/Godzilla

文件上传靶场:
    https://github.com/c0ny1/upload-labs

 

前端过滤

绕过前端验证

①关闭js

②通过bp抓包修改文件的后缀名

uploads-lab-1:

可以看到页面有一个弹窗,弹窗就联想到是前端的js代码的alert,判断他是js进行验证。

 关闭js之后,文件上传成功

打开之后就可以看到我们的phpinfo()

后端验证

知识点:

1.通过php对文件进行验证

2.Content-Type(MediaType),即是Internet Media Type,互联网媒体类型,也叫做MIME类型。

3.上传.htaccess文件,可以帮我们实现:网页重定向,定义404错误,改变文件扩展名,运行/阻止特定用户访问某目录或者文件,配置默认文档。运行一个的时候,他会先去检测一下有没有.htaccess这个文件。如果有的话,就会先去访问这个.htacess文件,然后查看.htacess标签中是否存在我们要访问的文件。比如说在.htacess文件的标签中有04.jpg文件,他就会把文件的mime类型先转化为指定类型,然后再去执行。

4.文件流是指在计算机中读取或者写入文件的过程,data是默认方式

.htaccess内容为:
    <FilesMatch "04.jpg">
    SetHandler application/x-httpd-php
    </FilesMatch>

application/x-httpd-php:php的mime类型

防御:

        ①二次渲染。对图片进行加工处理,比如对你上传的图片在进行一次截图

        ②重命名。对上传的文件图片重命名,方法之你访问你上传的图片

绕过:

①抓包修改文件的mime类型

②使用 php3,php4,php5,phtml,phps 等拓展名绕过,他们都是可以被当成普通的php函数进行识别的。

③修改文件的后缀名。在windows系统中,要是后缀名后面加上了一个点或者空格的话,就是会默认帮你删除掉的,这事windows中特有的。在文件上传的时候,可以在后面加上 点和空格 来实行绕过

④Windows文件流特性绕过,文件名后缀名改成09.php::$DATA。  php::$DATA

⑤大小写绕过

⑥双写绕过(后缀名直接被删除掉 )

⑦截断符%00的运用。上传路径名%00截断绕过。上传的文件名写成1.jpg, save_path改成../upload/1.php%00,最后保存下来的文件就是1.php。

upload-labs-2:mime验证

这里和第一关不一样的提示,不是弹窗,有可能是后端验证

将Content-Type的内容改为:image/png,文件上床成功

 upload-labs-3:黑名单绕过

upload-labs-4:黑名单绕过-.htaccess(这里得用旧版的phpstudy,新版的不行)

编辑并且上床.htaccess文件

<FilesMatch "1.jpg">
	SetHandler application/x-httpd-php
</FilesMatch>

然后再上传1.jpg文件就可以了。可以看到后后缀名为jpg的文件解析成立php

upload-labs-5:后缀名绕过

在文件后缀名后面加上  点空格点,就可以了。

upload-labs-6:大小写绕过

upload-labs-7:后缀名加空格绕过

upload-labs-8:后缀名加点绕过

upload-labs-9:文件流或者空格点

①文件流绕过(就是后缀名绕过)

phpinfo.php::$data

②用点空格点绕过

upload-labs-10:双写绕过或者点空格点绕过

①双写绕过

②点空格点绕过

upload-labs-11:双写绕过

直接上传普通的php文件发现可以上传,点开图片链接,发现php被删除掉了。看到被删除,第一反应双写绕过

upload-labs-12:截断符%00绕过

直接在upload的path中写上php后缀的文件名加上截断符,上传的路径会拼接成/upload/1.php%00/1.jpg。但是此时由于截断符的存在,他会把后面的数据都截断掉,所以就会只剩下1.php。识别文件名的时候就是识别出文件名为1.php,然后包的请求体的内容自然也就会写在了1.php中。

 

upload-labs-13:文件包含、文件头检验

①就是把截断符改成hex编码进行绕过,再1.php后面加上hex00

注意:

使用POST传地址,POST不会对里面的数据自动解码,需要使用hex(十六进制编码)加上00截断。因此在本关不可以使用%00,需要使用00。

②上传图片马

图片马的生成

copy normal.jpg /b + shell.php /a webshell.jpg

文件包含访问路径

http://127.0.0.1:82/include.php/?file=upload/2020230726052227.jpg

 ③修改文件头

http://127.0.0.1:82/include.php/?file=upload/5720230726053046.gif

 

upload-labs-14

        本关使用了getimagesize()函数,尝试读取上传文件(图片)的大小,如果该函数能够成功读取上传文件的大小,就说明该文件是一个图片;如果不能成功读取,那么就说明该文件不是一张图片,是一个恶意文件。

有bug正常的图片也不行

upload-labs-15:exif_imagetype()判断图像的类型

①图片马

 ②gif文件头

 

连接

知识点:

①eval() 函数把字符串按照 PHP 代码来计算。该字符串必须是合法的 PHP 代码,且必须以分号

②·system() 输出并返回最后一行shell结果。可以将字符串执行成cmd的命令

③@:抑制报错,如果报错不会回显到前端

关于shell和webshell

shell实际上指的是一个接受由键盘输入的命令并将其传递给操作系统来执行的程序
Webshell:Webshell是黑客经常使用的一种恶意脚本,其目的是获得对服务器的执行操作权限,比如执行系统命令、窃取用户数据、删除web页面、修改主页等,其危害不言而喻。黑客通常利用常见的漏洞,如SQL注入、远程文件包含(RFI)、FTP,甚至使用跨站点脚本攻击(XSS)等方式作为社会工程攻击的一部分,最终达到控制网站服务器的目的。

一句话木马

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

①用get post request都可以,看后端用哪种方式来接收。有一些网站get是不行的

②post里面用来接收前端传递过来的参数,eval把传递过来的参数变成cmd命令执行

 

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

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

相关文章

探索南美专线:开启您的国际贸易之旅

​作为一个国际贸易从业者&#xff0c;您可能已经听说过南美专线。南美洲作为一个充满潜力的市场&#xff0c;吸引着越来越多的企业前来探索商机。南美专线是连接亚洲和南美洲的重要贸易通道&#xff0c;它为企业提供了便捷、高效的物流运输服务&#xff0c;助力您开拓南美市场…

Pycharm工具Python开发自动添加注释(详细)

方法自动添加参数注释 定义了一个函数&#xff0c;在函数下面敲入了三个双引号后&#xff0c;enter回车并没有自动出现注释&#xff0c;如图&#xff1a; 解决办法 Pycharm中依次打开File —> Settings —> Tools —> Python Integrated Tools&#xff0c;如图&…

android 如何分析应用的内存(十二)

android 如何分析应用的内存&#xff08;十二&#xff09; 上一篇介绍了ASan&#xff0c;这次介绍ASan的加强版HWASan HWASan的使用 从NDK r21和Android 10 开始&#xff0c;Android支持HWAsan。HWAsan仅仅支持arm64架构的设备。 系统级准备 HWASan需要系统的支持&#xf…

ZLMediaKit+wvp-GB28181-pro 安装文档

文章目录 前言1. 安装zlm1.1 镜像说明1.2 docker安装1.2.1 docker安装命令1.2.2 docker-compose安装 1.3. zlm配置和日志重点说明 2. 安装wvp2.1 目录结构说明2.1.1 导入idea2.1.2 sql文件夹自带初始化库脚本2.1.3 进入web_src 编译静态资源2.1.4 修改resources配置 2.2 wvp 启…

javafx实现拖拽复制功能

效果 代码 package cn.juhe.zjsb.test;import javafx.application.Application; import javafx.event.EventHandler; import javafx.scene.Scene; import javafx.scene.SnapshotParameters; import javafx.scene.control.Label; import javafx.scene.control.TextField; impor…

java语言agent探针技术使用

打包插件 使用了三款 spring-boot-maven-plugin maven-jar-plugin maven-assembly-plugin&#xff08;可用或不可用&#xff09;&#xff0c;用于打zip包 web打包插件 spring-boot-maven-plugin maven-assembly-plugin 打包后生成的MANIFEST.MF文件 Manifest-Version:…

【LeetCode】79.单词搜索

题目 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 单词必须按照字母顺序&#xff0c;通过相邻的单元格内的字母构成&#xff0c;其中“相邻”单元格是那些水平相邻或…

可可口乐题解

样例输入&#xff1a; cococala样例输出&#xff1a; 1思路分析&#xff1a; 这道题的 n n n是 8 8 8&#xff0c;所以可以无脑 d f s dfs dfs&#xff0c;那就变得非常简单了。 代码 (注释详解) &#xff1a; #include<iostream> using namespace std; char t[10]{…

flask中redirect、url_for、endpoint介绍

flask中redirect、url_for、endpoint介绍 redirect 在 Flask 中&#xff0c;redirect() 是一个非常有用的函数&#xff0c;可以使服务器发送一个HTTP响应&#xff0c;指示客户端&#xff08;通常是浏览器&#xff09;自动导航到新的 URL。基本上&#xff0c;它是用来重定向用…

我国数据出境制度实践进展

随着互联网在全球的普及和数字经济在全球的发展&#xff0c;数据跨境流动已经成为各个国家和地区重点关注的议题。数据的跨境流动同时具备个人权益保护、企业合规经营和各国监管合作与博弈三个维度&#xff0c;各国和地区近年来对个人信息的跨境流动高度重视&#xff0c;相继出…

《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(3)-再识Fiddler让你感性认识一下

1.简介 上一篇通过宏哥的介绍想必各位小伙伴或者童鞋们对Fiddler已经有了一个理性地认识&#xff0c;今天宏哥在从Fiddler的外貌介绍和分享一下&#xff0c;让小伙伴们或者童鞋们再对Fiddler有一个感性的认识&#xff0c;今天主要是对Fiddler的界面进行一个详细的介绍。 2.Fi…

饮用水、地下水除砷的方法——砷吸附树脂

砷&#xff08;As&#xff09;为非人体必需元素&#xff0c;既不溶解于水又不溶解于酸&#xff0c;在自然界有三价无机态 As(III)、五价无机态 As(V)以及有机砷MMA(甲基胂酸)、DMA(二甲基胂酸)、TMA(三甲基胂酸)等。 砷在水体中主要以三价和五价的无机酸形式存在&#xff0c;三…

Vue 渲染流程详解

在 Vue 里渲染一块内容&#xff0c;会有以下步骤及流程&#xff1a; 第一步&#xff0c;解析语法&#xff0c;生成AST 第二步&#xff0c;根据AST结果&#xff0c;完成data数据初始化 第三步&#xff0c;根据AST结果和DATA数据绑定情况&#xff0c;生成虚拟DOM 第四步&…

Citespace、vosviewer:揭秘最火热的学术文献绘图神器!

目录 专题一 文献计量学方法与应用简介 专题二 主题确定、检索与数据采集 专题三 VOSviewer可视化绘图精讲 专题四 Citespace可视化绘图精讲 专题五 R语言文献计量学绘图分析 专题六 论文写作 专题七 论文投稿 文献计量学是指用数学和统计学的方法&#xff0c;定量地分析…

【C++从0到王者】第十二站:vector基本使用

文章目录 一、vector基本介绍二、vector的基本使用三、vector\<char> 和string的区别四、vector接口介绍1.vector的模板参数2.构造函数3.迭代器4.size和max_size5.resize和reserve6.operator[]和at7.front和back8.data9.push_back和pop_back10.insert和erase11.assign12.…

C#月数计算器(主要用于社保、医保缴费月数计算)

1、为什么做这个&#xff1f; 工作中&#xff0c;经常需要计算参保人社保、医保缴费月数&#xff0c;之前都是在Excel中写一个DATEDIF公式&#xff0c;修改单元格中的日期&#xff0c;计算间隔的月数&#xff0c;公式如下&#xff1a; DATEDIF(起始日期, 终止日期, 返回类型) …

QT第二讲

思维导图 完善登录框&#xff0c;当登录成功时&#xff0c;关闭登录界面&#xff0c;跳转到新的界面中 loginscuueed.h #ifndef LOGINSUCCEED_H #define LOGINSUCCEED_H#include <QWidget>namespace Ui { class loginSucceed; }class loginSucceed : public QWidget {…

android数据的储存、文件的储存、SharedPreferences储存、SQLite的基本用法

一、文件的储存 1、将数据储存到文件中 Context类中提供了openfileOutput()方法&#xff0c;用来获取一个文件流&#xff0c;这个方法接收两个参数&#xff0c;第一个参数是文件名&#xff0c;在文件创建的时候使用的就是这个名称&#xff0c;注意这里指定的文件名不可以包含…

白话机器学习笔记(一)学习回归

最小二乘法 定义模型 表达式&#xff1a; f θ ( x ) θ 0 θ 1 x f_\theta(x)\theta_0\theta_1x fθ​(x)θ0​θ1​x &#xff08;常用 θ \theta θ表示未知数、 f θ ( x ) f_\theta(x) fθ​(x)表示含有参数 θ \theta θ并且和变量 x x x相关的函数&#xff09; 目标…

【每日一题】—— D. Prefix Permutation Sums (Codeforces Round 888 (Div. 3))

&#x1f30f;博客主页&#xff1a;PH_modest的博客主页 &#x1f6a9;当前专栏&#xff1a;每日一题 &#x1f48c;其他专栏&#xff1a; &#x1f534; 每日反刍 &#x1f7e1; C跬步积累 &#x1f7e2; C语言跬步积累 &#x1f308;座右铭&#xff1a;广积粮&#xff0c;缓称…