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

WAF绕过常见方法

        前面写了WAF如何检测,现在直接上WAF常见的一些绕过方法。

方法1:变换大小写

实例:

         比如WAF拦截了union,那就使用Union、UnloN等方式绕过。

方法2:编码绕过

实例1:

        WAF检测敏感字~,则可以用Ox7e代替,如extractvalue(1,concat('~'.database())可以写成extractvalue(1,concat(Ox7e,database())).

实例2:

        WAF检测敏感字"admin',则可以用Ox61646d696e代替,如select name,passfrom userswhere name='admin'可以替换成select name,pass from users where name=Ox61646d696e.

实例3:

        WAF检测敏感字select,可以在URL中将select变成%73elEcT编码结合大小写变换绕过WAF。实例4:可以用%09、%0a、%0b、%Oc、%0d、%a0、!**1、/*somewords*/等来替换空格。

方法3:利用注释符

        适用于WAF只过滤了一次危险的语句,而没有阻断整个查询语句的场合。

实例:

        原查询语句为:?id=1 union select 1,2,3,对于这条查询,WAF过滤了一次union和select,我们可以用内敛注释符注释掉里面的过滤掉,如?id=1/*union*/union /*select*/select 1,2,3

方法4:重写

        适用于WAF只过滤—次敏感字的情况。

实例:

        WAF过滤敏感字union,但只过滤一次,则可以写出类似ununionion这样的,过滤一次union后就会执行我们的查询了:?id=1 ununionion select 1,2,3

方法5:比较操作符替换

        适用于某—比较操作符(如等号)被过滤的情况。

实例1:

        !=不等于,>不等于,<小于,>大于,这些都可以用来替换=来绕过。

        比如要判断某个值是不是74,假设=被过滤,则可以判断是不是大于73,是不是小于75,然后就知道是74了:/?id=1 and ascii(lower(mid((select pwd from users limit 1,1),1,1))>73

                        /?id=1 and ascii(lower(mid((select pwd from users limit 1,1),1,1)))<75

实例2:

        WAF将=、>、<全部过滤,则可以利用like来绕过,如?id=1' or 1 like 1

方法6:同功能函数替换

        适用于某—函数被过滤的情况。

实例:

        假如substring()被WAF过滤,但substring()可以用同功能的mid(),substr()等函数来替换,都是用来取字符串的某—位字符的。

        原查询语句: substring((select 'password'),1,1)= Ox70替换后的查询语句:

        substr((select 'password'),1,1)= Ox70mid((select 'password'),1,1) = Ox70

方法7:盲注的活用

        适用于页面无回显或多种函数、逻辑运算符被过滤的情况。实例: strcmp(expr1,expr2)用来比较两个值,如果expr1=expr2,则函数返回0,expr1<expr2则返回-1,expr1>expr2则返回1。

        假如index.php?uid=123页面返回是正确的,但WAF过滤了and和or ,

        原查询语句index.php?uid=123 and left((select hash from users limit 0,1),1)='B',可用

index.php?uid=strcmp(left((select hash from users limit 0,1).1),0x42)+123来替换,通过盲猜hash的第一位,如果第一位等于Ox42也就是B,那么strcmp()将返回0,0+123=123,所以页面应该是正确的。否则就说明不是B,这样猜就不用and和or了.

方法8:二阶注入

        所谓二阶注入(又称存储型注入)是指已存储(数据库、文件)的用户输入被读取后再次进入到SQL查询语句中导致的注入。

        普通SQL注入:

        发生在一个HTTP请求和响应中,对系统的攻击是立即执行的:

        (1)攻击者在http请求中提交非法输入;

        (2)应用程序处理非法输入,使用非法输入构造SQL语句;(3)在攻击过程中向攻击者返回结果。

        二阶SQL注入:

        (1)攻击者在http请求中提交某种经过构思的输入

        (2)应用程序存储该恶意输入(通常保存在数据库中)以便后面使用并响应请求;(3)攻击者提交第二次(不同的)http请求;

        (4)为处理第二次http请求,程序会检索存储在数据库中的恶意输入并进行处理,从而导致攻击者构造的SQL查询被执行;

        (5)如果攻击成功,在第二次请求响应中向攻击者返回查询结果。

方法9:密字节注入

        适用于数据库使用双字节编码方式(如GBK)、WAF利用AddSlashes()等函数对敏感字符进行转义的场景.

相关文章:

WAF绕过常见方法

前面写了WAF如何检测&#xff0c;现在直接上WAF常见的一些绕过方法。 方法1:变换大小写 实例: 比如WAF拦截了union&#xff0c;那就使用Union、UnloN等方式绕过。 方法2:编码绕过 实例1: WAF检测敏感字~&#xff0c;则可以用Ox7e代替&#xff0c;如extractvalue(1,concat(~…...

SpringCloud微服务 【实用篇】| Docker镜像、容器、数据卷操作

目录 一&#xff1a;Docker基本操作 1. 镜像操作 镜像相关命令 2. 容器操作 容器相关命令 3. 数据卷&#xff08;容器数据管理&#xff09; 数据卷 操作数据卷 挂载数据卷 挂载的方式区别 前些天突然发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0…...

OSPF面试总结

OSPF 基本特点 属于IGP、LS支持无类域间路由没有环路&#xff08;区域内运行LS、区域间是DV,所以所有的区域要和区域0相连&#xff09;收敛速度快使用组播发送数据 224.0.0.5、224.0.0.6 什么时候用224.0.0.5&#xff1f;支持多条等价路由支持协议报文认证 OSPF路由的计算过程…...

【算法系列篇】递归、搜索和回溯(四)

文章目录 前言什么是决策树1. 全排列1.1 题目要求1.2 做题思路1.3 代码实现 2. 子集2.1 题目要求2.2 做题思路2.3 代码实现 3. 找出所有子集的异或总和再求和3.1 题目要求3.2 做题思路3.3 代码实现 4. 全排列II4.1 题目要求4.2 做题思路4.3 代码实现 前言 前面我们通过几个题目…...

Windows 系统下本地单机搭建 Redis(一主二从三哨兵)

目录 一、Redis环境准备&#xff1a; 1、下载redis 2、Windows下的.msi安装和.zip格式区别&#xff1a; 二、哨兵介绍&#xff1a; 1、一主二从三哨兵理论图&#xff1a; 2.哨兵的主要功能&#xff1a; 3.哨兵用于实现 redis 集群的高可用&#xff0c;本身也是分布式的&…...

数据库访问被拒怎么操作?

就一点&#xff1a; &#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; cmd打开命令窗口直接输入 mysql -u root -p 然后加密码打开数据库服务再去试试&#xff01;&#xff01; &#xff01;&#xff01;&#xff01;&#xff01;&…...

Vue 2 生命周期即将结束

本文章翻译自 Vue 2 is Approaching End Of Life 文章原作者 youyuxi 2024 年即将到来&#xff0c;我们想借此机会提醒 Vue 社区&#xff0c;Vue 2 将于 2023 年 12 月 31 日达到生命周期结束 (EOL) Vue 2.0 于 2016 年发布&#xff0c;已有 7 年多的时间。这是 Vue 成为主流框…...

Python---端口和端口号的介绍

1. 问题思考 不同电脑上的飞秋之间进行数据通信&#xff0c;它是如何保证把数据给飞秋而不是给其它软件呢? 其实&#xff0c;每运行一个网络程序都会有一个端口&#xff0c;想要给对应的程序发送数据&#xff0c;找到对应的端口即可。 端口效果图: 2. 什么是端口 端口是传…...

Electron训练笔记

终端乱码解决办法&#xff1a;更改编号下载卡住解决办法&#xff1a;Electron RequestError: connect ETIMEDOUT 20.205.243.166:443electron本质是一个依赖库&#xff0c;改依赖库提供了部分对象&#xff0c;可以实现对于window的调用。electron有一个主进程&#xff0c;多个渲…...

2023 英特尔On技术创新大会直播 | 窥探未来科技的边界

2023 英特尔On技术创新大会直播 | 窥探未来科技的边界 写在最前面观后感其他有趣的专题课程 写在最前面 嘿&#xff0c;你是不是对科技和创新充满好奇&#xff1f;2023 英特尔 On 技术创新大会线上活动邀请你一起探索最前沿的科技世界&#xff01; 这不仅是一场普通的聚会&…...

机器学习之逻辑回归,一文掌握逻辑回归算法知识文集

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…...

H-ui前端框架 —— layer.js

layer.js是由前端大牛贤心编写的web弹窗插件。 laye.js是个轻量级的网页弹出层组件..支持类型丰富的弹出层类型&#xff0c;如消息框、页面层、iframe层等&#xff0c;具有较好的兼容性和灵活性。 layer.js用法 1.引入layer.js文件。在HTML页面的头部引用layer.is文件&#x…...

「Verilog学习笔记」游戏机计费程序

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 timescale 1ns/1nsmodule game_count(input rst_n, //异位复位信号&#xff0c;低电平有效input clk, //时钟信号input [9:0]money,input set,input boost,output reg[9:0…...

b站高可用架构 笔记

b站高可用架构 关键点&#xff1a;主机房&#xff0c;多活和多活机房 参考文章&#xff1a;bilibili技术总监毛剑&#xff1a;B站高可用架构实践 1. 前端和数据中心负载均衡 前端负载均衡(动态CDN):最近节点、带宽策略、可用服务容量 数据中心负载均衡:均衡流量、识别异常节…...

Android: Ubuntu下交叉环境编译常用调试工具demo for lspci命令(ARM设备)

lspci命令交叉环境编译(ARM设备) 交叉编译工具下载&#xff1a; https://releases.linaro.org/components/toolchain/binaries https://releases.linaro.org/components/toolchain/binaries/6.3-2017.05/aarch64-linux-gnu/ lspci命令交叉环境编译(ARM设备)&#xff1a; 1&a…...

《2023全球IPv6支持度白皮书》近日发布

近日&#xff0c;全球IPv6论坛联合中国的下一代互联网国家工程中心面向全球发布《2023全球IPv6支持度白皮书》。白皮书显示&#xff0c;在过去一年&#xff0c;全球IPv6支持度大幅提升&#xff0c;部署应用成效显著。全球IPv6部署率超过40%的国家数量同比增长了30%&#xff0c;…...

IDEA版SSM入门到实战(Maven+MyBatis+Spring+SpringMVC) -Spring的AOP前奏

第一章 AOP前奏 1.1 代理模式 代理模式&#xff1a;我们需要做一件事情&#xff0c;又不期望自己亲力亲为&#xff0c;此时&#xff0c;可以找一个代理【中介】 我们【目标对象】与中介【代理对象】不能相互转换&#xff0c;因为是“兄弟”关系 1.2 为什么需要代理【程序中…...

2023年度佳作:AIGC、AGI、GhatGPT 与人工智能大模型的创新与前景展望

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏:《linux深造日志》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! ⛳️ 写在前面参与规则 ✅参与方式&#xff1a;关注博主、点赞、收藏、评论&#xff0c;任意评论&#xff08;每人最多评论…...

直播电商“去网红化”势在必行,AI数字人打造品牌专属IP

近年来&#xff0c;网红直播带货“翻车”事件频发&#xff0c;给品牌商带来了信任危机和负面口碑的困扰&#xff0c;严重损害了企业的声誉。这证明强大的个人IP,对于吸引粉丝和流量确实能起到巨大的好处,堪称“金牌销售”,但太过强势的个人IP属性也会给企业带来一定风险&#x…...

Java如何开发PC客户端(Windows,Mac,Linux)

项目编译工具&#xff1a;Gradle开发工具&#xff1a; Idea开发语言&#xff1a; 建议java17以上ui组件&#xff1a;openjfx (org.openjfx.javafxplugin)打包工具: jpackage (org.beryx.jlink) 一、如何解决打包问题 java 14以后&#xff0c;有了jpackage工具&#xff0c;能够…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...

QT3D学习笔记——圆台、圆锥

类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体&#xff08;对象或容器&#xff09;QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质&#xff08;定义颜色、反光等&#xff09;QFirstPersonC…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么&#xff1f;1.1.2 感知机的工作原理 1.2 感知机的简单应用&#xff1a;基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...

搭建DNS域名解析服务器(正向解析资源文件)

正向解析资源文件 1&#xff09;准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2&#xff09;服务端安装软件&#xff1a;bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...

C#学习第29天:表达式树(Expression Trees)

目录 什么是表达式树&#xff1f; 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持&#xff1a; 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...

Redis:现代应用开发的高效内存数据存储利器

一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发&#xff0c;其初衷是为了满足他自己的一个项目需求&#xff0c;即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源&#xff0c;Redis凭借其简单易用、…...

小木的算法日记-多叉树的递归/层序遍历

&#x1f332; 从二叉树到森林&#xff1a;一文彻底搞懂多叉树遍历的艺术 &#x1f680; 引言 你好&#xff0c;未来的算法大神&#xff01; 在数据结构的世界里&#xff0c;“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的&#xff0c;它…...