目录

Pass-01(JS 绕过)

Pass-02(文件类型验证)

Pass-03(黑名单验证)

Pass-04(黑名单验证.htaccess)

Pass-05(大小写绕过)

Pass-06(末尾空格)

Pass-07(增加一个.)

Pass-08(增加一个::$DATA) 

Pass-09(代码不严谨)

Pass-10(PPHPHP)

Pass-11(0x00 截断)

Pass-12(Post 0x00 截断)

Pass-13(图片木马)

Pass-14(图片木马)

Pass-15(图片木马)

Pass-16(二次渲染绕过)

Pass-17(条件竞争)

Pass-18(解析漏洞)

Pass-19(黑名单)

Pass-20(白名单)


Pass-01(JS 绕过)

1.保存当前页面。

2.使用编辑器打开页面,修改代码。

3.修改成如下内容。

if (1 == -1 ) 

4.打开我们下载的html文件,上传我们的1.php,上传成功。

Pass-02(文件类型验证)

1.通过下面代码可以看出,他验证的是文件类型。

2.使用 bp 拦截,修改Content-Type: image/png。

3.放包之后就发现上传成功。

Pass-03(黑名单验证)

1.根据代码我们发现是黑名单验证。

2.根据apche服务器能够使用php解析.phtml .php3,我们可以使用php3后缀尝试上传。

Pass-04(黑名单验证.htaccess)

使用.htaccess(超文本访问)
是许多 Web 服务器根据目录应用设置的有用文件,允许在运行时覆盖 Apache 服务器的
默认配置。使用.htaccess,我们可以在运行时轻松启用或禁用任何功能。
1.新建文件.htaccess,并上传。
<FilesMatch "loudong.jpg">
SetHandler application/x-httpd-php
</FilesMatch>
2.把PHP文件重新命名,并上传。
3.上传结果。

Pass-05(大小写绕过)

代码里面没有验证大写,可以把文件名变成大写

1.我们使用bp抓包进行修改。

2.上传成功。

Pass-06(末尾空格)

查看代码我们发现,比上一关少了一行首尾去空的代码。
上传的时候在文件名加个空格

Pass-07(增加一个.)

和上一关对比,少了删除末尾点的代码
我们使用bp抓包修改

Pass-08(增加一个::$DATA)

在 window 的时候如果文件名+"::$DATA"会把::$DATA 之后的数据当成文件流处理,不会检测后
缀名,且保持::$DATA 之前的文件名,他的目的就是不检查后缀名
例如:"phpinfo.php::$DATA"Windows 会自动去掉末尾的::$DATA 变成"phpinfo.php"
上面代码没有::$DATA,这块的验证

Pass-09(代码不严谨)

借助的是代码不严谨
deldot,即从字符串的尾部开始,从后向前删除点.,直到该字符串的末尾字符不是.为止。
而如果中间有个空格,就不会继续删除
<?php
include '../common.php';
$file_name = deldot('image.jpg. .');//删除文件名末尾的点
echo $file_name;
?>

使用bp抓包,在文件名后添加 ". ."

Pass-10(PPHPHP)

str_ireplace 函数用于字符串替换操作,不区分大小写其语法是str_ireplace(find,replace,string,count)。
参数 find 必需,规定要查找的值;replace 必需,规定替换 find 中的值的值;string 必需,规定被搜索的字符串。
我们bp抓包修改

Pass-11(0x00 截断)

这个案例要求php 的 magic_quotes_gpc 为 OFF 状态
关键的代码在于这里的save_path 是一个可控的变量,但是后面还拼接上一个后缀名,也需要绕过
我们这里采用 %00 截断。

00 截断是操作系统层的漏洞,由于操作系统是 C 语言或汇编语言编写的,这两种语言

在定义字符串时,都是以\0(即 0x00)作为字符串的结尾。操作系统在识别字符串

时,当读取到\0 字符时,就认为读取到了一个字符串的结束符号。因此,我们可以通

过修改数据包,插入\0 字符的方式,达到字符串截断的目的。

我们这里上传loudong.jpg。

再使用bp抓包修改。

