掌控安全学院SQL注入靶场宽字节注入
在php中,magic_quotes_gpc这个函数为on时,就开启了转义功能,另外addslashes和mysql_real_escape_string也可以实现转义功能。可转移的的内容包括:单双引号、反斜杠、NULL字符。
宽字节注入过滤原理:
php发送请求到mysql时经过一次gbk编码,php会获取到数据进行魔术引号的处理。因为gbk时双字节编码,所以我们提交的"%df"这个字符和转义的反斜杠组成了新的汉字,然后数据库处理时是根据GBK去处理的,这个时候单引号就逃逸了出来。
宽字节注入绕过原理:
我们提交的数据会被加入"\","\"的编码是"%5c",我们在前面加上"%df"就变成了”%df%5c“,这个时候就变成了繁体字"運",变成了一个多个字节的字符。
为什么最后的查询语句表名要用16进制编码?
因为要用到单引号,会对查询产生影响,单引号会被加上反斜杠。
宽字节注入不是报错注入,且宽字节注入适合所有场景。
'admin'处除了16进制绕过外还有什么方法?
还可以通过子查询的方式绕过,将原来查询的'admin'换成
(select table_schema from information_schema.tables where table_schema=database() limit 0,1)
解决思路
1.判断是否转义
2.使用字符让其与\形成一个汉字
3.判断是否存在SQL注入
4.判断有几个字段
5.爆破库名
6.爆破表名
7.爆破字段名
8.爆破字段值宽字节注入(一)
第一关:
输入单引号,发现被转义了

尝试闭合掉转义字符

判断是否存在SQL注入
http://inject2.lab.aqlab.cn/Pass-15/index.php?id=1%df' and 1=1-- qwe
http://inject2.lab.aqlab.cn/Pass-15/index.php?id=1%df' and 1=2-- qwe


判断字段数




将china_flag要转成十六进制



第二关

判断是否有注入


在利用布尔盲注就可以了,或者是联合查询
掌控安全学院SQL注入靶场宽字节注入的更多相关文章
- SQL注入:宽字节注入
了解GBK编码 尽管现在呼吁所有的程序都使用unicode编码,所有的网站都使用utf-8编码,来一个统一的国际规范.但仍然有很多,包括国内及国外(特别是非英语国家)的一些cms,仍然使用着自己国家的 ...
- CTF—WEB—sql注入之宽字节注入
宽字节注入 宽字节注入是利用mysql的一个特性,mysql在使用GBK编码(GBK就是常说的宽字节之一,实际上只有两字节)的时候,会认为两个字符是一个汉字(前一个ascii码要大于128,才到汉字 ...
- 【PHP代码审计】 那些年我们一起挖掘SQL注入 - 5.全局防护Bypass之宽字节注入
0x01 背景 首先我们了解下宽字节注入,宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而导致的注入漏洞.具体原 ...
- SQL宽字节注入
0x00 概述 - 什么是宽字节注入? 宽字节注入就是因为gbk编码方式需要两个ascii码组合来解码,所以形象的叫做宽字节,这个作为了解即可 -宽字节注入的条件 1) 数据库查询设置为GBK编码 2 ...
- GBK宽字节注入SQL
SQL注入:宽字节注入(GBK双字节绕过) 2015-06-09lyiang 宽字节注入的作用是非常大的,实际上在代码层的防御一般不外乎两种,一是反斜杠转义,而就是replace替换成空字节,之前的替 ...
- SQL注入--宽字节注入
PHP测试代码: <?php // 面向对象写法 $id=addslashes($_GET[‘id’]); //获取id并转义预定义字符 // /$id=$_GET[‘id’]; $mysqli ...
- Sql 注入详解:宽字节注入+二次注入
sql注入漏洞 原理:由于开发者在编写操作数据库代码时,直接将外部可控参数拼接到sql 语句中,没有经过任何过滤就直接放入到数据库引擎中执行了. 攻击方式: (1) 权限较大时,直接写入webshel ...
- SQL注入汇总(手注,盲注,报错注入,宽字节,二次编码,http头部){10.22、23 第二十四 二十五天}
首先什么是SQL注入: 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令. SQL注入有什么危害? 危害:数据泄露.脱库 ...
- SQL注入篇二------利用burp盲注,post注入,http头注入,利用burpsuit找注入点,宽字节注入
1.布尔盲注burpsuit的使用 先自己构造好注入语句,利用burpsuit抓包,设置变量,查出想要的信息. 比如----查数据库名的ascii码得到数据库构造好语句 http://123.206. ...
- Mysql宽字节注入(转)
尽管现在呼吁所有的程序都使用unicode编码,所有的网站都使用utf-8编码,来一个统一的国际规范.但仍然有很多,包括国内及国外(特别是非英语国家)的一些cms,仍然使用着自己国家的一套编码,比如g ...
随机推荐
- Zstack使用经验系列2-安装的存储配置
从上图读者应该能看出当初分配主存储和镜像存储时空间分配的是多么不合理,镜像空间不需要那么多.不过这时系统已经运行了近1年,很多云主机以及系统服务都搭好了,如果再重新分配空间是多么的麻烦! 所以开始为p ...
- vue3和vue2的区别
一.Vue3介绍 Vue 新版本的理念成型于 2018 年末,当时 Vue 2 的代码库已经有两岁半了.比起通用软件的生命周期来这好像也没那么久,但在这段时期,前端世界已经今昔非比了 在更新(和重写) ...
- dvgis计算两点间距离的问题
先贴一段代码,是dvgis里的distance.js源码,dvgis是cesium的二次封装,可以参考参考: 1import{Cesium}from'@dc-modules/namespace' 2i ...
- JZOJ 3184. 【GDOI2013模拟7】最大异或和
最大异或和 可持久化字典树经典题 题目网上自己找 来波模板 \(Code\) #include<cstdio> #include<iostream> using namespa ...
- Commons-Collections反序列化
Java反序列化漏洞 Commons Collections Apache Commons 是 Apache 软件基金会的项目.Commons Collections 包为 Java 标准的 Coll ...
- axios 下载文件流或者预览在线pdf
问题: 后端返回文件流,前端使用axios下载或者在线预览 下载文件流 import axios from 'axios' // 设置响应类型为blob axios.get('/api/app/xxx ...
- Prometheus学习笔记之设置存储时间为30天不生效
0x00 概述 Prometheus升级到2.23进行测试发现,设置存储时间为30天未生效,根据官方说明手册,实际运行后发现数据只能存储几个小时.... --storage.tsdb.retentio ...
- 使用git cz 时报模块找不到 使用commitizen init cz-conventional-changelog --save --save-exact --force 又报下面错 头晕
使用git cz 时报模块找不到 使用commitizen init cz-conventional-changelog --save --save-exact --force 又报下面错 头晕 At ...
- vue增强第三方UI库(element-ui)
vue增强第三方UI库(element-ui) 目前笔者了解有以下思路拓展第三方ui库,此系列以element-ui作为例子 指令. 混入. 二次封装. fork一份element-ui仓库,修改代码 ...
- @NotNull,@NotBlank,@NotEmpty注解的区别
开发中常看见@NotNull,@NotBlank,@NotEmpty三个注解,但却没有深入了解过,下面介绍一下他们的应用场景和区别 @NotNull:主要用在基本数据类型上(Int,Integer,D ...