掌控安全学院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 ...
随机推荐
- 华为eNSP 基础企业级WLAN配置
目标:STA可以扫描并连接到两个ssid,STA可以ping通ip:200.200.200.200 步骤:1 实现AP与AC之间的连通性. 2 在AC上配置与WLAN相关的各项参数 3 把AP ...
- kali linux 使用教程
kali linux使用教程 前言:Kali Linux 是专门用于渗透测试的linux操作系统,它由BackTrack发展而来,在整合了IWHAX.WHOPPIX和Auditor这三种渗透测试专用L ...
- js实现替换对象(json)格式的键名
某些场景下,我们拿到的键名与预期的键名不符,这个时候就需要替换键名来得到我们想要的内容 let obj = [ { id:1, title:'zs' }, { id:2, title:'ls' } ] ...
- Spark系列 - (3) Spark SQL
3. Spark SQL 3.1 Hive.Shark和Sparksql Hive:Hadoop刚开始出来的时候,使用的是hadoop自带的分布式计算系统 MapReduce,但是MapReduce的 ...
- 在真实世界中观察目标治疗策略实施1年对初诊RA患者的影响
在真实世界中观察目标治疗策略实施1年对初诊RA患者的影响 Tan AL, et al. Rheumatology 2016.Present ID: 083. 背景:制订目标治疗(T2T)建议是要将获得 ...
- 【论文笔记】UNet
语义分割的U-Net网络结构Unet是2015年诞生的模型,它几乎是当前segmentation项目中应用最广的模型.Unet能从更少的训练图像中进行学习,当它在少于40张图的生物医学数据集上训练时, ...
- Java语法基础课程总结
1.运行实例EnumTest.java并分析 结论:枚举类型属于引用类型,不属于原始数据类型它的每一个具体值都引用一个特定的对象,可以使用"=="直接比较枚举变量的值,枚举是可以从 ...
- Docker 安装mysql8
1.获取镜像 docker pull mysql:8 2.创建数据卷 必须创建数据卷,不然容器挂了数据就丢了 docker volume create mysql-data #创建docker vol ...
- net core 添加cors,解决跨域问题
ConfigureServices //允许跨域 services.AddCors(options => { options.AddPolicy("any", builder ...
- 百度脑图kityminder
KityMinder Editor 是一款强大.简洁.体验优秀的脑图编辑工具,适合用于编辑树/图/网等结构的数据. 编辑器由百度 FEX 基于 kityminder-core 搭建,并且在百度脑图中使 ...