当前位置: 首页 > news >正文

漏洞详解--文件上传 如何花样绕过?!

一、漏洞原理

1.1 核心

文件上传漏洞,顾名思义,将攻击者将恶意文件上传到服务器,服务器将恶意文件解析,攻击就达成了。

1.2 漏洞详解

文件上传漏洞非常好理解,有三个关键点,一是上传文件,二是找到文件上传的路径,三是使恶意文件得到解析。
假设一个系统没有防御(后面会讲绕过),文件上传漏洞步骤就如下:

  1. 上传恶意文件,如php一句话木马:
<?php @eval('cmd');?>
  1. 服务器返回上传到的路径:
    路径可能可以在Response中看到,也可能很简单的回显给你,比如头像,文章之类的,你就知道路径了(当然,也有可能很难找)
    例如路径为:http://xxx.com/41937489134/cmdshell.php
  2. 使恶意文件得到解析:
    有时候直接点击链接,文件就得到执行了(有时候无法执行,就需要配合文件包含漏洞等),如:
    点击http://xxx.com/41937489134/cmdshell.php ,之后用蚁剑等工具连接就getshell了。
    image

上述的情况非常理想,几乎不可能,那么如何绕过和构造利用链就是重中之重了。

二、检测与利用

检测方法很简单,找到可以上传文件的接口,尝试各种绕过技巧或构造利用链,如果可以,那就是存在。
利用也很简单,构造木马文件(一句话木马,大马,图片马等),上传解析,就可以getshell了。
主要还是绕过和构造利用链!!!

三、修复与绕过

这里将修复与绕过统一起来说,便于读者理解和选择绕过技巧。偏向于攻击者视角。

3.1 JS前端检查

JS前端检查这种防御手段形同虚设,两种绕过方式:

  1. F12开发者工具禁用JS。
  2. BurpSuite抓包,改包。例如想传muma.php,先改一下后缀名,改为muma.jpeg,然后BP抓包再改回muma.php即可。

3.2 Content-Type校验

根据请求报文Content-Type字段进行校验,绕过方式:
抓包,将Content-Type改为image/jpeg,image/png,application/pdf等服务端允许接收的即可。

3.3 文件头类型检测

文件头(有时也叫 魔数 Magic Number)指的是文件开头的几个字节(通常 2~8 字节,有的更长),这些字节是文件格式的标识,用来告诉操作系统或应用程序该文件属于什么类型。可用于识别文件类型,往往比扩展名更可靠。常见的文件头有:

文件类型 十六进制文件头 (Magic Number) 说明
JPEG (jpg) FF D8 FF E0FF D8 FF E1 数码照片最常见格式
PNG (png) 89 50 4E 47 0D 0A 1A 0A PNG 标志
GIF (gif) 47 49 46 38 39 6147 49 46 38 37 61 “GIF89a” 或 “GIF87a”
BMP (bmp) 42 4D “BM”
TIFF (tif) 49 49 2A 004D 4D 00 2A 分别对应小端/大端
PDF (pdf) 25 50 44 46 “%PDF”
ZIP (zip/docx/pptx/xlsx/jar) 50 4B 03 04 ZIP 压缩包及基于 ZIP 的 Office 文件
RAR (rar) 52 61 72 21 1A 07 0052 61 72 21 1A 07 01 00 RAR4 / RAR5
7z (7zip) 37 7A BC AF 27 1C 7-Zip
EXE (Windows) 4D 5A “MZ” 标志
ELF (Linux可执行) 7F 45 4C 46 “ELF” 标志
MP3 (音频) 49 44 33FF FB “ID3” 标签 或 MP3 帧头
MP4 (视频) 00 00 00 18 66 74 79 70 69 73 6F 6D “ftypisom”
WAV (音频) 52 49 46 46 + ... + 57 41 56 45 “RIFF....WAVE”
XML/HTML 没有固定魔数,一般开头是 <
文件头检测也不一定安全,工具者可以通过二进制编辑工具,如010Editor,在文件开头插入伪造的文件头进行绕过。

3.4 文件拓展名检测

文件拓展名检测大体可分为白名单检测和黑名单检测。白名单检测往往更加的安全。

3.4.1 黑名单检测:

