upload labs靶场

upload labs靶场

注意:本人关卡后面似乎相比正常的关卡少了一关,所以每次关卡名字都是+1才可以和正常关卡在同一关

一.个人信息

个人名称:张嘉玮

二.解题情况

三.解题过程

题目:up load labs靶场

pass 1前后端

思路及解题:先验证合法性是前端还是后端(如果是前端验证意味着你可以在前端验证之后后数据流发往后台的时候将其拦截并且修改)

题目中的提交限制必须为jpg等类型,需要判断这个提交是前端还是后端验证的,所以先打开抓包,并且发送一个不合法的php文件,提交,发现抓包并没有阻止页面显示文件上传格式错误,所以是前端验证。因此我直接将php文件类型重命名为jpg类型,提交文件前先抓包拦,再改变其中文件类型php为jpg,再forward,此时我已将木马发送到其内部,之后在下方图片中右键点击新标签页中打开图片,复制域名,打开蚁剑,右击添加数据,粘贴域名到url并且输入密码a,点击测试连接观察是否通过,若通过再添加,此时便可以控制对方了。

一句话木马

<?php
@eval($_POST_['a']);
?>

+++

pass 2前后端

1.思路:仍然是先看合法性是前端还是后端

我上传一个不合法的php文件并且用bp拦截,发现在拦截过程中页面未报错,所以是后端验证,不是前端,,之后判断拦截下的语句中哪句话是判断文件类型的,所以我继续先上传jpg,burp拦截后找到其中的Content-Type:image/jpeg然后删掉再forward,发现文件传输错误,所以它是通过content-type验证合法性的,之后我再上传一个php,拦截,将content-type:application/octet-stream改为image/jpeg之后forward则发送成功,蚁剑中添加数据后查看是否成功

+++

pass 3文件名加数字

(此题验证方式为黑名单,大部分网站是白名单)

思路及做法:查看源代码后发现其限制了php文件 但存在漏洞,未限制php3,4等格式;

所以直接将文件后缀名改为.php3等类型

+++

pass4配置文件

思路及做法:1.查看源码,发现其已限制大多数文件类型,但是有一个明显的漏洞,没有限制htacess文件,所以直接将文件后缀名改为.htacess就行了。

AddType application/x-httpd-php .jpg.txt意思就是将txt和.jpg文件当作php文件解析

2.所以接下来直接上传一个jpg文件类型的一句话木马就可以搞定了,再连接蚁剑测试是否成功.

+++

补充文件后缀名字

.htaccess

叫分布式配置文件 作用于网站根目录及其子目录 修改后立刻生效 可覆盖httod-conf

httpd -conf

(先加载)

包含apache http 作用于整个服务器 优先级低,需管理员权限 ,且重启服务器才可以生效

.user.ini

作用于用户或特定目录的配置文件,,可覆盖或追加配置选项,在web应用程序根目录下,可覆盖php.ini,追加全职配置文件

php.ini

(先加载)

作用是存储了对整个php环境生效的配置选项,通常位于php安装目录之下,优先级较低,需管理员权限和重启web服务器

+++

pass5配置文件

思路和做法:

仍然是有黑名单,限制了.htaccess,但是未限制.user.ini的,因为.user,.ini优先级程度高,可以覆盖掉php.ini,所以不限制的危害较大

Auto-prepend-file=index(2).txt   //此文件中有木马
    //自动包含所有文件 用index(2).txt包含

所以先上传一个.user.ini的文件 再上传对应的php改为jpg后的文件 ,通过蚁剑连接,就可以

法二: 思路: 由于题目中检查文件名后缀的源代码并未选择循环结构,因此后缀名.php 后直接加**.空格.就可以在其检查后正好剩一个.php.正好运行(windows操作系统下会将最后一个点删除,使得文件仍然可以运行,所以蚁剑连接时直接输入.php**就可以了。

+++

pass6大写

思路:题目黑名单源代码中明显没有限制pHp,PHP等大写形式的后缀名,所以直接在bp中拦截之后更改Content后面的后缀名就可以了,之后蚁剑连接看有没有成功

+++

pass7空格

思路:题目黑名单源代码未限制首位去空,借此绕过黑名单(都需bp拦截后修改)。并且我windows系统下就算给文件后缀名加了点系统也会自动删除,所以可以正常运行。

+++

pass8 .

思路:题目黑名单源代码中少了del的自动删除.,**(删除方式是从右边往左边删,遇到空格就会停止)**因此直接bp更改Content下的文件后缀名就可以了,注意蚁剑搭建url时将最后的.删除,因为windows下会自动删除多余的点.

+++

补充额外数据流

格式: “”::$DATA" 即表示一个附加数据流 它不是一个文件 所以不会验证文件后缀.

作用:和例如打开txt文件后直接就可以看见的文字信息,也叫默认数据流不同,其可以存储文件的元数据,标签,备份等,想要访问需要特殊命令

导入方式:

  1. echo 内容 >>文件名:数据流名

    访问 Notepad 文件名:数据流名

  2. type 文件名>>文件名.数据流名

+++

pass9::$DATA

思路:题目黑名单中缺少了对**:: D A T A ∗ ∗ 的限制,这不是一个文件,是一个额外数据包,因此黑名单不会检查它,通过这个 b u g 直接绕过,之后新建标签页打开后将 u r l 里的 : : DATA**的限制,这不是一个文件,是一个额外数据包,因此黑名单不会检查它,通过这个bug直接绕过,之后新建标签页打开后将url里的:: DATA的限制,这不是一个文件,是一个额外数据包,因此黑名单不会检查它,通过这个bug直接绕过,之后新建标签页打开后将url里的::DATA删除就可以访问了

+++

pass10. .

思路:删除点与空格的源代码中没有添加循环 ,所以直接**.空格 .**解决

+++

pass10双写后缀绕过

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

意思是deny—会将$file_name路径下的之前黑名单的文件全部变成’ ',也就是删除他们 顺序是从左边往右边删(没有循环的条件下只循环一下

+++

补充空字符

格式:0x00 顺序从左到右(在编程语言使用 || %00(在url中使用)

+++

pass11%00截断(php<5.3.29)

思路:观察源代码发现其用白名单过滤

  $ext_arr = array('jpg','png','gif');
 $file_ext = substr($_FILES['upload_file']['name'],  strrpos($_FILES['upload_file']['name'],".")+1)

逗号前 是获取文件 也就是从哪里获取:逗号后 是在几位 ;(点在这个里面最后出现是出现在了第几位)(从左到右)

php上传先先把文件放在临时路径当中,再移动到指定位置

漏洞在于通过**GET[‘save_path’].来拼接组成上传的文件路径 而这个get传参是我们可以改掉的地方,改掉其上传路径,再将后面进行截断。其实原理就是在后端验证时它发现你是jpg文件,所以给你通过了,但是后续经过移动到临时路径和最终路径的过程中时,111.php和.jpg拼接,因为php后面有%00所以jpg会省略,最终还是以php形式解读的

操作:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

改为

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

%00 是空字符(NULL字符)的URL编码,它在某些情况下可能被用于截断字符串或绕过安全措施

(后面的http1.1是个http协议)

+++

pass12

思路:大致和12关一样

将空格改成右边框中hex(16进制)形式---->00

+++

补充图片字符标识

  1. jpeg/jfif 头字节0xff 0xd8
  2. png(无损压缩形式) 0x89 0x50
  3. gif 0x47 0x47 0x49
  4. bmp(windows位图) 0x42 0x4d
  5. tuff(标签图片格式) 可是不同的d

+++

pass13修改前两个字节

思路及做法:

观察题目源代码,发现其有判断语句判断(读取文件的前两个字节)转化为10进制再判断.

 switch($typeCode){      
        case 255216:            
            $fileType = 'jpg';  //十进制
            break;
        case 13780:            
            $fileType = 'png';
            break;        
        case 7173:            
            $fileType = 'gif';
            break;
        default:            
            $fileType = 'unknown';
        }    
        return $fileType;

代码通过读为图片头字母判断是什么图片类型

做法:先将一句话木马以jpg形式更改后缀名,再通过记事本形式打开将最前面增加两个空格,(以方便后续的修改),再通过010editor更改前面两个字头->89 50 (png)形式,之后将文件后缀名字改为php以原来的方式上传 发现不可以 因为文件以Png的形式解析了;所以需要将jpg文件以php形式输出,这个时候就需要文件包含漏洞了:上传一个改了文件头的php文件,观察他的路径 是在upload路径里面 而包含漏洞的文件夹在他的上级目录,所以在有漏洞页面的后面输入urll后**?file=./upload/7020241111194319**就成功了

漏洞:通过get请求获得file文件中的东西,它没有对文件包含的东西过滤,都会将文件以php形式解析

所以可以利用它会将文件当成php形式的漏洞直接输入?file=1.jpg(文件中是一句话木马)

+++

pass14图片马绕过

getimgaesize()意思是返回包含文件属性的数组,这里不可以通过13关一样简单的方法过了

做法:应用cmd,将一个图片与含有一句话代码的php文件(这两个文件必须放在一个路径)通过cmd(打开cmd后,通过基础命令进入他俩在的那个路径) 输入:copy 1.jpg/b + index(22).php/a 2.jpg生成一个图片马,之后就可以成功发送了,之后打开文件包含漏洞的页面 输入**?file=./upload/刚刚随机生成的文件编码**,就可以通过蚁剑连接了.

+++

pass15图片马绕过

仿照第14关就可以过去了

+++

pass16二次渲染

思路:通过观察源代码,发现它将图片进行了二次渲染,也就是重新超了一遍,会删掉一些东西,所以原来有的Php木马会直接消失掉,如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

做法一:保存一个gif图片(),上传到题目中去,通过010editor打开并进行比较,其中蓝色部分是两者相同的部分,找到两者相同的地方(要稍微靠后一点),则我可以在原来的图片的一堆数字里增加一句话木马,这里的木马因为被掩盖掉了,所以木马不会被删除,上传成功之后,通过文件包含漏洞在url里输入?file=./upload/文件名,再通过蚁剑连接,然后就成功了.

做法二:在你第一次发送的gif图片里直接插入一句话木马,再发送给题目,发现木马其并没有被删掉,所以这就是他的漏洞,他渲染一次后就不会再渲染了,所以可以直接将渲染一次后的图片里直接插入一句话木马,就成功了

+++

补充条件竞争

文件上传会从临时目录(服务器)转移到指定目录,再判断文件是否合法,所以通过发送很多请求,使判断过程缓不过来,我再趁机访问

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

原理:访问有没有Php文件,如果没有就会新建一个shell.php文件 再将一句话木马写下去

+++

pass17

思路及做法:先抓一个上传php文件的包

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

同时在url中搜索 路径为在upload里的你要往过发的文件的路径,也拦截住,把这两个都发送都爆破模式,再按照上述设置同时爆破,只要看见upload路径下长存这那个shell18.php文件就成功了.(注意要一边访问一边攻击)

+++

pass18apache解析漏洞+条件竞争(php版本为apache版本才有的漏洞)

思路:在这里的源代码中会提前解析文件后缀名,所以就算爆破,其中的php文件也会被拦截,但是apache解析不了7z 它从右边往左边解析时候,遇到7z不会执行,会直接解析php index(22).php.7z,所以可以借助7z的后缀名字通过,下一步就和17关一样了.

+++

pass19后缀绕过总结

思路:观察源代码发现其会直接看.后面的后缀 然后判断

可以上传的时候 后缀名字为.php空格 .jpg就可以通过了,因为windows解析时候会自动将空格删除,所以不要害怕文件打不开,而题目过滤时却会读取到jpg,所以可以成功绕过。

+++

hp版本为apache版本才有的漏洞)

思路:在这里的源代码中会提前解析文件后缀名,所以就算爆破,其中的php文件也会被拦截,但是apache解析不了7z 它从右边往左边解析时候,遇到7z不会执行,会直接解析php index(22).php.7z,所以可以借助7z的后缀名字通过,下一步就和17关一样了.

+++

pass19后缀绕过总结

思路:观察源代码发现其会直接看.后面的后缀 然后判断

可以上传的时候 后缀名字为.php空格 .jpg就可以通过了,因为windows解析时候会自动将空格删除,所以不要害怕文件打不开,而题目过滤时却会读取到jpg,所以可以成功绕过。

+++

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

解锁豆瓣高清海报(二) 使用 OpenCV 拼接和压缩

解锁豆瓣高清海报(二): 使用 OpenCV 拼接和压缩 脚本地址: 项目地址: Gazer PixelWeaver.py pixel_squeezer_cv2.py 前瞻 继上一篇“解锁豆瓣高清海报(一) 深度爬虫与requests进阶之路”成功爬取豆瓣电影海报之后&#xff0c;本文将介绍如何使用 OpenCV 对这些海报进行智…

C++:虚函数与多态性习题2

题目内容&#xff1a; 编写程序&#xff0c;声明抽象基类Shape&#xff0c;由它派生出3个派生类&#xff1a;Circle、Rectangle、Triangle&#xff0c;用虚函数分别计算图形面积&#xff0c;并求它们的和。要求用基类指针数组&#xff0c;使它每一个元素指向一个派生类对象。 …

JVM运行时数据区域-附面试题

Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域 有各自的用途&#xff0c;以及创建和销毁的时间&#xff0c;有的区域随着虚拟机进程的启动而一直存在&#xff0c;有些区域则是 依赖用户线程的启动和结束而建立和销毁。 1. 程序计…

电脑优化大师-解决电脑卡顿问题

我们常常会遇到电脑运行缓慢、网速卡顿的情况&#xff0c;但又不知道是哪个程序在占用过多资源。这时候&#xff0c;一款能够实时监控网络和系统状态的工具就显得尤为重要了。今天&#xff0c;就来给大家介绍一款小巧实用的监控工具「TrafficMonitor」。 「TrafficMonitor 」是…

跨组织环境下 MQTT 桥接架构的评估

论文标题 中文标题&#xff1a; 跨组织环境下 MQTT 桥接架构的评估 英文标题&#xff1a; Evaluation of MQTT Bridge Architectures in a Cross-Organizational Context 作者信息 Keila Lima, Tosin Daniel Oyetoyan, Rogardt Heldal, Wilhelm Hasselbring Western Norway …

Baklib揭示内容中台实施最佳实践的策略与实战经验

内容概要 在当前数字化转型的浪潮中&#xff0c;内容中台的概念日益受到关注。它不再仅仅是一个内容管理系统&#xff0c;而是企业提升运营效率与灵活应对市场变化的重要支撑平台。内容中台的实施离不开最佳实践的指导&#xff0c;这些实践为企业在建设高效内容中台时提供了宝…

牛客周赛round78 B,C

B.一起做很甜的梦 题意&#xff1a;就是输出n个数&#xff08;1-n&#xff09;&#xff0c;使输出的序列中任意选连续的小序列&#xff08;小序列长度>2&&<n-1&#xff09;不符合排列&#xff08;例如如果所选长度为2&#xff0c;在所有长度为2 的小序列里不能出…

微机原理与接口技术期末大作业——4位抢答器仿真

在微机原理与接口技术的学习旅程中&#xff0c;期末大作业成为了检验知识掌握程度与实践能力的关键环节。本次我选择设计并仿真一个 4 位抢答器系统&#xff0c;通过这个项目&#xff0c;深入探索 8086CPU 及其接口技术的实际应用。附完整压缩包下载。 一、系统设计思路 &…

Android记事本App设计开发项目实战教程2025最新版Android Studio

平时上课录了个视频&#xff0c;从新建工程到打包Apk&#xff0c;从头做到尾&#xff0c;没有遗漏任何实现细节&#xff0c;欢迎学过Android基础的同学参加&#xff0c;如果你做过其他终端软件开发&#xff0c;也可以学习&#xff0c;快速上手Android基础开发。 Android记事本课…

设计模式Python版 组合模式

文章目录 前言一、组合模式二、组合模式实现方式三、组合模式示例四、组合模式在Django中的应用 前言 GOF设计模式分三大类&#xff1a; 创建型模式&#xff1a;关注对象的创建过程&#xff0c;包括单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、原型模式和建造者模式…

4-图像梯度计算

文章目录 4.图像梯度计算(1)Sobel算子(2)梯度计算方法(3)Scharr与Laplacian算子4.图像梯度计算 (1)Sobel算子 图像梯度-Sobel算子 Sobel算子是一种经典的图像边缘检测算子,广泛应用于图像处理和计算机视觉领域。以下是关于Sobel算子的详细介绍: 基本原理 Sobel算子…

MATLAB实现多种群遗传算法

多种群遗传算法&#xff08;MPGA, Multi-Population Genetic Algorithm&#xff09;是一种改进的遗传算法&#xff0c;它通过将种群分成多个子种群并在不同的子种群之间进行交叉和交换&#xff0c;旨在提高全局搜索能力并避免早期收敛。下面是多种群遗传算法的主要步骤和流程&a…

WebRtc06: 音视频数据采集

音视频采集API 通过getUserMedia这个API去获取视频音频&#xff0c; 通过constraints这个对象去配置偏好&#xff0c;比如视频宽高、音频降噪等 测试代码 index.html <html><head><title>WebRtc capture video and audio</title></head><…

浅析CDN安全策略防范

CDN&#xff08;内容分发网络&#xff09;信息安全策略是保障内容分发网络在提供高效服务的同时&#xff0c;确保数据传输安全、防止恶意攻击和保护用户隐私的重要手段。以下从多个方面详细介绍CDN的信息安全策略&#xff1a; 1. 数据加密 数据加密是CDN信息安全策略的核心之…

高温环境对电机性能的影响与LabVIEW应用

电机在高温环境下的性能可能受到多种因素的影响&#xff0c;尤其是对于持续工作和高负荷条件下的电机。高温会影响电机的效率、寿命以及可靠性&#xff0c;导致设备出现过热、绝缘损坏等问题。因此&#xff0c;在设计电机控制系统时&#xff0c;特别是在高温环境下&#xff0c;…

MapReduce简单应用(一)——WordCount

目录 1. 执行过程1.1 分割1.2 Map1.3 Combine1.4 Reduce 2. 代码和结果2.1 pom.xml中依赖配置2.2 工具类util2.3 WordCount2.4 结果 参考 1. 执行过程 假设WordCount的两个输入文本text1.txt和text2.txt如下。 Hello World Bye WorldHello Hadoop Bye Hadoop1.1 分割 将每个文…

PPT演示设置:插入音频同步切换播放时长计算

PPT中插入音频&同步切换&放时长计算 一、 插入音频及音频设置二、设置页面切换和音频同步三、播放时长计算 一、 插入音频及音频设置 1.插入音频&#xff1a;点击菜单栏插入-音频-选择PC上的音频&#xff08;已存在的音频&#xff09;或者录制音频&#xff08;现场录制…

32.Word:巧克力知识宣传【32】

目录 NO1.2.3 NO4.5 NO5制表位设置​ ​NO6.7​ NO8.9图表 NO10​ NO11.12 NO1.2.3 FnF12或另存为&#xff1a;考生文件夹&#xff1a;Word.docx布局→纸张大小→页面设置对话框→页边距&#xff1a;上下左右ctrlx剪切文本→插入→文本框选择对应的→手动拖拉文本框到合…

【零拷贝】

目录 一&#xff1a;了解IO基础概念 二&#xff1a;数据流动的层次结构 三&#xff1a;零拷贝 1.传统IO文件读写 2.mmap 零拷贝技术 3.sendFile 零拷贝技术 一&#xff1a;了解IO基础概念 理解CPU拷贝和DMA拷贝 ​ 我们知道&#xff0c;操作系统对于内存空间&…

数据分析系列--⑨RapidMiner训练集、测试集、验证集划分

一、数据集获取 二、划分数据集 1.导入和加载数据 2.数据集划分 2.1 划分说明 2.2 方法一 2.3 方法二 一、数据集获取 点击下载数据集 此数据集包含538312条数据. 二、划分数据集 1.导入和加载数据 2.数据集划分 2.1 划分说明 2.2 方法一 使用Filter Example Range算子. …