一、宽字节注入

1、什么是宽字节

GB2312、GBK、GB18030、BIG5等这些都是常说的宽字节,实际为两字节

2、宽字节注入原理

防御:将 ' 转换为 \'

绕过:将 \ 消灭

mysql在使用GBK编码的时候,会认为两个字符为一个汉字

\ 编码为 %5c

' 编码为%27

%df%5c mysql会认为是一个汉字

构造:

%df' %df\' %df%5c%27 其中%df%5c将成为一个汉字专为 汉字' 从而绕过了/的转义

注:前一个ascii码大于128才能到汉字的范围

注入方法:在注入点后键入%df,然后按照正常的注入流程开始注入

工具注入方法:

在注入点后面手动添加%df即可 (没成功。。。)

白盒测试:

1、查看mysql编码是否为GBK

2、是否使用preg_replace把单引号替换成 \'

3、是否使用addslashes进行转义

4、是否使用mysql_real_escape_string进行转义

宽字节防御

1、使用UTF-8,避免宽字节

不仅GBK、韩文、日文等等都是宽字节,都有可能存在诸如漏洞

2、mysql_real_escape_string, mysql_set_charset('gbk',$conn);

3、可以设置参数, character_set_client=binary

二、二次编码注入

在url中可能出现一些特殊字符,如= & ; +

为了避免冲突,需要转移

index.php?id=1&name=admin&pwd=123

mysql会对url提交的编码进行自动转换

例如:url中的%3d,mysql会自动转为=

宽字节和二次编码注入:

是在面对php代码或配置,对输入的'(单引号)进行转义的时候,在处理用户输入数据时存在问题,可以绕过转义

二次编码注入是由于两次编码转义冲突导致出现的注入点

注入方法:在注入点后键入%2527,然后按照正常的注入流程开始注入

白盒测试

1、是否使用urldecode函数

2、urldecode函数是否在转义方法之后

三、二次注入

第一步, 插入恶意数据

保留了原来的数据,插入到数据库

第二步,引用恶意数据

在将数据存入到了数据库中之后,开发者未经验证,直接引用

例如修改密码

输入admin'#

在修改密码过程中,将会修改admin的密码

select concat_ws(0x7e,username,password) from security

四、Waf绕过原理分析

sql注入是***测试与waf防御最激烈的战场

1、白盒绕过

1)大小写变形

2)等价替换:and -> &&, or -> ||

3)。。。

2、黑盒绕过

一、架构层绕过

1) 寻找源站

2)利用同网段

3)利用边界漏洞

二、资源限制角度绕过

1、POST大BODY

三、协议层面绕过WAF的检测

1、协议未覆盖绕过WAF

*请求方式变换 get -> post

*content-type变换

2、参数污染

index.php?id=1&id=2

id=1

id=2

waf可能只检测id=1

四、规则层面的绕过

1、sql注释符绕过

level-1 union/**/select

level-2 union/*ajlsjdlf*/select

2 空白符绕过

mysql空白符:%09,%0A。。。

正则空白符: %09,%0A

example-1:union%250Cselect

3函数分分割符号

在函数和数据中间引入一些内容