如服务器端禁止"php,jsp"文件。
绕过方法大致如下:

  1. 大小写双写混淆:如PhP, jsP这类的,还有pphphp,jjspsp
  2. 00截断:php版本低于5.3.4可以尝试%00截断。如muma.php%00.jpeg。这样%00之后的字段会被截断丢弃,就相当于muma.php,从而进行绕过。
  3. Windows特性:有些绕过利用了Windows的特性,如Windows会忽略最后的'.'' ',还有Windows附加数据流。如muma.php. .,muma.php::$DATA进行绕过
  4. 同义文件拓展名:如将php换成php3,php2之类的,默认配置下可能不太好用。
  5. .htaccess绕过:.htaccess文件为Apache配置文件,仅作用于当前目录。通过在里面写"AddType application/x-httpd-php .php .txt .jpg"等将常见后缀名作为php解析,之后上传.txt等文件就可以实现注入了。但是前提是Apache允许其生效,AllowOverride All才可以,默认配置不可以。
  6. .user.ini绕过:.user.ini是用户自定义配置文件,用于覆盖或追加全局配置文件(如.php.ini)中的PHP配置选项。

3.4.2 白名单检测:

绕过方法大致如下:

  1. 00截断:php版本低于5.3.4可以尝试%00截断。如muma.php%00.jpeg。这样%00之后的字段会被截断丢弃,就相当于muma.php,从而进行绕过。
  2. 图片马:图片马的使用一般需要结合文件包含漏洞来实现(详细见下)。图片马的制作就是将一句话木马写入合法图片之中,然后上传图片,但是因为图片默认不会被执行,所以需要配合文件包含漏洞来实现。如果上传的图片会被重写,可以上传GIF图片,因为GIF图片常常会有大段内容不被重写。之后对比原GIF图片和重写后的GIF,找到没有被重写的部分,加入恶意代码。重新上传即可。

3.5 绕过链

3.5.1 与文件包含漏洞:

  1. 先正常上传一个图片马,因为是图片,所以大部分时候都可以上传成功。
  2. 得到图片上传到的地址:http://xxx.com/pics/muma.jpeg
  3. 使用文件包含漏洞(可执行)包含图片马执行:如:http://xxx.com/aaa?include=http://xxx.com/pics/muma.jpeg
  4. 使用蚁剑连接即可。
    当然,如果有文件包含漏洞,常常可以尝试日志注入,日志注入成功就用不着文件上传漏洞了。文件包含漏洞详解:https://www.cnblogs.com/L-xy/p/19093806

3.5.2 与反序列化漏洞:

  1. 先将序列化payload进行上传。
  2. 同样的,利用反序列化漏洞对上传的序列化payload进行反序列化。
  3. payload被执行,攻击成功。
    同样的,如果有反序列化漏洞,也可以考虑日志注入。

相关文章:

漏洞详解--文件上传 如何花样绕过?!

