文件上传漏洞--Upload-labs--Pass20--数组绕过

一、漏洞原理

漏洞来源:count()函数漏洞。

现自定义一个数组 arr[],定义arr[0]=1,arr[3]=2, 此时count(arr)的值为2,则arr[count[arr]]即为arr[2],但是arr[2]未定义,即为一个空值,若使用count()函数的本意是指向arr数组的最后一个元素,此时却指向arr[2],形成数组漏洞。


二、代码审计

我们发现源代码进行了多处防御,设置了Content-Type白名单,需要进行抓包绕过。

并且将不是以数组形式存在的文件名划分为数组,取数组最后一个元素为后缀进行白名单判断。


三、通关操作

1、首先上传 test.php 文件,利用 Burpsuite 进行抓包,发现save_name是利用_POST形式上传的,利用count()函数漏洞手动将 save_name改为数组形式,绕过白名单,并且合法化$image_path路径。

2、放包上传,新标签页中打开,成功执行php代码。

---通关。

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-22 19:54:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-22 19:54:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-22 19:54:02       87 阅读
  4. Python语言-面向对象

    2024-02-22 19:54:02       96 阅读

热门阅读

  1. oracle读写分离多数据源

    2024-02-22 19:54:02       43 阅读
  2. Spring整合Junit4

    2024-02-22 19:54:02       51 阅读
  3. 【linux系统讲解】

    2024-02-22 19:54:02       40 阅读
  4. 在做了frp的实验室服务器不同端口间传输文件

    2024-02-22 19:54:02       51 阅读
  5. python子域名收集工具

    2024-02-22 19:54:02       45 阅读
  6. C#面:怎样理解静态变量

    2024-02-22 19:54:02       42 阅读
  7. Android中自定义View时尺寸需要注意的相关事项

    2024-02-22 19:54:02       63 阅读
  8. Willem, Chtholly and Seniorious(珂朵莉树)

    2024-02-22 19:54:02       54 阅读
  9. Python截取视频帧

    2024-02-22 19:54:02       50 阅读