当前位置: 首页 > news >正文

网络安全中级阶段学习笔记(八):upload靶场实战(1-13关)-文件上传漏洞绕过1

目录

Pass-01(前端绕过)

Pass-02(MIME 验证)

Pass-03(黑名单绕过)

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

Pass-05(黑名单验证,.user.ini 绕过)

Pass-06(黑名单验证,大小写绕过)

Pass-077(黑名单验证,空格绕过)

Pass-088(黑名单验证,点号绕过)

Pass-09(黑名单验证,特殊字符::$DATA 绕过)

Pass-10(黑名单验证,. . 绕过)

Pass-111(黑名单验证,双写绕过)

Pass-12(get 0x00 截断)

Pass-13(post 0x00 截断)


Pass-01(前端绕过

打开浏览器bp代理

打开bp进行拦截

创建一个文件编辑信息如下。保存为1.png

<?php phpinfo(); ?>

选择1.png文件点击上传

打开bp修改拦截的包,将上传的1.png修改为1.php。然后点击Forward放包

返回界面,右键复制链接

打开这个链接,出现如下代表成功上传解析成功

Pass-02(MIME 验证

分析代码,可以看到,后端 PHP 代码只对 content-type 进行了检查 使用 bp抓包,修改上传的 PHP 的 content-type 为 image/png

上传1.php

修改上传的 PHP 的 content-type 为 image/png

复制链接

上传解析成功

Pass-03(黑名单绕过

分析源代码可知,存在黑名单,但黑名单以外的后缀仍可上传,尝试 php3,php5,phtml 等后缀
打开phpstudy,编辑httpd-conf

搜索AddType application/x-httpd-php,把这一行前面的#删除,并且后面显示的.php和.phtml就是可以识别成php文件的后缀,可以自行添加其他的php5等其他的

上传文件

修改文件后缀为.phtml,然后放包

复制链接

我这边打开链接就直接把那个文件下载了,无法正常解析

如果打开链接直接自动下载文件就是php版本不行,换一个低版本的,然后点击重启php服务器

重新打开链接图片成功

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

这次的过滤更加严格,但发现还有一个 .htaccess 没有过滤
AddType application/x-httpd-php .jpg这个指令代表着.jpg文件会当做php来解析
,意思是把所有文件都解析为php文件来执行。
新建一个.htaccess文件。写入下面的任意一行代码,第一行代码是之后上传所有的.jpg文件都识别成php文件。
AddType application/x-httpd-php .jpg

第二行代码是之后上传的所有的任意文件都识别解析成php文件

SetHandler application/x-httpd-php

我这里以第二行为例

上传.htaccess文件

继续上传1.png文件

复制链接

打开这个链接,发现这个.png也被当成php文件了,出现下面界面代表成功了

之后记得把.htaccess文件删了,不然后面的关卡上传图片都可以直接通过

Pass-05(黑名单验证,.user.ini 绕过

分析源码,发现连 .htaccess 也给过滤了,但没有过滤 .user.ini 文件
先上传一个以 auto_prepend_file=1.gif 为内容的.user.ini 文件【用户 自定义的配置文件】。.user.ini 文件里的意思是:所有的 php 文件都 自动包含 1.gif 文件,.user.ini 相当于一个用户自定义的 php.ini。然后 再上传一个内容为一句话木马的命名为 1.gif 的文件。上传成功之后, 用 webshell 管理工具添加该图片的路径,但该图片名改为当前目录 下的 php 文件,例如 readme.php,输入密码连接成功。
创建.user.ini文件,输入下面内容
auto_prepend_file=1.gif

创建1.gif木马,写入一句话木马

<?php @eval($_POST["CMD"]) ?>

上传.user.ini文件

然后上传1.gif,并且复制图片链接

打开webshell 管理工具

需要工具的可以点击👆下载

我这里使用中国蚁剑为例

右键空白界面点击添加数据

填入1.gif图片的链接,但是把1.gif修改为readme.php(这个文件一般是说明文件,一般的项目目录下都有)

链接密码是CMD。这个是我们自己在1.gif里面设置的,其他的默认,点击左上角的添加

添加成功就会有一条记录,双击即可打开项目文件,但是我这里出现了错误,应该是php服务器版本的问题,修改版本

点击左上角添加,双击这个链接,发现链接错误,把phpstudy版本切换为带nts的版本就行了

然后再次双击刚刚添加的链接就进来了

右键这条记录选择虚拟终端

打开终端就如同打开服务器的终端,可以任意输入命令(当然仅限于自己的靶场,真实的肯定不可以),比如输入ipconfig

Pass-06(黑名单验证,大小写绕过

这一关同样是后端黑名单,同时过滤掉.htaccess 和.ini。但是没有 使用 strtolower()函数,可以使用大小写绕过黑名单 把.php 格式改为 .Php 上传上去之后,就会自动解析为.php
上传文件

抓包对文件后缀进行修改,修改为1.Php然后放包

复制链接

这里打开图片链接出现一个错误

应该是版本问题,更改phpstudy版本为5.4.45

重新打开网址成功了

Pass-077(黑名单验证,空格绕过)

这一关黑名单,没有使用 trim()去除空格,可以使用空格绕过黑名单抓包
上传文件

抓包修改文件名,在文件名后面添加一个空格符号,然后放包

打开图片链接显示成功

Pass-088(黑名单验证,点号绕过)

这一关黑名单,没有使用 deldot()过滤文件名末尾的点,可以使用文件名后加. 进行绕过

上传文件

抓包修改,文件后面添加一个点符号,然后放包

打开图片链接,显示成功

Pass-09(黑名单验证,特殊字符::$DATA 绕过)

这一关黑名单,没有对::$DATA进行处理 ,可以使用::$DATA进行 处理,可以使用::$DATA进行处理,可以使用::$DATA绕过黑名单
上传文件

抓包修改,文件后面添加

::$DATA

然后放包

复制链接,打开链接报错,去掉::$data符号

刷新网页,显示成功

Pass-10(黑名单验证,. . 绕过)

这一关黑名单,最后上传路径直接使用文件名进行拼接,而且只对文 件名进行 filename= deldot( file_name = deldot( filen ame=deldot(file_name) 操作去除文件名末尾的点,构造后缀绕过黑名单 ,deldot()函数从后向前检测,当检测到末尾的第一个点时 会继续它的检测,但是遇到空格会停下来
上传文件

抓包,修改文件,在文件后面添加点 空格 点,然后放包

打开图片链接,显示成功

Pass-111(黑名单验证,双写绕过)

上传文件
抓包修改,在后缀php中间任意两个字母中间写一个php,比如phphpp或者pphphp
打开图片链接,显示成功

Pass-12(get 0x00 截断)

GET 0x00 截断
但需要php 版本<5.3.4,并且magic_quotes_gpc关闭。
将php服务器版本设置为5.2.17
取消勾选下面的gpc,然后重启服务器
上传文件
抓包修改,第一行的updata/的后面添加1.php%00
然后下面的文件名改为可识别的.png
打开图片链接,去掉1.php后面的字符

刷新网页显示成功

Pass-13(post 0x00 截断)

这一关白名单,文件上传路径拼接生成,而且使用了 post 发送的数据进行拼接, 我们可以控制 post 数据进行 0x00 截断绕过白名单POST 不会对里面的数据自动解码,需要在 Hex 中修改。
上传文件进行抓包,按照下面箭头修改如下两个区域

点击Hex

找到+对应的编码2b,将他修改为00,然后放包

打开图片链接,同样需要删除1.php后面的字符

刷新网页显示成功

http://www.cnnetsun.cn/news/113887.html

相关文章:

  • Xiaomi 商城页面布局(部分)
  • FPGA以太网升级程序:便捷qspi Flash升级,具备校验功能,适用于Xilinx 7系列...
  • 运料小车装卸料控制:西门子1200PLC与TP700触摸屏联机仿真博途16
  • S32K311启动过程中,向量表重定向
  • 从蓝图到产线:高效产品信息传递的桥梁建设
  • 时间复杂度
  • 网站建设公司怎么选?2025年网站设计制作公司推荐指南
  • 今天咱们来聊一个挺有意思的优化算法改进——基于透镜成像反向策略的海洋捕食者算法。这个改进版本在原始MPA基础上搞了点新花样,咱们直接上干货看代码实现
  • Gitee:本土化DevOps平台如何重塑中国开发者生态
  • vCenter Server 8.0U3h 新增功能简介
  • Cisco NX-OS 10.6(2)F 发布 - 数据中心网络操作系统
  • Ubuntu24.04无操作卡死,无法唤醒问题以及内核版本切换记录
  • 全场景覆盖・全流程智控:分布式解决方案让多功能厅 “不止于多”
  • 【轨物方案】聚焦锯床设备智能化升级,打造工业互联网新范式
  • 【轨物交流】轨物科技亮相2025高校科技成果交易会
  • cesium加载geotiff的 四种方法
  • 【毕业设计】基于python的运维管理平台的设计与实现
  • 苹果 iOS 开发真正复杂的不是写代码这方面,是证书、构建、上架
  • FSMC-TFTLCD显示实验(5):显示一个字符串的函数传递过程追踪~
  • 基于Android的课程考勤及作业提交系统
  • 飞易通蓝牙与Wi-Fi模块:医疗产品无线连接的全能助手
  • 你的音效素材库该升级了!这个网站的分类细到超出你想象
  • Agent的“话痨”病有救了!微软黑科技教你压缩对话历史,让AI告别失忆,这篇教程太顶了!
  • ARMv7 linux中断路由以及处理
  • 【详解】基于Kubernetes部署Kafka集群
  • AIoT:从万物互联到万物智联的进化之路
  • ERROR in ./node_modules/vue-router/dist/vue-router.mjs 被报错折磨半天?真相竟是……
  • Spring Boot 自动配置的底层实现原理
  • AI如何帮你快速掌握Wireshark端口过滤技巧
  • 手把手教你复现CVE-2023-51767漏洞