upload-labs1-17思路

1

直接写一个php文件测试一下,发现弹窗不让上传

原理很简单,就是把后缀名拿出来过滤一遍,而白名单就是弹窗的这三个

解决方法:

因为这是在前端防御的一个手段,所以直接在浏览器设置上禁用js就行了:

也可以用bp抓包然后直接改后缀

2

这关检测的是文件类型,也就是content-Type

那就直接抓包改文件类型content-Type:image/jpeg就搞定了

3

这关过滤了.asp,.aspx,.php,.jsp后缀名

根据这道题的httpd.conf文件的AddType application/x-httpd-php .php .php3.phtml,php3自动解析成php,所以后缀名改成php3就行了,这关方法仅限这道题

4

利用.htaccess文件,一般适用于伪静态的,也可以控制网站根目录下的文件解析,所以我们创建一个htaccess文件,然后写入规则:AddType application/x-httpd-php .jpg,作用就是将这个.jpg后缀当成php解析。

所以我们先上传这个htaccess文件,然后再上传图片马,就成功了

图片马的创建:

一个图片,一个php文件,然后在命令行下copy xxx.jpg/b + xxx.php/a mmm.jpg,这个mmm.jpg就是图片马

5

这关没有大小写过滤,直接后缀名改成PHP就行了

6

没有过滤空格,用bp抓包在php后面加个空格变成'.php '就成功上传了

注:这个特性是windows下的,linux是不行的

7

没有删除文件后缀的点,又因为windows会自动去除点,那就抓包改成xxx.php.直接绕过,然后windows自动去除点后执行php

8

这关没有过滤::$DATA

像这样写:xxx.php::$DATA,这个::¥DATA写了就相当于没写,但是可以绕过上传成功

9

尝试下冒号截断:冒号可以将web.php:jpg截断,用jpg绕过后再把jpg丢掉,php上传成功,但是文件内容也被清空了。

解决方法:在windows+php+iis(部分apache也可以),<等于*。

那么我们这样写:web.<<<,会转换成???然后会匹配三个任意字符,就匹配上web.php了。

所以这道题抓包改后缀名即可:

10

这关直接抓包双写绕过xxx.phphpp

11

看源码得知上传一个图片放到临时文件夹,然后通过move函数把这个临时文件覆盖到upload目录,正常情况下会是upload/temp.jpg

问题在于这个路径是get,我们可以控制,所以抓包改路径构造成upload/shell.php%00temp.jpg

这样就会把后面的jpg截断,因为php底层是c语言,00在c语言中是停止的意思

所以相当于把shell.php传到upload目录了

(这是php5.2的漏洞)

12

还是00截断,只是改成post了,%是urlcode编码的,这里不能用%了

可以随便写一个内容,这里写了一个点,然后再post的16进制里改成00

13

检测文件内容的前两个字节

先创建一个shell.gif文件,然后在一句话木马之前写一个GIF89a,这是伪造的图片头,上传成功,但是不能用,用文件包含才能用,先复制图片路径,然后打开一个include的文件,再添加参数为图片路径

include就是一个把包含的文件当成php执行的函数

14

用图片马,然后加上一个include包含就行了

.jpg .png后缀的时候不用加GIF89a

15

增加了一个类型判断:

跟上一关操作一样

16

过滤图片马了,也就是会打乱图片顺序,所以图片马就会被打乱了,不能用。

先随便传个上传个图片马,然后再把这个图片下载下来看看发现里面的一句话木马乱了

思路就是在没有混淆的地方插入一句话木马,所以我们用010editor找可以放一句话木马的地方(只要能放下就行):

然后把一句话木马插入这个不会改动的地方就能上了(可能找的地方会把图片格式弄乱,那就换一个地方写一句话木马):

再把文件复制下来用文件包含打开即可(GIF好改一点,jpg、png格式比较复杂,改动容易出错,会被判定为不是jpg、png格式)

jpg、png的话可以用脚本来弄,思路跟gif一样

顺便提一句:比较好的防御方法是吧上传图片文件夹的执行权限去掉

17

这是在上传成功以后才判断的后缀,所以直接写php文件

这关用一个竞争型的思路,因为这源码看得出来,先上传后再判断是否要删除

我们写这样一个php文件:

<?php fputs(fopen('../shell.php','w'),'<?php phpinfo();?>')>;

这个文件执行的话会在上一级目录创建一个php文件,当然,这个文件会被马上删除,但是在上传到删除之间是有一定时间的,我们正是要利用这一点。

手工操作不现实,所以用bp的爆破的方式,相当于多次上传,然后我们就访问xxx/shell.php,一直手动刷新。也可以用bp再开一个进程,一个上传,一个访问就可以访问到了

想避免这种条件竞争的漏洞就先过滤再上传

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

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

相关文章

微服务-OpenFeign基本使用

一、前言 二、OpenFeign基本使用 1、OpenFeign简介 OpenFeign是一种声明式、模板化的HTTP客户端&#xff0c;它使得调用RESTful网络服务变得简单。在Spring Cloud中使用OpenFeign&#xff0c;可以做到像调用本地方法一样使用HTTP请求访问远程服务&#xff0c;开发者无需关注…

stm32 学习笔记:GPIO输出

一、GPIO简介 引脚电平 0-3.3V,部分可容忍5V&#xff0c;对输出而言最大只能输出3.3V, 只要可以用高低电平来控制的地方&#xff0c;都可以用GPIO来完成&#xff0c;如果控制的功率比较大的设备&#xff0c;只需加入驱动电路即可 GPIO 通用输入输出口&#xff0c;可配置为 8种 …

2023国赛数学建模E题思路代码 - 黄河水沙监测数据分析

# 1 赛题 E 题 黄河水沙监测数据分析 黄河是中华民族的母亲河。研究黄河水沙通量的变化规律对沿黄流域的环境治理、气候变 化和人民生活的影响&#xff0c; 以及对优化黄河流域水资源分配、协调人地关系、调水调沙、防洪减灾 等方面都具有重要的理论指导意义。 附件 1 给出了位…

【实训】“宅急送”订餐管理系统(程序设计综合能力实训)

&#x1f440;樊梓慕&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》 &#x1f31d;每一个不曾起舞的日子&#xff0c;都是对生命的辜负 前言 大一小学期&#xff0c;我迎来了人生中的第一次实训…

2023/9/8 -- C++/QT

作业 1> 自行封装一个栈的类&#xff0c;包含私有成员属性&#xff1a;栈的数组、记录栈顶的变量 成员函数完成&#xff1a;构造函数、析构函数、拷贝构造函数、入栈、出栈、清空栈、判空、判满、获取栈顶元素、求栈的大小 02stack.h: #ifndef __02STACK_H__ #define __…

无涯教程-JavaScript - IMSIN函数

描述 IMSIN函数以x yi或x yj文本格式返回复数的正弦。复数的正弦为- $$\sin(x yi) \sin(x)\cosh(y) \cos(x)\sin(y)i $$ 语法 IMSIN (inumber)争论 Argument描述Required/OptionalInumberA Complex Number for which you want the sine.Required Notes Excel中的复数仅…

活动预告 | 龙智、紫龙游戏与JFrog专家将出席龙智DevSecOps研讨会,探讨企业大规模开发创新

2023年9月8日&#xff08;周五&#xff09;下午13:30-19:45&#xff0c;龙智即将携手Atlassian与JFrog在上海共同举办主题为“大规模开发创新&#xff1a;如何提升企业级开发效率与质量”的线下研讨会。 在此次研讨会上&#xff0c;龙智高级咨询顾问、Atlassian认证专家叶燕秀…

【List篇】使用Arrays.asList生成的List集合,操作add方法报错

早上到公司&#xff0c;刚到工位&#xff0c;测试同事就跑来说"功能不行了&#xff0c;报服务器异常了&#xff0c;咋回事";我一脸蒙&#xff0c;早饭都顾不上吃&#xff0c;要来了测试账号复现了一下&#xff0c;然后仔细观察测试服务器日志&#xff0c;发现报了一个…

K8S 基础概念学习

1.K8S 通过Deployment 实现滚动发布&#xff0c;比如左边的ReplicatSet 的 pod 中 是V1版本的镜像&#xff0c;Deployment通过 再启动一个 ReplicatSet 中启动 pod中 镜像就是V2 2.每个pod 中都有一个pause 容器&#xff0c;他会连接本pod中的其他容器&#xff0c;实现互通。p…

