| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> PHP知识库 -> web-文件上传 -> 正文阅读 |
|
[PHP知识库]web-文件上传 |
什么是文件上传?文件上传漏洞是指由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其本身权限向服务器上上传可执行的动态脚本文件。这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等。“文件上传”本身没有问题,有问题的是文件上传后,服务器怎么处理、解释文件。如果服务器的处理逻辑做的不够安全,则会导致严重的后果。 下面为看官们介绍几种常见的思路 后缀名文件上传关于后缀名这方面主要是黑名单和白名单。 黑名单:禁止上传的文件后缀名 白名单:仅限于允许上传的文件名 黑名单1.特殊解释后缀(apache) 添加特殊的文件后缀名,让服务器将其理解为php进行解析,如phtml,php5等文件的后缀名 使用方法: “打开配置文件”--->“httpd-conf” 在配置文件中找到“#AddType application/x-httpd-php .php .phtml”所在行,去除此行#注释符并在末尾添加.phtml .php3即可 2 .htaccess配置文件(apache) htaccess是超文本访问(Hypertext Access)的缩写,是一个基于Apache的Web服务器使用的配置文件,用于控制它所在的目录以及该目录下的所有子目录。 通过上传此文件可以让文件按照php方式解析 <FilesMatch "yimo37"> Sethandler application/x-httpd-php .user.ini配置文件也可以做到这种效果 GIF89a auto_prepend_file=shell.jpg 3.结尾加空格 在windows环境下文件后缀名+空格可以视为没有文件没有变动,如1.txt 和1.txt是同一个文件,在提交文件时可以加空格来绕过文件后缀名检查机制 4. ::$DATA 在window的时候如果文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名,且保持::$DATA之前的文件名,他的目的就是不检查后缀名 例如:"phpinfo.php::$DATA"Windows会自动去掉末尾的::$DATA变成"phpinfo.php" 5.多次过滤 对于一些关键字如php,一些网站可以进行过滤,若只过滤一次可以通过 index.php index.pphphp 如果只过滤一次则会变成 index.p+''+hp,如果多次可以继续重叠 白名单%00截断 例如添加空字节注入(shell.php%00.gif),或使用双重扩展来上传文件(shell.jpg.php)。 修改MIME文件 通过抓包修改文件参数 apache解析漏洞未知扩展名解析漏洞 Apache的解析漏洞依赖于一个特性: Apache默认一个文件可以有多个以点分割的后缀,当最右边的后缀无法识别(不在mime.types文件内),则 继续向左识别,直到识别到合法后缀才进行解析。 复现: 这里使用phpstudy进行复现。 下载地址: http://phpstudy.php.cn/phpstudy/phpStudy(PHP5.2).zip 访问phpinfo.php.xxx ? 实战中可以上传rar,owf等文件进行利用,如果上传phpinfo.php.jpg,即使文件名中有.php,也会直接解析为jpg。因为Apache认识.jpg,停止继续向左识别 ? AddHandler导致的解析漏洞。 如果运维人员给.php后缀增加了处理器: AddHandler application/x-httpd-php .php 那么,在有多个后缀的情况下,只要一个文件名中含有.php后缀,即被识别成PHP文件,没必要是最后一个后缀。 利用这个特性,将会造成一个可以绕过上传白名单的解析漏洞。 ? Apache HTTPD 换行解析漏洞(CVE-2017-15715) 影响范围:2.4.0~2.4.29版本 环境:phpstudy2014 Apache + PHP5.4n 此漏洞形成的根本原因,在于$, 正则表达式中$不仅匹配字符串结尾位置,也可以匹配\n 或 \r 在解析PHP时,1.php\x0A将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略。 ? Ngnix漏洞Nginx配置文件错误导致的解析漏洞 (用phpstudy2014 ,Nginx + PHP5.3n) ? 对于任意文件名,在后面添加/xxx.php(xxx为任意字符)后,即可将文件作为php解析。 例:info.jpg后面加上/xxx.php,会将info.jpg 以php解析。 这与漏洞配置有关。 Nginx 空字节任意代码执行漏洞 ? waf绕过数据溢出,通过大量数据干扰文件名的识别 符号变异,让他找不到对应的符号前后不能识别 截断 重复数据,进行替换 fuzz大法 修复方法后端验证 对后缀名 MIME类型验证 文件头验证 本博客仅仅用于学习交流,欢迎大家瞧瞧看看! |
|
PHP知识库 最新文章 |
Laravel 下实现 Google 2fa 验证 |
UUCTF WP |
DASCTF10月 web |
XAMPP任意命令执行提升权限漏洞(CVE-2020- |
[GYCTF2020]Easyphp |
iwebsec靶场 代码执行关卡通关笔记 |
多个线程同步执行,多个线程依次执行,多个 |
php 没事记录下常用方法 (TP5.1) |
php之jwt |
2021-09-18 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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年11日历 | -2024/11/22 19:24:57- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |