upload-labs1-17思路

news2024/11/26 18:26:37

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.coloradmin.cn/o/993074.html

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

相关文章

数据结构与算法_栈

一、什么是栈 栈是一种特殊的线性表&#xff0c;它只允许在固定的一端进行插入和删除的操作。 对数据进行插入和删除的一端叫做栈顶&#xff0c;另一端是栈底。 对栈的两项操作分别叫做入栈、出栈。 入栈就是对栈进行插入操作&#xff0c;除此之外&#xff0c;入栈也叫做进…

2023挖漏洞给报酬的网站汇总,兼职副业3天收益2000

一、众测平台(国内)二、前沿漏洞研究奖励计划三、行业SRC四、企业应急响应中心-SRC-汇总 1、互联网企业2、生活服务、住宿、购物相关企业3、物流、出行、旅游4、金融相关企业5、视频游戏直播社交娱乐6、教育、问答、知识付费7、泛科技通讯物联网云服务8、安全企业9、其他 一、…

渗透测试的八大步骤

渗透测试 其实很多安全漏洞都属于Web应用漏洞&#xff0c;这些Web漏洞可以通过渗透测试验证。渗透测试是利用模拟黑客攻击的方式&#xff0c;评估计算机网络系统安全性能的一种方法。这个过程是站在攻击者角度对系统的任何弱点、技术缺陷或漏洞进行主动分析&#xff0c;并且有…

【深度学习】Mini-Batch梯度下降法

Mini-Batch梯度下降法 在开始Mini-Batch算法开始之前&#xff0c;请确保你已经掌握梯度下降的最优化算法。 在训练神经网络时&#xff0c;使用向量化是加速训练速度的一个重要手段&#xff0c;它可以避免使用显式的for循环&#xff0c;并且调用经过大量优化的矩阵计算函数库。…

Vulnstack红队(一)

刚开始了解内网的时候做的&#xff0c;可能细节有问题的地方会比较多 0 - 环境配置 Vmware虚拟网络配置 三个靶机设置 Win7&#xff08;添加一张网卡&#xff09; VMnet1VMnet2Win2003 VMnet1Win2008 VMnet1 攻击机&#xff08;kali&#xff09;设置 VMnet2 网络拓扑 kali …

当电脑遇到msvcp110.dll丢失怎么办?最新解决方法分享

在使用电脑过程中&#xff0c;我们经常会遇到一些系统文件丢失的问题。其中&#xff0c;msvcp110.dll是Windows操作系统中的一个重要的动态链接库文件&#xff0c;它包含了许多与C运行库有关的函数和类。当系统中缺少或损坏这个文件时&#xff0c;可能会导致一些应用程序无法正…

细谈left join和join

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱发博客的嗯哼&#xff0c;爱好Java的小菜鸟 &#x1f525;如果感觉博主的文章还不错的话&#xff0c;请&#x1f44d;三连支持&#x1f44d;一下博主哦 &#x1f4dd;社区论坛&#xff1a;希望大家能加入社区共同进步…

OpenCV 10(图像轮廓)

一、图像轮廓 图像轮廓是具有相同颜色或灰度的连续点的曲线. 轮廓在形状分析和物体的检测和识别中很有用。 轮廓的作用: - 用于图形分析 - 物体的识别和检测 注意点: - 为了检测的准确性&#xff0c;需要先对图像进行**二值化**或**Canny操作**。 - 画轮廓时会修改输入的图像…

【轻量化网络】MobileNet系列

MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications, CVPR2017 论文&#xff1a;https://arxiv.org/abs/1704.04861 代码&#xff1a; 解读&#xff1a;【图像分类】2017-MobileNetV1 CVPR_說詤榢的博客-CSDN博客 MobileNetV2: Inverted …

web 网页开发学习 之 vsc 的快捷方式便捷使用

我们想在vsc进行网页的开发如果能够掌握一些快捷键的技巧&#xff0c;那么对我们开发的帮助就会很大

