本文章主要涉及sql宽字节注入注入的原理讲解,如有错误,望指出。(附有目录,如需查看请点右下角)

一、下图为本次文章所使用到 user表,该表所在的数据库为 test。

二、首先介绍一下本篇文章所用到的知识点:

常用到的url编码:

空格:%20

单引号:%27

在sql注入中,单(双)引号的应用十分重要,他决定着你能否从原有的一对引号之间逃逸出

井号(#):%23

在sql注入中,#号常被用来注释,即在使用单引号与原有一对单引号的第一个单引号进行闭合之后,用#将原有的一对单引号的第二个单引号注释掉,否则会出现语法错误。

反斜杠():%5C

在sql注入中,\号常用来进行反编译。

addslashes函数(php4,php5,php7):

格式:string addslashes(string $str)

作用:返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线(\)。这些字符是单引号(')、双引号(")、反斜杠(\)与 NULL(NULL字符)

为什么使用该函数:

在单(双)引号,反斜线,NULL前加上反斜线会起到转义的作用:以单引号为例,再加上反斜线之后,单引号就会被转义,就是说,此时的单引号仅仅是一个单引号,但已经不具备单引号原有的语法功能了(相当于单引号就仅仅是一个字符串了)这样就可以在一定程度上对sql注入进行一定的预防。

那么我们应该如何从addslashes函数中逃逸出来呢?

存在两种解决方法:

"" 的前面再加一个 ""(或单数个),变成 "\'",这样""就被转义了,"'"逃出了限制。

使 "" 消失掉。

以上两种方法中,本节课讲述的是第二种,即利用宽字节注入把反斜杠弄没。

宽字节注入的原理:

原理:宽字节注入是利用mysql的一个特性,mysql在使用GBK编码的时候,会认为两个字符是一个汉字(前一个asci码要大于128,才到汉字的范围)

eg:

在用hackbar进行汉字输入的时候你会发现,那段汉字就会变成一段百分号编码,这样我们就可以利用这个原理从而把反斜杠干掉。就如上图,在进行转义之后,原本是两个百分号变成了三个,又因为汉字是由两个百分号组成,所以系统就会识别前两个百分号成一个汉字,从而将“\”干掉。%5c就是“\”

oracle宽字节注入,CTF-sql-宽字节注入相关推荐

  1. php ping 命令注入,CTF关于ping命令注入问题

    题目样式 对于看到ping或者ping命令却没有弄waf时就要想到命令注入. 具体注入方法 看到ping命令就可以利用截断来执行新的命令. 首先测试所有的截断符号: '$' ';' '|' '-' ' ...

  2. SQL注入-盲注-时间注入-报错注入-布尔盲注-DNSlog注入-宽字节注入-WAF绕过-SqlMap使用

    Sqli-labs的安装 1.安装WAMP http://www.wampserver.com/ WAMP是php + mysql + Apache环境集成工具 2.下载Sqli-labs https ...

  3. mysql sql宽字节注入_sql注入之(宽字节注入篇)

    注入原理 在magic_quotes_gpc=On的情况下,提交的参数中如果带有单引号',就会被自动转义\',使很多注入攻击无效, GBK双字节编码:一个汉字用两个字节表示,首字节对应0×81-0xF ...

  4. mysql宽字节注入_转宽字节注入详解

    在mysql中,用于转义的函数有addslashes,mysql_real_escape_string,mysql_escape_string等, 还有一种情况是magic_quote_gpc,不过高 ...

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

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

  6. oracle和mysql存储汉字_mysql和oracle的一个汉字占几个字节

    以前一直使用oracle11g,一个汉字占3个字节,所以在操作mysql时也一直这样分配长度. 今天测试了下发现不对了 可以看到第一个的长度确实是15,但是第二个为什么是5? 在网上找到资料:char ...

  7. Oracle一个中文汉字占用几个字节

    Oracle 一个中文汉字 占用几个字节,要根据Oracle中字符集编码决定   查看oracle server端字符集 select userenv('language') from dual; 如 ...

  8. surfire 单元测试 使用了mock字节码再生和注入, UseSplitVerifier防止字节码校验

    使用了mock字节码再生和注入,那么在jacoco 分析的时候,会字节码校验,会报字节码不合规问题,编码问题. 在surfire 中配置: <plugin><groupId>o ...

  9. Oracle中一个汉字占几个字节

    Oracle中一个汉字占几个字节? 某天,在向一个字段类型为CHAR(6)的表中插入数据'大沽口'时报错,提示'too large for column(actual: 9 ,maximum: 6)' ...

  10. oracle中文占3,Oracle一个中文汉字占用几个字节

    Oracle一个中文汉字占用几个字节,要根据Oracle中字符集编码决定. --查看oracle server端字符集 select userenv('language') from dual; -- ...

最新文章

  1. 网页转变成app,隐藏浏览器地址栏
  2. 大型网站技术架构文摘
  3. 漫反射 高光反射_如何有效地使用反射
  4. linux中使用随机数
  5. 玩转oracle 11g(19):ora-00020和64位数据库安装32为plsql
  6. 《Python程序设计》在亚马逊京东当当互动出版网淘宝全面上架
  7. Vue中使用节流Lodash throttle
  8. 轻松三步教你配置oracle,Oracle Net Configuration Assistant 配置步骤简明教程
  9. 实习踩坑之路:Mybatis写的sql语句有<符号的问题导致项目启动失败以及count(*)怎么对应到某个实体类的字段
  10. 【论文学习】《One-shot Voice Conversion by Separating Speaker and Content Representations with IN》
  11. word设置行距18磅
  12. 中国电子束抗蚀剂市场深度研究分析报告
  13. numpy和panda快速入门
  14. java 线程卡住_Java程序卡住及排查
  15. Unicode编码的理解
  16. 韩国PAYWAVE认证之韩城攻略
  17. 软件加密系统Themida应用程序保护指南(九):通过命令行进行保护
  18. 【c#系列】PDF进行操作-浏览、分割、合并、插入、删除(4)完
  19. Win 10 环境下 eclipse 安装使用教程
  20. React里里面试准备

热门文章

  1. 用Wiwiz创建商用无线热点
  2. CSS3只让背景图片旋转180度
  3. 运行jar包的通用shell脚本
  4. gitlab runner下载安装注册+卸载 + shell指令没执行的问题
  5. msys2编译WxWidgets
  6. 【MATLAB】imadjust, histeq, adapthisteq调整图像对比度
  7. 西方(东方)同行眼中的东方(西方)程序员
  8. bool c语言_C语言之变量
  9. 10.6 Git 内部原理 - 传输协议
  10. STS 编辑器与Myeclipse工作空间冲突问题