Pass-12(Post 0x00 截断)

和上面一题代码对比,这里使用的是 Post 方式

但和 get 对比,需要多做一次解码的工作

GET 型提交的内容会被自动进行 URL 解码,在 POST 请求中,%00 不会被自动解码

使用bp抓包修改

我们需要对%00进行url编码,然后放包

Pass-13(图片木马)

这个案例会验证上传内容,确认是图片格式,所以不能简单把 php 转化为 jpg,需要使用图片木马

需要在正常图片里面加入恶意代码执行以下命令
copy image.png /b + info.php /a webshell.png
上传的是个图片,我们可以使用文件包含漏洞来把图片当作代码执行
在地址栏输入如下
结果如下:

Pass-14(图片木马)

getimagesize() 函数用于获取图像大小及相关信息,成功返回一个数组,失败则返回 FALSE 并产生一条 E_WARNING 级的错误信息
和上面的 13 题的步骤一样

Pass-15(图片木马)

PHP 中的 exif_imagetype()函数用于确定图像的类型。此函数读取给定图像的第一个字节并检查其签名。当找到正确的签名时,则 exif_imagetype()返回适当的常量值;否则它返回 False。

和上面的题的步骤一样

Pass-16(二次渲染绕过)

这个案例使用的是 imagecreatefromjpeg、imagecreatefrompng、imagecreatefromgif
三个不同的方法来验证不同的文件,绕过格式不正确,会报出异常

但这题重新渲染了图片,植入木马的图片实际已经被删除了,这个案例建议使用 gif 的文件来上传木马,gif 最高支持 256 种颜色。由于这种特性,重新渲染改动不会太多!

 Nodepad++安装新插件

上传后,和服务器上传了的文件对比,把恶意脚本放到没有改变的地方(修改很可能破坏原图
片,需要多次尝试)
上传修改后的 webshell.gif

