文件上传和文件包含的各种姿势

VSole2022-07-25 16:28:10

文件上传

前端

JS 防护,通过抓包修改,或插件js禁用来绕过。

后端

黑名单上传陌生后缀 .php3 php5上传配置文件 .htaccess通过 双写 ,大小写,基于windows 特性 ::$DATE  .php空格 .php. .php:.jpg

白名单

%00截断   版本小于5.3.4 char(0) 空字符, c语言将空字符作为结束的标志,在字符串 中添加%00 解析时会将空字符之后的字符做丢弃处理配合文件包含 上传图片码 条件竞争(通过上传后 后端处理是 先存放在删除) 修改 conten-type image/jpeg 修改MIME 类型

IIs 服务器 解析漏洞

6.0 文件解析漏洞 .asp: . jpg 分号后面的不会被解析

目录解析漏洞 .asp/1.jpg .asp目录下的文件都会被解析成asp文件

7.0 CGI 解析漏洞 .jpg/.php

Apache

2.4.0-2.4.29 换行解析漏洞 换行

1.x 2.x 多后缀解析漏洞 .php.qwe

nginx

1.5.0-1.5.7 0.8.4-1.4.3 文件名逻辑解析漏洞 webshell.jpg空格 .访问 webshell/jpg%00.php 原因是错误地解析了请求的URI,错误地获取到用户请求的文件名,导致出现权限绕过、代码执行的连带影响。

0.5 0.6 0.7 %00截断

0.5.6 - 1.13.2 nginx整数溢出漏洞 在nginx作为反向代理服务器,且开启了缓存时,攻击者可以构造恶意的range域,来获取相应的服务器中的缓存文件头部信息,导致敏感的服务器信息泄露。

 

文件包含

包含函数 include_once include  require require_once include 只会抛出错误,不会终止 require  到包含文件不存在时 直接终止程序

本地文件包含

远程文件包含 前提是 allow_url_fopen allow_url_include

php 伪协议

flie:// 访问 本地文件系统 不受 allow_url_fopen allow_url_include 影响

allow_url_include = on

php://input 读取post 请求中的数据

php://filter 读取源码

zip:// 协议

可以访问 压缩文件中分子文件, 不需要指定后缀名

?fi=zip://E:\phpStudy\PHPTutorial\WWW\phpinfo.jpg%23phpinfo.txt

data:// 协议

allow_url_fopen allow_url_include 0n

用法:include.php?filename=data:text/plain,

直接插入php代码的话,有些特殊符号容易出问题 抓包修改

http://127.0.0.1/include.php?file=http://127.0.0.1/phpinfo.txt

防御绕过

00截断超长字符串目录穿越 (后端代码 包含对象中 追加 目录名) 问号截断井号后缀猜测

文件包含 码传不上去

中间件日志文件

一句话木马插入 url 中, 中间件解析报错 报存在 日志文件中

ssh 登录日志文件保存路径 /var/log/auth

去包含这个文件

最好是在24.00 8.00 日志重制时

木马写在seesion中

session保存路径/var/lib/php/sess_phpsessid

防御绕过

将需要 包含的地方 写死过滤接收到的参数禁止远程文件包含限制访问范围使用白名单

漏洞include
本作品采用《CC 协议》,转载必须注明作者和本文链接
2022年4月1日,研究人员公开一个存在于asciidoctor-include-ext ( RubyGems ) 中的命令注入漏洞漏洞编号:CVE-2022-24803,漏洞威胁等级:严重,漏洞评分:10.0。
Spring Cloud 突发漏洞 Log4j2 的核弹级漏洞刚告一段落,Spring Cloud Gateway 又突发高危漏洞,又得折腾了。。。 2022年3月1日,Spring官方发布了关于Spring Cloud Gateway的两个CVE漏洞,分别为CVE-2022-22946与CVE-2022-22947: 版本/分支/tag:3.4.X
Log4j2 的核弹级漏洞刚告一段落,Spring Cloud Gateway 又突发高危漏洞,又得折腾了。。。 2022年3月1日,Spring官方发布了关于Spring Cloud Gateway的两个CVE漏洞,分别为CVE-2022-22946与CVE-2022-22947: 版本/分支/tag:3.4.X 问题描述:
ARM 指令集架构,常用于嵌入式设备和智能手机中,是从RISC衍生而来的。
近日,安识科技A-Team团队监测到一则 Asciidoctor-include-ext 组件存在命令注入漏洞的信息,漏洞编号:CVE-2022-24803,漏洞威胁等级:严重,该漏洞是由于 Asciidoctor-include-ext 处理用户输入时存在安全问题,攻击者可利用该漏洞在未授权的情况下,构造恶意数据执行命令注入攻击,导致在主机上执行任意系统命令。
5.8.1 RCE漏洞
2021-10-05 19:21:38
include\common.func.php文件中的ShowMsg函数存在模板注入$gourl = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''; 从Referer头中取值,然后进行渲染,造成RCE
CVE-2022–21661 WordPress核心框架WP_Query SQL注入漏洞原理分析与复现。
可以看到没有过滤就直接带入查询了而且还写出报错,这里就可以使用报错注入 payload
攻击者通过利用CVE-2022-0847-DirtyPipe漏洞,可覆盖重写任意可读文件中的数据,从而可将普通权限的用户提升到root权限
【最新漏洞预警】WordPress Redux Framework CVE-2021-38314信息泄露漏洞影响全球数百万网站。
VSole
网络安全专家