文件上传漏洞之勇闯20层地狱

文件上传漏洞之勇闯20层地狱


  • 有些喜欢,就是麦田里曾降临过的风,只有当事人明了,而这的世界假装没发生。

文章目录

  • 文件上传漏洞之勇闯20层地狱
    • 简介:
    • pass-01:
    • pass-02:
    • pass-03:
    • pass-04:
    • pass-05:
    • pass-06:
    • pass-07:
    • pass-08:
    • pass-09:
    • pass-10:
    • pass-11:
    • pass-12:
    • pass-13/14/15:
    • pass-16:
    • pass-17:
    • pass-18:
    • pass-19:
    • pass-20:

简介:

upload-labs是一个使用php语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。
项目地址:https://github.com/c0ny1/upload-labs

文件上传漏洞之勇闯20层地狱_第1张图片

pass-01:

  • 源代码关键点
    客户端js验证
    js
  • 主要在客户端使用js对不合法图片进行检查,可以通过burp以及禁用js进行绕过!

文件上传漏洞之勇闯20层地狱_第2张图片

pass-02:

  • 源代码关键点
    判断content-type是否为图片格式
    在这里插入图片描述
  • 主要在服务端对数据包的MIME进行检查,修改content-type:image/jpeg即可。

文件上传漏洞之勇闯20层地狱_第3张图片

pass-03:

  • 源代码关键点
    禁止上传以下后缀文件。
    在这里插入图片描述
  • 主要在服务端禁止上传.asp|.aspx|.php|.jsp后缀文件,上传同类即可。
    文件上传漏洞之勇闯20层地狱_第4张图片

文件上传漏洞之勇闯20层地狱_第5张图片

pass-04:

  • 源代码关键点
    禁止所有类型文件文件在这里插入图片描述
  • 主要在服务端禁止上传基本上所有类型文件文件,可以利用.htaccess。
    首先上传.htaccess
    文件上传漏洞之勇闯20层地狱_第6张图片然后上传图片码即可。
    文件上传漏洞之勇闯20层地狱_第7张图片

pass-05:

  • 源代码关键点
    跟之前一样,少了这个函数
    /20200309192422717.png)
  • 主要在服务端禁止上传基本上所有类型文件文件(包括htlaccess),模糊测试发现phP可以绕过。
    文件上传漏洞之勇闯20层地狱_第8张图片

pass-06:

  • 源代码关键点
缺少该语句过滤

在这里插入图片描述

  • 主要在服务端禁止上传基本上所有类型文件文件(包括htlaccess),可以在后缀加空格。
  • 文件上传漏洞之勇闯20层地狱_第9张图片

pass-07:

  • 源代码关键点
缺少该语句过滤
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200309224053459.png)
  • 主要在服务端禁止上传基本上所有可执行文件,可以在后缀加<.>,利用window特性绕过。
    文件上传漏洞之勇闯20层地狱_第10张图片

pass-08:

  • 源代码关键点
缺少该语句过滤

在这里插入图片描述

  • 主要在服务端禁止上传基本上所有可执行文件,可以在后缀加<::$DATA>,利用window特性绕过。
    文件上传漏洞之勇闯20层地狱_第11张图片

pass-09:

  • 源代码关键点
路径拼接新加的,多组合利用
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020030923092692.png)
  • 主要在服务端禁止上传基本上所有可执行文件,可以在后缀加< . .>,组合利用。
    文件上传漏洞之勇闯20层地狱_第12张图片

pass-10:

  • 源代码关键点
把不符合的后缀给替换空,以及推进。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200309231215940.png)
  • 主要在服务端禁止上传基本上所有可执行文件,可以在利用双文件绕过。
    文件上传漏洞之勇闯20层地狱_第13张图片

pass-11:

  • 源代码关键点

    保存文件时是将get得到的路径与随机数年月日和上传文件名拼接到一起,所以上传文件路径可控,我们将get的路径最后改为1.php0x00那么拼接到后面的内容就会被丢弃。
    在这里插入图片描述

  • 主要在服务端白名单,get请求,因此可以利用%00截断绕过。
    文件上传漏洞之勇闯20层地狱_第14张图片

pass-12:

  • 源代码关键点

    跟11一样,只不过这回是POST请求
    在这里插入图片描述

    • 主要在服务端白名单postt请求,因此可以利用00截断,这次需要在二进制中进行修改,post不会像get对%00进行解码。
      文件上传漏洞之勇闯20层地狱_第15张图片

pass-13/14/15:

  • 源代码关键点
    对文件内容进行过滤,判断文件相关信息以及文件幻数检测。

    在这里插入图片描述
    文件上传漏洞之勇闯20层地狱_第16张图片文件上传漏洞之勇闯20层地狱_第17张图片

    • 上传图片马即可绕过。
      在这里插入图片描述
      文件上传漏洞之勇闯20层地狱_第18张图片

pass-16:

  • 源代码关键点大部分过滤,以及二次渲染,重新生成图片
    文件上传漏洞之勇闯20层地狱_第19张图片- 上传图片马即可绕过其他,针对于imagecreatefromjpeg函数,原理是上传一个图片,然后找二次渲染之后图片相同代码部分,然后写脚本在该处插入恶意代码。
    上传修改相同部分的图片码,当上传上去二次渲染之后,还是存在恶意代码,包含即可

文件上传漏洞之勇闯20层地狱_第20张图片文件上传漏洞之勇闯20层地狱_第21张图片

pass-17:

  • 源代码关键点
    文件先通过move_uploaded_file进行保存,然后用in_array判断文件是否为图片类型,如果是就用rename进行重命名,如果不是,则使用unlink删除文件。所以可以利用这个时间差,当文件保存后,就不断访问该文件,执行恶意代码。
    文件上传漏洞之勇闯20层地狱_第22张图片
  • 先将恶意文件上传到服务器,服务器通过rename修改名称,再通过unlink删除文件,因此可以通过条件竞争的方式在unlink之前不断请求该文件,即可生成shell
');
?>

文件上传漏洞之勇闯20层地狱_第23张图片
文件上传漏洞之勇闯20层地狱_第24张图片

pass-18:

  • 源代码关键点
    跟17相同也是利用条件竞争,但是这回限制白名单,不断上传图片马,包含即可。
    文件上传漏洞之勇闯20层地狱_第25张图片-

pass-19:

  • 源代码关键点
    考的是CVE-2015-2348 move_uploaded_file() 00截断
    在这里插入图片描述
  • 00截断即可
    文件上传漏洞之勇闯20层地狱_第26张图片

pass-20:

  • 源代码关键点
    -通过 f i l e n a m e = r e s e t ( file_name = reset( filename=reset(file) . ‘.’ . f i l e [ c o u n t ( file[count( file[count(file) - 1];可以知道最终的文件名是由数组的第一个和最后一个元素拼接而成,如果上传不是不是数组,就自己拆成数组,就提供了绕过条件

    文件上传漏洞之勇闯20层地狱_第27张图片

    • 上传数组前面可以利用php,后面jpg绕过
      文件上传漏洞之勇闯20层地狱_第28张图片

    余生很长,请多指教。
    在这里插入图片描述

你可能感兴趣的:(渗透杂项)