Pass-17(条件竞争

这个是白名单验证,unlink 函数是删除文件,rename 函数进行文件的移动(也会删除源文件)

但仔细看这段代码,是不管什么文件都能传,但不管是否图片,后门都删除,可以考虑条件竞争

就是没删除之前,如果文件是打开的状态,可能删除失败,这样就能保留原理的文件

直接上传一个1.php文件,然后进行抓包,将数据包发送至intruder下。

然后发包,用另一个浏览器一直访问1.php地址,只要在上传的一瞬间,他还没来的及删除、修改就可以了。

Pass-18(解析漏洞)

这里的话采用了白名单

文件上传之后又对其进行了重命名,不能使用文件包含的漏洞
这里是先移动文件,再修改文件名,所以的话是存在利用条件竞争
步骤方法和上一关一样

Pass-19(黑名单)

这个题目使用的是黑名单,并且文件名是可以控制的
方法一:采用%00截断,并url编码
方法二:如果文件名upload-19.php/.   
那么验证的是 php/.可以验证通过

Pass-20(白名单)

end() 函数将数组内部指针指向最后一个元素,并返回该元素的值,所以这个函数可以接受数组的

reset() 函数将内部指针指向数组中的第一个元素,并输出,所以这个函数也可以接受数组的

count() 统计数组有多少个元素

既然可以接受数组

save_name[0]=upload-20.php

save_name[2]= jpg

这行代码拼接的名字为

upload-20.php+"." +save_name[1]的数据

由于 save_name[1]没有,结果为 upload-20.php.

使用bp抓包,并如下图修改

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

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

相关文章

[附源码+数据库+毕业论文]基于Spring+MyBatis+MySQL+Maven+vue实现的酒店预订管理系统,推荐!

摘 要 使用旧方法对酒店预订信息进行系统化管理已经不再让人们信赖了&#xff0c;把现在的网络信息技术运用在酒店预订信息的管理上面可以解决许多信息管理上面的难题&#xff0c;比如处理数据时间很长&#xff0c;数据存在错误不能及时纠正等问题。 这次开发的酒店预订管理系…

LSTM入门案例(时间序列预测)| pytorch实现(可复现)

需求 假如我有一个时间序列&#xff0c;例如是前113天的价格数据&#xff08;训练集&#xff09;&#xff0c;然后我希望借此预测后30天的数据&#xff08;测试集&#xff09;&#xff0c;实际上这143天的价格数据都已经有了。这里为了简单&#xff0c;每一天的数据只有一个价…

Axure RP 10 预览显示“无标题文档”的空白问题探索【护航版】

1. 安装情况 官网 Axure RP 10&#xff1a;Download Axure RP 10 - Axure &#xff08;PS&#xff1a;11都出了&#xff09; 版本&#xff1a;10.0.0.3924 激活码&#xff1a;49bb9513c40444b9bcc3ce49a7a022f9 &#xff08;10/11都可以用&#xff0c;但只尝试了10&#xff…

基于SpringBoot+Vue的汽车租赁系统(协同过滤算法、腾讯地图API、支付宝沙盒支付、WebsSocket实时聊天、ECharts图形化分析)

系统亮点&#xff1a;协同过滤算法、腾讯地图API、支付宝沙盒支付、WebsSocket实时聊天、ECharts图形化分析&#xff1b;01系统开发工具与环境搭建—前后端分离架构项目架构&#xff1a;B/S架构运行环境&#xff1a;win10/win11、jdk17前端&#xff1a;技术&#xff1a;框架Vue…

数据结构入门:像整理收纳一样简单!

在我们生活中&#xff0c;经常会面对这样的问题&#xff1a; “我要怎么整理我的衣柜&#xff1f;” “电脑里照片太多了&#xff0c;怎么归类才方便查找&#xff1f;” 其实&#xff0c;程序员也有类似的烦恼。他们不整理衣柜&#xff0c;而是“整理数据”。而这门关于如何“收…

力扣每日一题--2025.7.15

&#x1f4da; 力扣每日一题–2025.7.15 3135. 有效单词 &#xff08;简单&#xff09; 大家好&#xff01;今天我们要来聊聊一道有趣的编程题——有效单词 &#x1f4dd; 题目描述 题目分析 &#x1f4da; 题目要求我们判断一个字符串是否为有效单词。有效单词需要满足以下…

Mysql数据库——增删改查CRUD

文章目录一、数据库的基础命令二、创建表三、增(create)四、查询&#xff08;retrieve)五、条件查询&#xff08;where&#xff09;六、修改&#xff08;update&#xff09;七、删除&#xff08;delete&#xff09;一、数据库的基础命令 1.使用客户端连接服务器 mysql -u root…

关于pytorch虚拟环境及具体bug问题修改

本篇博客包含对于虚拟环境概念的讲解和代码实现过程中相关bug的解决关于虚拟环境我的pytorch虚拟环境在D盘&#xff0c;相应python解释器也在D盘&#xff08;一起&#xff09;&#xff0c;但是我的pycharm中的项目在C盘&#xff0c;使用的是pytorch的虚拟环境&#xff0c;这是为…

U盘量产工具与性能优化完全指南

本文还有配套的精品资源&#xff0c;点击获取 简介&#xff1a;U盘量产工具是IT行业中的专业软件&#xff0c;用于批量生产或修复U盘。安国和银灿是两个提供U盘量产工具的主控芯片制造商&#xff0c;提供初始化、格式化、分区管理、性能优化、故障修复、个性化定制、固件升级…

Golang http开发实战:构建RESTful API保姆级教程

目录 章节1:RESTful API的精髓与Go的Web开发哲学 RESTful API的设计原则 Go的http包核心组件 实战:第一个RESTful API端点 章节2:设计优雅的RESTful路由 路由设计的注意事项 使用Gorilla Mux实现动态路由 章节3:请求与响应的艺术:解析与格式化 解析请求数据 统一…

UGUI 性能优化系列:第一篇——基础优化与资源管理

UGUI 性能优化系列&#xff1a;第一篇——基础优化与资源管理 UGUI 性能优化系列&#xff1a;第二篇——Canvas 与 UI 元素管理 在 Unity 游戏中&#xff0c;用户界面&#xff08;UI&#xff09;是玩家与游戏交互的核心。然而&#xff0c;不当的 UGUI 使用常常成为游戏性能的…

多端协同的招聘系统源码开发指南:小程序+APP一体化设计

当下&#xff0c;很多企业选择搭建属于自己的多端协同招聘平台&#xff0c;尤其是中大型人力资源公司、连锁品牌企业&#xff0c;以及同城服务平台&#xff0c;更是将“小程序APP”一体化招聘系统视为提升效率、降低用工成本的利器。 今天&#xff0c;笔者将从源码开发的角度&a…

Maven 配置文件核心配置:本地仓库、镜像与 JDK 版本

Maven 配置文件核心配置&#xff1a;本地仓库、镜像与 JDK 版本 在 Maven 项目开发中&#xff0c;合理配置 settings.xml 文件能显著提升依赖管理效率。本文将聚焦本地仓库、镜像加速和 JDK 版本这三个核心配置&#xff0c;结合 IDEA 环境详细讲解配置方法与作用。 一、Maven 配…

【时时三省】(C语言基础)通过指针引用字符串

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省如在printf函数中输出一个字符串。这些字符串都是以直接形式&#xff08;字面形式&#xff09;给出的&#xff0c;在一对双撇号中包含若干个合法的字符。使用字符串的更加灵活方便的方法——通…

【Linux驱动-快速回顾】一文快速理解GIC内部寄存器对中断的控制

第一部分&#xff1a;GIC的功能和组成 1. GIC要解决的根本问题 在一个复杂的片上系统&#xff08;SoC&#xff09;中&#xff0c;有非常多的硬件模块&#xff08;如定时器、串口、按键、DMA等&#xff09;&#xff0c;它们都需要在完成任务或遇到特定事件时通知CPU。同时&#…

【IoTDB 线上小课 17】开源 ≠ 免费,3 分钟总结开源商用指南

【IoTDB 视频小课】第十七期&#xff0c;解答你最关心的开源商业使用问题&#xff01;关于 IoTDB&#xff0c;关于物联网&#xff0c;关于时序数据库&#xff0c;关于开源...一个问题重点&#xff0c;3-5 分钟&#xff0c;我们讲给你听&#xff1a;原来开源商业化有这么多规则开…

VUE项目学习笔记 v-for绑定数据,该数据异步获取,同时需要对v-for的DOM节点进行js操作

问题描述&#xff1a;项目里有一个轮播图&#xff0c;轮播图的图片数据从服务器获取&#xff0c;用v-for生成DOM在页面中显示&#xff0c;轮播图插件会通过new Swiper给DOM添加CSS、事件等&#xff0c;实现轮播效果。在这里存在操作顺序问题&#xff1a;当服务器返回图片数据后…

Science | 如何利用“T细胞+组蛋白乙酰化”两大国自然热点?T细胞耗竭机制与代谢-表观遗传调控的新范式

CD8⁺T细胞耗竭&#xff08;T cell exhaustion&#xff09;是肿瘤免疫治疗的核心瓶颈&#xff0c;其表观遗传重塑机制&#xff08;如组蛋白修饰&#xff09;是当前国自然重点资助的前沿方向。耗竭T细胞&#xff08;TEX&#xff09;是指在慢性感染&#xff08;如持续性病毒感染&…

Logback 配置的利器:深入理解<property>与<variable>

在构建现代 Java 应用程序时&#xff0c;日志是不可或缺的一部分。一个健壮的日志系统不仅能帮助我们监控应用程序的运行状态&#xff0c;还能在问题发生时提供关键的诊断信息。Logback 作为 SLF4J 的一个流行实现&#xff0c;以其高性能和灵活的配置而广受开发者喜爱。 然而&a…

Java中excel字典转换

✅ 背景说明EasyExcel 原生的 ExcelProperty 注解不支持 dictType&#xff08;不像那样有 Excel(dictType"xxx")&#xff09;&#xff0c;所以如果你想实现字典翻译功能&#xff0c;就需要自己实现 Converter 接口&#xff0c;比如 DictConvert。✅ 什么是 DictConve…