一、漏洞原理 1.1 核心 文件上传漏洞,顾名思义,将攻击者将恶意文件上传到服务器,服务器将恶意文件解析,攻击就达成了。 1.2 漏洞详解 文件上传漏洞非常好理解,有三个关键点,一是上传文件,二是找到文件上传的路径,三是使恶意文件得到解析。 假设一个系统没有防御(后面会…...

使用Windows客户端访问EDA环境的NFS共享

在IC设计环境中, 也总是会有Windows操作系统的开发服务器或者客户端需要使用IC设计平台中Linux主机使用的NFS服务器。 使用者也是IC设计团队中的一员,可能出于设计工具的原因, 他/她的部分工作必须在Windows中完成, 同时也需要保持NFS目录的权限体系,不能为了这少量的Wind…...

Day03-1

public class HelloWorld { public static void main(String[] args) { String teacher = "David"; System.out.println("Hello World"); } //有趣的代码注释 //单行注释 //输出一个Hello,World! //多行注释 :可以注释一段文字 /注释/ /* 我是多行注释 我…...

使用php -S 127.0.0.1:8000 新建php服务

php -S 127.0.0.1:8000 启动服务后 当前坐在目录下的所有文件都可以在浏览器上以 http://127.0.0.1/目录/文件名称 的形式访问 比如: 浏览器访问 http://127.0.0.1/upload_files.php 就会直接调用当前目录 upload_files.php 浏览器访问 http://127.0.0.1/ims/abc.png 就会打开…...

Day03

强类型语言 所有变量都需要定义后才能使用,Java,C++ 弱类型语言 Javascript 数据类型(JAVA) 基本类型 数值类型字符类型 char 占两个字节 浮点类型(小数)float 占四个字节 double 占八个整数类型byte 占一字节 short 占两字节 int 占四字节 long 占八字节boolean类型 占一…...

完整教程:从“我店”模式看绿色积分电商平台的困境与破局

完整教程:从“我店”模式看绿色积分电商平台的困境与破局pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", m…...

Java第三周课前思考

什么样的方法应该用static修饰?不用static修饰的方法往往具有什么特性?Student的getName应该用static修饰吗?完成独立功能或创建类的实例或对类级别的属性进行操作的方法应该用static修饰。 不用static修饰的方法往往具有依赖实例状态、通过实例调用、可访问静态变量和方法、…...

Java的安装及卸载

卸载JDK删除java的安装目录 删除JAVA_HOME(环境配置中) 删除path下关于java的目录(环境配置中) cmd中查找java -version是否仍存在安装JDK百度搜索JDK8,找到下载地址 同意协议 下载电脑对应的版本 双击安装JDK 记住安装的路径 配置环境变量我的电脑-->右键-->属性 环…...

题解:P13882 [蓝桥杯 2023 省 Java A] 小蓝的旅行计划

挺可爱的反悔贪心,乍一看没看出和旅行家的预算的区别,甚至做完才发现不一样的说。 正文 首先我们可以将操作分为两个部分。分别是用油操作和加油操作。 用油 有一个简单的贪心策略,用油的时候首先使用最便宜的油,这点显然。 此外,如果当前油箱里所有油都不能到达下一站,自…...

实用指南:订阅式红队专家服务:下一代网络安全评估新模式

实用指南:订阅式红队专家服务:下一代网络安全评估新模式pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", m…...

更快的布尔矩阵乘法

这是小蝴蝶研读的第二篇论文,时间复杂度的话,原论文写的是 \(\frac{n^3}{2^{\Omega(\sqrt[7]{\log n})}}\),我感觉这个界可以精确分析出来,不过我还没看懂论文,先占个坑。...

数据结构初阶——红黑树的实现(C++) - 教程

数据结构初阶——红黑树的实现(C++) - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !im…...

CMC蒲和平3.1

例3(凑)求 \(\int\frac{dx}{\sqrt[3]{(x + 1) ^ 2(x - 1) ^ 4}}\).solution 注意到 \(d(\frac{x + 1}{x - 1}) = \frac{-2}{(x - 1) ^ 2} dx\),考虑凑微分。 \[I = \int \frac{dx}{\sqrt[3]{(\frac{x + 1}{x - 1}) ^ 2} (x - 1) ^ 2} = -\frac{1}{2}\int \frac{d(\frac{x + …...

解码C语言数组

一维数组 数组是相同类型数据元素的有序集合,通过下标(索引)访问元素,内存中连续存储。 数组名表示首元素地址,sizeof(arr) 返回整个数组的字节大小 核心特点元素类型一致:所有元素必须为同一数据类型(如 int, float)。 固定大小:数组长度在声明时确定,静态数组无法动…...

github启用Disscussions讨论功能

配置步骤 1. 设置GitHub仓库并启用Discussions功能 首先需要为你的GitHub仓库启用Discussions功能:访问你的GitHub仓库: https://github.com/KkaiFang/my_notes点击 Settings 标签页向下滚动找到 Features 部分勾选 Discussions 复选框来启用讨论功能2. 配置Giscus评论系统 访…...

RWA技术规范解读:如何实现现实世界资产的合规代币化

RWA技术规范解读:如何实现现实世界资产的合规代币化 近日,深圳市信息服务业区块链协会发布了《RWA技术规范》(T/SZBA-2025),这是国内首个针对现实世界资产代币化的团体标准。本文将深入解读该规范的核心内容,帮助读者全面了解RWA代币化的技术框架和实施要点。 1. 什么是RWA…...

干货预警!Apache SeaTunnel 助力多点 DMALL 构建数据集成平台,探索AI新零售行业应用!

🎉亲爱的社区朋友们,数据集成领域的一场知识盛宴即将来袭!9 月 30 日下午 2 点,Apache SeaTunnel 社区精心策划的又一场线上 Meetup 将准时与大家云端相见!🎉亲爱的社区朋友们,数据集成领域的一场知识盛宴即将来袭!9 月 30 日下午 2 点,Apache SeaTunnel 社区精心策…...

Apache SeaTunnel 2.3.12 发布!核心引擎升级、连接器生态再扩张

近期,Apache SeaTunnel 2.3.12 正式发版。这是继 2.3.11 之后的又一次迭代,本周期合并 82 个 PR,提供 9 项新特性、30+ 项功能增强、20+ 处文档修正,并修复 43 个 Bug。核心改进集中在 SensorsData 与 Databend 生态接入,Paimon、ClickHouse、MaxCompute 等连接器读写能力…...

详细介绍:对于牛客网—语言学习篇—C语言入门—链表的题目解析

详细介绍:对于牛客网—语言学习篇—C语言入门—链表的题目解析pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New&quo…...

Day17Arrays类的初步认识

package com.cc.array;import java.util.Arrays;public class ArrayDem6 {public static void main(String[] args) {int[] a = {12, 3, 43, 4, 235, 5, 6, 45, 7, 7};System.out.println(a);//[I@f6f4d33//打印数组元素System.out.println(Arrays.toString(a));//toString:以字…...

小学生模拟赛题解

A 正常做这题显然 \(10^{18}\) 是不可做的,所以问题一定出现在 gen 上。 注意到 \(7\mid2009\),换句话说,若 \(t_1=3k(k\in\mathbb N_+)\),那么 \(t_2=t_1+9\),这就导致 \(3\mid t_2\)。以此类推,会发现对于 \(\forall i\in[2,n]\),满足 \(t_i-t_{i-1}=9\),答案就是 \(…...

服务器安装docker、mysql、redis、nginx、nacos、jdk等

一、安装docker 1.1、安装必要工具 sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm21.2、进行仓库源设置 sudo yum-config-manager \ --add-repo \ https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo1.3、docker安装安装最新…...

StringComparer.OrdinalIgnoreCase

StringComparer.OrdinalIgnoreCase 是 .NET 提供的不区分大小写、且按 Unicode 码位排序的字符串比较器,适用于哈希表、字典、集合、排序等需要显式指定比较规则的地方。1. 核心特点特性说明比较规则 不区分大小写(A == a)排序规则 纯 Unicode 码位顺序(文化无关)性能 比文…...

LLM大模型:Qwen3-Next-80B中的next究竟是个啥?

1、近期,国内LLM头号玩家阿里发布了Qwen3-Next-80B模型,但从名字上看就和其之前发布的模型不同:多了next!这就奇怪了:为啥会多出一个next?这个next究竟是啥意思了?2、自从3年前 chatGPT 3.5发布后,AI又开始大火,就是因为效果比传统的机器学习好10倍!效果为啥好了,核…...

中了勒索病毒 peng

中了勒索病毒 peng一,中招 早上一上班,看到电脑屏幕显示这样的壁纸。 居然中招了?不敢相信。 我发现自己的网盘里的所有文件,都被加密并改名,形如 aaaa.jpg.[[VlDy9dk2RaQ1F]].[[Ruiz@firemail.cc]].peng 而且这些文件,都已同步到了网盘,通过手机app访问,也只能看到这些…...

在 WSL 中通过 Bash 函数快速转换 Windows 路径为 Ansible/WSL 路径 - 教程

在 WSL 中通过 Bash 函数快速转换 Windows 路径为 Ansible/WSL 路径 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Cour…...

金融租赁公司厂商租赁业务调研报告

厂商租赁金融租赁公司厂商租赁业务调研报告 报告摘要 本报告旨在全面、深入地分析中国金融租赁公司(下称“金租公司”)厂商租赁业务的现状、模式、市场环境、监管动态、数字化转型路径及绩效评估体系。截至2025年,厂商租赁作为一种深度绑定产业的业务模式,正日益成为金租公…...

普科科技PKC7030H交直流电流探头应用指南​​

普科PKC7030H探头支持DC-120MHz带宽、1%精度,30A连续电流测量,适用于高频大电流交直流混合信号测试。在现代电力电子、新能源及高速数字系统的设计与调试中,对复杂电流波形的精准测量是分析效率、优化性能与保障可靠性的基石。​​普科科技(PRBTEK)PKC7030H高频交直流电流…...

从“分散”到“统一”,中控技术利用SeaTunnel构建高效数据采集框架,核心数据同步任务0故障运行!

本文将深入探讨中控技术基于 Apache SeaTunnel 构建企业级数据采集框架的实践,重点分享集群高可用配置、性能调优、容错机制及数据质量监控等方面的具体思考与方案。作者 | 崔俊乐引言:对企业而言,数据采集的核心挑战从来不仅仅是“同步”,而是如何在大规模、多元异构的复杂…...

再见 Cursor,Qoder 真香!这波要改写 AI 编程格局

如果把未来 AI 编程工具的核心竞争力用一句话总结,那就是:能不能让开发者在透明化的协作中,信任它、依赖它,并且和它一起把项目养大。作者:loonggg 真心建议大家去使用一下这段时间最新推出的一款 AI 编程工具:Qoder 。 真的是太好用了,一点也不比 Cursor 差。 为什么这…...

T/B cell subtype marker - un

B cell ref: https://www.abcam.cn/primary-antibodies/b-cells-basic-immunophenotypingT cell ref: https://www.abcam.cn/primary-antibodies/t-cells-basic-immunophenotyping作者:un-define出处:https://www.cnblogs.com/mmtinfo/p/19099331本文版权归作者和博客园共有,…...

SAP FICO 完全凭证替代

GGB1 这个参数是获取所有行项目的关键USING bool_data TYPE gb002_015*&---------------------------------------------------------------------* *& Form u902 *&---------------------------------------------------------------------* * text *…...

K8s Application模式下的flink任务执行精要

本文分享自天翼云开发者社区《K8s Application模式下的flink任务执行精要》,作者:l****n 构键k8s集群在这里,我们需要搭建一个K8S环境用于提供flink任务的运行时环境。在这里推荐使用kubeadm或者一些脚本工具搭建,可参考本自动k8s脚本工具。具体过程在这里省略,可以参考上…...

从0打造一个TTS语音合成引擎:原理与实现

语音合成技术(Text-to-Speech, TTS)近年来发展迅猛,从早期机械感十足的合成音到如今几乎可以以假乱真的人声,背后是深度学习技术的巨大进步。本文将带你了解现代语音合成的基本原理,并尝试用Python实现一个简易版的TTS系统。 语音合成技术演进图1:语音合成技术发展历程,…...

莫队

Argvchs 说我不会根号算法,把之前的博客搬过来,然后再补点东西。 一种离线算法,可以用 \(O(n\sqrt n)\) 的复杂度处理区间查询问题,当然,也可以带修,下文也会提到。 关于复杂度 莫队优化的关键是排序 + 分块,将每个询问离线下来,按照左端点所在块从小到大排序,假如左端…...

0voice-2.1.1-网络io与io多路复用select/poll/epoll

测试...

Java基本语句-分支语句

Java基本语句-分支语句Day05 如何在API字典中寻找自己想要的Scanner类型 1.点击搜索 输入Scanner 2.字典中回显示各种类型的获取方式: nextByte()、nextShort()、nextInt()、nextLong()、nextdouble()、nextFloat()、next()多种引用使用。 3.调用Scanner类的相关方法,来获取指定…...

丘成桐谈AI

很多重要的科学发现,是在平凡的事情里面突然有个突破。 观念上的突破,在我看人工智能有困难做不到,现在全民学人工智能, 听起来很好听,但是师资不够, 跟数学的整个合作是刚开始, AI看见万千数据 记者:您第一次感觉到AI的冲击时什么时候 Yau:哈哈我坦白跟你讲,我从来没…...

异常检测在网络安全中的应用 - 实践

异常检测在网络安全中的应用 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; …...

大文件分片上传

分片:// 获取文件对象const inputFile = document.querySelector(input[type="file"]);// 设置分片大小:5MBconst CHUNK_SIZE = 5 * 1024 * 1024;// 文件上传事件inputFile.onchange = async (e) => {// 获取文件信息const file = e.target.files[0];// 获取文件…...

人小鼠免疫细胞maker基因 - un

人小鼠ref:https://www.abcam.cn/primary-antibodies/immune-cell-markers-poster作者:un-define出处:https://www.cnblogs.com/mmtinfo/p/19099316本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究…...

HyperWorks许可配置

在工程设计和仿真领域,正确的软件许可配置是确保工作流程顺畅、提高生产效率和实现最佳投资回报的关键。HyperWorks作为业界领先的工程仿真软件,其灵活的许可配置功能为用户提供了广泛的定制选项,确保软件能够完全满足各种业务需求。 什么是HyperWorks许可配置? HyperWorks…...

国标GB28181视频平台EasyGBS如何解决安防视频融合与级联管理的核心痛点?

国标GB28181视频平台EasyGBS如何解决安防视频融合与级联管理的核心痛点?在平安城市、雪亮工程等大型安防项目中,如何解决不同品牌设备与平台之间的互联互通难题?本文深度解析基于国标GB/T28181协议的EasyGBS视频平台的核心特点与技术优势,阐述其如何通过标准化协议,实现大…...

python基础-推导式

1.列表推导式 : 有规律的快速创建或者控制列表1.1 创建列表 eg: list1 = [ i for i in range(10)]1.2 带条件判断的列表推导式eg: list1 = [ i for i in range(50) if i % 3 == 0]3.多个for循环实现的列表推导式eg: list1 = [(item1, item2) for item1 in list2 for item2 in…...

人 CD 抗原完全指南 - un

设立分化簇 (CD) 命名系统的目的是对白细胞表面抗原进行分类。 最初,表面抗原是根据与它们结合的对应单克隆抗体进行命名。随着各实验室逐渐发现抗原常能刺激产生多种单克隆抗体,因此需要采用一种统一的命名系统。1982 年于巴黎举行的第 1 届国际人类白细胞分化抗原专题讨论会…...

Java入门知识

Java的特性和优势 简单性 面向对象 可移植性 (“Write once ,run anywhere”) 高性能 分布式 动态性 (反射机制) 多线程 (同时进行) 安全性 (异常机制,防病毒防篡改) 健壮性 在学习过程中爱上它,能够不断主动学习 在机遇来临之前,不断健壮自己 Java的三大版本 “Wri…...

AUTOSAR网络管理

汽车行业的网络管理一般有两种,一种是AutoSar另一种是OSEK,为啥汽车要网络管理,其实是为了降低车辆电池消耗,当车辆不工作时所有总线上的ECU通讯模块或整个ECU处于低功耗状态。网络管理一般用在电池供电的ECU,比如车上CAN上的ECU。为了避免通讯错误,需要网络管理来协调网…...

写用例注意点

写用例注意点: 1、测试标题 明确测试点 2、写用例的前几条用例都是主要场景的用例先写 微信个人能发微信红包 微信群发能发拼手气红包 微信群发能发拼手气红包 微信群发能发专属气红包 3、测试标题尽量写内容不要写案例: 例如验证标题能修改密码为:6666 4、相同的模块可以进…...

12 路低延迟推流!米尔 RK3576 赋能智能安防 360 环视

在智慧城市建设加速与社区安防需求升级的双重驱动下,“360 无死角监控 + 实时响应” 已成为安防领域的核心诉求。传统监控方案常受限于摄像头接入数量不足、编解码效率低、推流延迟高三大痛点,难以覆盖社区、园区等复杂场景的全点位监控,更无法满足应急事件 “毫秒级响应” …...

A公司一面:类加载的过程是怎么样的? 双亲委派的优点和缺点? 产生fullGC的情况有哪些? spring的动态代理有哪些?区别是什么? 如何排查CPU使用率过高?

A公司一面:类加载的过程是怎么样的? 双亲委派的优点和缺点? 产生fullGC的情况有哪些? spring的动态代理有哪些?区别是什么? 如何排查CPU使用率过高?摘要 A公司的面经JVM的类加载的过程是怎么样的? 双亲委派模型的优点和缺点? 产生fullGC的情况有哪些? spring的动态代…...