【计算机网络】HTTP(上)

文章目录 1.HTTP概念2. URLurlencode 和 urldecode转义规则 3. HTTP的宏观理解HTTP的请求HTTP的响应 4. 见一见HTTP请求和响应请求报头 1. 模拟一个简单的响应response响应报头 2. 从路径中获取内容ReadFile函数的实现 3.不同资源进行区分反序列化的实现ReadOneLine函数的实现P…

2.11 PE结构:添加新的节区

在可执行PE文件中&#xff0c;节&#xff08;section&#xff09;是文件的组成部分之一&#xff0c;用于存储特定类型的数据。每个节都具有特定的作用和属性&#xff0c;通常来说一个正常的程序在被编译器创建后会生成一些固定的节&#xff0c;通过将数据组织在不同的节中&…

数学建模B多波束测线问题B

数学建模多波束测线问题 1.问题重述&#xff1a; 单波束测深是一种利用声波在水中传播的技术来测量水深的方法。它通过测量从船上发送声波到声波返回所用的时间来计算水深。然而&#xff0c;由于它是在单一点上连续测量的&#xff0c;因此数据在航迹上非常密集&#xff0c;但…

多通道振弦数据记录仪应用桥梁安全监测的关键要点

多通道振弦数据记录仪应用桥梁安全监测的关键要点 随着近年来桥梁建设和维护的不断推进&#xff0c;桥梁安全监测越来越成为公共关注的焦点。多通道振弦数据记录仪因其高效、准确的数据采集和处理能力&#xff0c;已经成为桥梁安全监测中不可或缺的设备。本文将从以下几个方面…

zabbix企业微信告警

目前&#xff0c;企业微信使用要设置可信域名 华为云搜索云函数 创建函数 选择http函数&#xff0c;随便输入函数名字 回到函数列表&#xff0c;选择刚创建的函数&#xff0c;创建触发器&#xff0c;安全模式选择none 点击右上角管理 选刚创建的api&#xff0c;右边操作点…

07-ThreadLocal有哪些使用场景?【Java面试题总结】

ThreadLocal有哪些使用场景&#xff1f; 7.1 多线程场景下共享变量问题 ThreadLocal是线程本地变量&#xff0c;可以存储共享变量副本&#xff0c;每一个独立线程都有与共享变量一模一样的副本。ThreadLocal在当前线程下共享变量是全局共享的&#xff0c;各个线程之间是相互独…

基于Dubbo实现服务的远程调用

目录 前言 RPC思想 为什么使用Dubbo Dubbo技术框架 ​编辑 调用关系流程 基础实现 A.提供统一业务Api B.编辑服务提供者Product B.a 添加依赖 B.b 添加Dubbo 配置(基于yaml配置文件) B.c 编写并暴露服务 C.编辑服务消费者 C.a 添加依赖 C.b 添加Dubbo配置 C.c 引用…

【Redis】3、Redis主从复制、哨兵、集群

Redis主从复制 主从复制&#xff0c;是指将一台Redis服务器的数据&#xff0c;复制到其他的Redis服务器。前者称为主节点(Master)&#xff0c;后者称为从节点(Slave)&#xff1b;数据的复制是单向的&#xff0c;只能由主节点到从节点。 默认情况下&#xff0c;每台Redis服务器…

PostgreSQL安装异常,服务无法启动导致创建服务器超时

win上安装pg后无法创建服务器&#xff0c;提示创建超时&#xff0c;发现服务列表里面pg15服务 并没有启动&#xff0c;启动服务器发现服务不了&#xff0c;截图忘记截了&#xff0c;复现不了&#xff0c;解决方法是 换个身份&#xff0c;然后继续启动&#xff0c;然后就可以在…

如何使用Docker部署Nacos服务?Nacos Docker 快速部署指南: 一站式部署与配置教程

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

说说 TCP的粘包、拆包

分析&回答 拆包和粘包是在socket编程中经常出现的情况&#xff0c; 在socket通讯过程中&#xff0c;如果通讯的一端一次性连续发送多条数据包&#xff0c;tcp协议会将多个数据包打包成一个tcp报文发送出去&#xff0c;这就是所谓的粘包。如果通讯的一端发送的数据包超过一…