IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> 2021-08-04 -> 正文阅读

[PHP知识库]2021-08-04

文件上传基础整理

1.0 前端绕过

当文件检测在前端的时候,我们可以使用前端绕过来进行操作,操作如下:
使用burp抓包,修改自己想要的参数即可

2.0 Content-Type方式绕过

通过抓包修改Content-Type方式绕过

3.0 黑名单绕过

$deny_ext = array('.asp','.aspx','.php','.jsp');
语言绕过方案
PHPPhp5、php6、php7、phtml、shtml、phtm等
jspjspx、jspf、jspa、jsw、jtml
aspvbs、aspx、asp{80-90}、cer、asa、asax、cdx

4.0 .htaccess文件绕过

先上传一个.htaccess,该目录下所有特定文件都会以指定方法解析
.htaccess文件内容

AddType application/x-httpd-php .jpg
# 该文件让当前目录下所有.jpg文件以php方式解析

5.0 后缀大小写绕过

当开发忘记开启后缀转大小写的时候,并且为黑名单过滤时可以尝试这个方法

  • .php => .pHp
  • .phtml => .PhtMl

6.0 文件后缀空绕过

当开发忘记删除文件后缀的空格时可使用该方法绕过
例如:

".php" != ".php "
".phtml" != ".phtml"
#在后缀后面添加空格以让匹配失败,同样用于黑名单

这种方法上传至服务器后因为系统特性,会自动删除文件就变成了.php

7.0 文件后缀(.)绕过

当开发忘记删除文件后缀的空格时可使用该方法绕过
例如:

".php" != ".php."
".phtml" != ".phtml."
#在后缀后面添加.以让匹配失败,同样用于黑名单

这种方法上传至服务器后因为系统特性,会自动删除.文件就变成了.php

8.0 ::$DATA(Windows文件流绕过)

当服务器系统为Windows时可以尝试使用文件流来绕过

echo "<?php eval($_REQUESTS[7]); ?>" > 1.txt::$DATA

在cmd执行该命令回生成一个1.txt,若要访问1.txt:: D A T A 则 需 要 在 后 面 加 上 ‘ : : DATA则需要在后面加上`:: DATA::DATA`
这便是Windows文件流的特性

绕过方法:
在文件后缀后面加上::$DATA来进行绕过,上传文件名1.php:: D A T A , 访 问 文 件 1. p h p 上 传 到 服 务 器 的 文 件 在 W i n d o w s 中 会 自 动 去 掉 : : DATA,访问文件1.php 上传到服务器的文件在Windows中会自动去掉:: DATA,访1.phpWindows::DATA

9.0 构造文件后缀绕过

在文件名后面添加上. .php会解析php.
在文件名后面添加上. . . . . . .php也会解析

10.0 双写文件后缀绕过

当服务器会删除敏感后缀的时候不妨这样

  • .php => .phphpp
    当删除中间的php以后,就会变回.php

11.0 %00截断绕过(一)GET协议

有些服务器会让你自定义上传路径,我们就可以使用%00截断
比如说:
$UploadDir = /www/uploads => $UploadDir = /www/uploads/1.php%00
$File = 1.jpg => $File = 1.jpg
我们直接访问1.php就可以,或者还可以这样玩
$File = 1.jpg => $File = 1.php%00.jpg

仅用于php5.3以下

12.0 %00截断绕过(二)POST协议

GET和POST传参有不一样的地方,即GET传参会经过一次url解码,而POST传参则不会。

仅用于php5.3以下

13.0 图片木马绕过

copy 1.jpg/b + 1.php 123.jpg使用左侧命令可将两个命令做成一个,通过更改后缀名来执行
图片木马只是保证上传过程中不被拦截,但终归还是要被解析才能运行

14.0 getimagesize图片类型绕过

getimagesize() 函数用于获取图像大小及相关信息,成功返回一个数组,失败则返回 FALSE 并产生一条 E_WARNING 级的错误信息。

  • 索引 0 给出的是图像宽度的像素值
  • 索引 1 给出的是图像高度的像素值
  • 索引 2 给出的是图像的类型,返回的是数字,其中1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM
  • 索引 3 给出的是一个宽度和高度的字符串,可以直接用于 HTML 的 标签
  • 索引 bits 给出的是图像的每种颜色的位数,二进制格式
  • 索引 channels 给出的是图像的通道值,RGB 图像默认是 3
  • 索引 mime 给出的是图像的 MIME 信息,此信息可以用来在 HTTP Content-type 头信息中发送正确的信息,如: header(“Content-type: image/jpeg”);
Array
(
    [0] => 290
    [1] => 69
    [2] => 3
    [3] => width="290" height="69"
    [bits] => 8
    [mime] => image/png
)

绕过方式:

copy /b 1.png + 2.txt hack.png用该命令来将两个图片合成一个
或者直接在文件下方添加一句话内容

15.0 php_exif模块图片类型绕过

需要开启php_exif模块

绕过方式:
copy /b 1.png + 2.txt hack.png用该命令来将两个图片合成一个
或者直接在文件下方添加一句话内容

16.0 二次渲染绕过

通过对比上传下载图片md5来得知图片是否变化
上传图片,下载下来,对比未变化部分,进行更改

17.0 条件竞争绕过

一边上传一边访问,跟服务器抢速度
可以让一个文件写出另一个文件

18.0 move_uploaded_file()截断

00截断绕过

19.0 IIS6.0解析漏洞内存截断

;内存截断 => 1.asp;.jpg
/内存截断 => 1.asp/1.jpg
内存截断和00截断类似 但又不相同,具体表现为内存截断访问需要加上后缀

20.0 IIS高版本与nginx解析漏洞

在文件后面加上.php即可

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-08-05 17:07:16  更:2021-08-05 17:07:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/6 22:26:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码