windows弹出交互式服务检测怎么取消

现象 解决办法 打开控制面板->管理工具->服务->Interactive Services Detection 右键属性->常规选项卡中把启动类型选为禁用 禁用之后点击应用和确定 点击停止

Games202(P6、P7)环境光照与PRT全局光照

P6、实时环境光照 RealTime Environment Mapping 不同于全局光照 (1) IBL 我的Blog&#xff1a; QT with OpenGL&#xff08;IBL-漫反射辐照&#xff09;IBL-镜面反射&#xff08;预滤波篇&#xff09;IBL-镜面反射&#xff08;LUT篇&#xff09;QT with OpenGL(IBL-镜面反…

React refers to UMD global, but the current file is a module vite初始化react项目

vite搭建react项目 初始化项目 npm create vite 在执行完上面的命令后&#xff0c;npm 首先会自动下载create-vite这个第三方包&#xff0c;然后执行这个包中的项目初始化逻辑。输入项目名称之后按下回车&#xff0c;此时需要选择构建的前端框架&#xff1a; ✔ Project na…

机器人连续位姿同步插值轨迹规划—对数四元数、b样条曲线、c2连续位姿同步规划

简介&#xff1a;Smooth orientation planning is benefificial for the working performance and service life of industrial robots, keeping robots from violent impacts and shocks caused by discontinuous orientation planning. Nevertheless, the popular used quate…

Python对象序列化

迷途小书童的 Note 读完需要 7分钟 速读仅需 3 分钟 大家好&#xff0c;我是迷途小书童&#xff01; 在 Python 开发中&#xff0c;我们经常需要将对象数据保存到磁盘&#xff0c;或者通过网络传输对象信息。这时就需要序列化&#xff0c;Pickle 库为我们提供了极为方便的对象序…

Python基础篇(18):模块与包

一、as 关键字的使用 1、as 关键字的作用&#xff1a;给导入的模块取别名 import 测试1 as Test_1 import 测试2 as Test_2Test_1.say_hello() Test_2.say_hello() 二、if __name__ __main__ 1、作用 测试当前模块所编写的代码块&#xff0c;根据业务自主选择需要运行的代…

433MHz芯片在遥控应用市场中的优点

当涉及到简单的无线射频通信&#xff0c;433MHz芯片成为一种经济实惠且广泛应用的选择。以下是关于433MHz芯片的重点信息&#xff1a; 工作原理&#xff1a;433MHz芯片的工作原理是将数字信号转化为射频信号&#xff0c;并通过无线信道进行传输。在接收端&#xff0c;射频信号再…

关于Windows11系统,使用适用于Android的windows子系统 ,安装应用后无法连接网络的问题

–by 旧人旧梦旧时光 最近在使用win11自带的android模拟器时遇到了应用无法连接网络的问题&#xff0c;现在得到了解决&#xff0c;记录一下。 经过思考&#xff0c;发现是由于之前无意打开了这个选项&#xff0c;导致的应用无法连接网络&#xff0c;因此&#xff0c;把该选项…

Topaz Photo AI for Mac(AI人工智能降噪放大软件)

Topaz Photo AI是一款专业的照片处理软件&#xff0c;它利用深度学习和人工智能技术&#xff0c;提供了强大的图像增强和修复功能。无论你是想改善照片的质量&#xff0c;还是想给照片添加特效和艺术效果&#xff0c;Topaz Photo AI都能帮助你实现。 Topaz Photo AI还具备强大…

【uni-app】—3.新建一个uni-app项目

一、新建uni-app项目 1. 打开HBuilder X 2. 新建项目 3. 配置项目信息 4. 安装Sass 插件 &#xff08;因为项目需要&#xff09; 这里需要登录&#xff0c;自行用邮箱注册登录&#xff0c;再下载安装插件&#xff0c;安装完成如下 二、项目目录扩展 1. 初始化项目目录 2. 扩…