concat%2520(

concat/**/(

concat%250c(

4 浮点数词法解析

select * from users where id=8E0union select 1,2,3,4

5 利用error-based进行sql注入:error-based sql注入函数非常容易被忽略

extractvalue(1, concat(0x5c,md5(3)));

updatexml(1,concat(0x5d,md5(3)),1);

6 mysql特殊语法

select{x table_name}from{x information_schema.tables};

五、Fuzz绕过waf

1、注释符绕过

*先测试最基本的: union/**/select

*再测试中间引入特殊字:union/*aaaa%01bbs*/select

*最后测试注释长度:union/*aaaaaaaaaaaaaaaa*/select

最基本的模式

union/*something*/select

将空格替换为/*sldfj$%^&*/

特殊函数 xx() 替换为 xx/*sldfj$%^&*/()

六、SQLmap waf绕过脚本编写

mysql注入转义绕过_SQL注入防御绕过相关推荐

  1. mysql注入转义绕过_SQL注入防御绕过——宽字节注入

    01 背景知识 字符集 在了解宽字节注入之前,我们先来看一看字符集是什么.字符集也叫字符编码,是一种将符号转换为二进制数的映射关系. 几种常见的字符集: ASCII编码:单字节编码 latin1编码: ...

  2. mysql注入fuzz字典_sql注入fuzz bypass waf

    0x0 前言 0x1 注入点检测 0x2 bypass waf 0x3 自动化 0x0 前言 这里是简单对sql注入绕过waf的一个小总结,非安全研究员,这里不讲原理,关于原理搜集了一些其他大佬的文章 ...

  3. mysql 注释 绕过_sql注入绕过方法

    一.注释符号绕过 在sql中常用的注释符号有 --.#./*xxx*/. 二.大小写绕过 当web正则过滤的时候对大小写不敏感的情况下使用,一般很少会有这种漏洞 比如当过滤了select的时候我们可以 ...

  4. mysql sleep详解_sql注入详解(二)

    sql注入详解 4.检测方法 首先是判断能不能进行sql注入 是哪种sql注入 (1)数字型 ?id=1 and 1=1 返回成功?id=1 and 1=2 返回失败 这说明是数字型注入,或者叫整型注 ...

  5. mysql注入fuzz字典_SQL注入常规Fuzz全记录

    前言 本篇文章是在做ctf bugku的一道sql 盲注的题(题目地址:注入题目)中运用了fuzz的思路,完整记录整个fuzz的过程,给师傅们当点心,方便大家加深对web sql注入 fuzz的理解. ...

  6. mysql 报错注入 读文件_SQL注入-读写文件

    SQL注入-读取文件 使用函数 load_file("文件路径/名称") 1.读取/etc/passwd 文件(SQL注入只能读取/etc/passwd文件,不能读取其他文件) h ...

  7. mysql 注入用例_SQL注入漏洞安全测试(WVS/POST型/手工SQL注入)

    1.WVS自动化SQL注入测试 n  测试目的: 测试网站是否存在SQL注入漏洞. n  测试用例: 1)     Scan settings选择sql injection策略: 2)     输入扫 ...

  8. mysql dba盲注_SQL注入学习-Dnslog盲注

    1.基础知识 1.DNS DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的 ...

  9. mysql sql注释符号_SQL注入注释符(#、-- 、/**/)使用条件及其他注释方式的探索

    以MySQL为例,首先我们知道mysql注释符有#.-- (后面有空格)./**/三种,在SQL注入中经常用到,但是不一定都适用.笔者在sqlilabs通关过程中就遇到不同场景用的注释符不同,这让我很 ...

  10. mysql注入绕过单引号_SQL注入-绕过过滤规则

    过滤规则产生的原因 前两篇举例了SQL注入Get请求/SQL注入Post请求的案例,都是因为程序要接收用户输入的变量或者URL传递的参数,并且参数或变量会被组成 SQL语句的一部分被执行.这些数据我们 ...

最新文章

  1. PHP开发移动端接口(增强版)
  2. 机器学习知识点(三)方差和标准差Java实现
  3. 将web项目导入到eclipse/MyEclipse中常见错误
  4. 世界上最奇异的10种树,你都见过吗?
  5. linux线程同步互斥说法,linux线程间的同步与互斥知识点总结
  6. 预训练语言模型论文分类整理
  7. 【C语言】字符串与整型数值之间的转换
  8. 华为p50 pro 鸿蒙,华为P50Pro真豪横!鸿蒙系统+真全屏5摄,网友:太香了!
  9. SQL 2005 带自增列 带外键约束 数据导入导出
  10. CefSharp入门-winform
  11. CCNA题库大换血,考生纷纷落马!(转)
  12. 零基础和我一起学Python系统 第五天 字符串
  13. 台式电脑怎么组装步骤_台式电脑怎么组装 U大侠分享组装台式机的具体步骤
  14. Linux:软硬链接
  15. wangEditor 粘贴从 word 复制的带图片内容的最佳实践
  16. 两数之和——python
  17. 修改文件句柄:ulimit 系统设置脚本(避免设置不彻底而无效)
  18. 使用nginx作图片服务器的访问权限控制
  19. Chromium浏览器password unlock
  20. 工装夹具检具治具机械设计机构solidworks模型3d课程图纸sw

热门文章

  1. 深度学习-文档检测方案整理
  2. t分布 u分布 卡方分布_u分布(u分布和t分布)
  3. 二级c语言题库手机软件,C语言二级考试题库手机下载-C语言二级考试题库APK下载 - Iefans...
  4. paraview编译
  5. python模拟鼠标点击和键盘输入的操作
  6. iOS模拟器发送通知和UI测试
  7. 图解机器学习算法(9) | GBDT模型详解(机器学习通关指南·完结)
  8. 拓扑排序算法原理及Java代码实现
  9. RS485芯片介绍及典型应用电路
  10. 一种小封装485芯片