0


XAUT UPLOAD-LABS靶场实战 文件上传漏洞 Day2

1.环境配置

使用phpstudy 2018 搭建靶场

2.UPLOAD-LABS 01--10

简单一句话木马

<?php
phpinfo();
@eval($_POST['pass']);
?>

部分企业不允许上传木马,可用是否有phpinfo();页面查看是否木马上传成功。

1.upload-labs01

查看源码:为js代码前端过滤,只允许jpg/png/gif后缀文件

用记事本编辑rsec.txt文件写入一句话木马,改后缀为.jpg上传

burpsuite抓包后改后缀为.php

上传后访问文件上传所在的位置可看到phpinfo();,表示上传成功,如图:

2.upload-labs02

查看源码,发现白名单只允许content-type固定三种类型的文件上传:

bp抓包后修改Content-Type类型为:

成功后访问文件位置,显示为:

3.upload-labs03

查看源码,可知为绕过黑名单上传:

2)前置条件

上传图⽚时,如果提示不允许 php、asp 这种信息提示,可判断为⿊名单限制,上传⿊名单以

外的后缀名即可;

在 iis ⾥ asp 禁⽌上传了,可以上传 asa cer cdx 这些后缀,如在⽹站⾥允许.net 执⾏可以

上传 ashx 代 替 aspx。如果⽹站可以执⾏这些脚本,通过上传后⻔即可获取 webshell ;在不同的中间件中有特殊的情况,如果在 apache 可以开启 application/x-httpd-php 在 AddType application/x-httpd-php .php .phtml .php3 后缀名为 phtml 、php3 均被解析成 php 有的 apache 版本默认就会开启; 注意本实验需要开启⼀个参数,否则实验失败。 上传⽬标中间件可⽀持的环境的语⾔脚本即可,如.phtml、php3;

关于AddType命令的作⽤解释

AddType 指令 作⽤:在给定的⽂件扩展名与特定的内容类型之间建⽴映射 语法:AddType MIME

type extension

[extension] …

AddType指令在给定的⽂件扩展名与特定的内容类型之间建⽴映射关系。MIME-type指明了包含extension扩展名的⽂件的媒体类型。

AddType 是与类型表相关的,描述的是扩展名与⽂件类型之间的关系。

可以在httpd.conf⽂件中查看AddType 的设置情况;注:新版的phpstudy貌似没有这个了,实验

的话只能使⽤⽼版的了;

去掉注释符保存重启

4.upload-labs04:

查看源码为漏过滤了.htaccess文件后缀,文件代码为:

<FilesMatch "jpg">
SetHandler application/x-httpd-php
</FilesMatch>
   上传模块,⿊名单过滤了所有的能执⾏的后缀名,如果允许上传.htaccess。htaccess ⽂件的作⽤是可以帮我们实现包括:⽂件夹密码保护、⽤户⾃动重定向、⾃定义错误⻚⾯、改变你的⽂

件扩展名、封禁特定 IP 地址的⽤户、只允许特定 IP 地址的⽤户、禁⽌⽬录列表,以及使⽤其

他⽂件作为 index ⽂件等⼀些功能;

在 htaccess ⾥写⼊ SetHandler application/x-httpd-php 则可以⽂件重写成 php ⽂件。

要 htaccess 的规则⽣效 则需要在 apache 开启 rewrite 重写模块,因为 apache 是多数都开

启这个模块,所以规则⼀般都⽣效;

直接上传.jpg文件: 

访问可得:

5.upload-labs05

查看源码,可利用大写小绕过:

bp抓包修改为.PhP后缀

访问可得:

6.upload-labs06

查看源码,可知是windows空格漏洞,windows自动删除文件后缀空格:

加上空格:

访问可得:

7.upload-labs07

查看源码,遗漏了删除文件末尾的"."

文件后缀改为.php.

访问可得:

8.upload-labs08

查看源码可知遗漏过滤“::$DATA”

在window的时候如果文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名,且保持::$DATA之前的文件名,他的目的就是不检查后缀名

例如:"phpinfo.php::$DATA"Windows会自动去掉末尾的::$DATA变成"phpinfo.php"

查看可知:

9.upload-labs09

利用windows 环境的叠加特征原理

在 windwos 中如果上传⽂件名 rsec9.php:.jpg 的时候,会在⽬录下⽣产空⽩的⽂件名rsec9.php;

再利⽤ php 和 windows 环境的叠加属性写⼊内容;

以下符号在正则匹配时相等:

● 双引号" 等于 点号.

● ⼤于符号> 等于 问号?

● ⼩于符号< 等于 星号*

● ⽂件名.<或⽂件名.<<<或⽂件名.>>>

利⽤ windows 环境的叠加特征绕过上传攻击

提交数据包中将内容写⼊⽂件名rsec9.>>> 中,>>>类似通配符匹配到rsec9.php

访问可知: 

10.upload-labs10

查看源码可知,在上传模块,有的代码会把⿊名单的后缀名替换成空,例如 a.php 会把 php 替换成空,但 是可以使⽤双写绕过例如 asaspp,pphphp,即可绕过上传;同样是⿊名单过滤。str_ireplace 对上传的后缀名是⿊名单内的字符串转换成空;

访问可知:

标签: web安全 安全 网络

本文转载自: https://blog.csdn.net/qq_63089196/article/details/140276741
版权归原作者 前轱辘转后轱辘不转思密达_ 所有, 如有侵权,请联系我们删除。

“XAUT UPLOAD-LABS靶场实战 文件上传漏洞 Day2”的评论:

还没有评论