83.网络安全渗透测试—[SQL注入篇22]—[高级注入技巧-位移注入]

本文阅读 3 分钟
首页 代码,C/C#/C++ 正文

我认为,无论是学习安全还是从事安全的人,多多少少都有些许的情怀和使命感!!!

一、高级注入技巧-位移注入

1、简介

(1)场景:这种注入方式合适在找到表找不到字段的情况下使用。

(2)实质:这种注入方式,需要联合两个表,所以这种注入实际上就是联合查询注入的一种。

2、原理

(1)在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

(2)在使用位移注入这种注入方法之前,需要确定当前表的字段数,通俗的说应该是后台的查询语句中的表的字段个数。例如:此时后台的表是article,且它的的字段数为3个,分别是id、title、content,如下图所示: img

(3)例如:表admin的字段数也是3个,此时使用联合语句把admin表联合进artical表来查询。如果使用的是select * from article where id=1 union select 1,2,3 from admin这条语句。此时因为两表列数一样,会进行结果合并。注意,虽然admin表里面并没有1,2,3为名的字段,同时由于select语句的特性,同样也会打印显示出1,2,3。

img (4)假如:表admin的字段数也是3个,此时使用联合语句把admin表联合进artical表来查询。如果使用的是select from article where id=1 union select admin. from admin这条语句。此时因为两表列数一样,会进行结果合并。 img (5)当然,此时也可以把语句改成select from article where id=-1 union select admin. from admin;这样就会只显示表admin的数据 img

3、总结

(1)使用这种方法的限制:当前表也就是被联合的表的字段个数要大于或等于联合的表

(2)上例的两个表结构:

img img

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/qq_45555226/article/details/122627156
-- 展开阅读全文 --
KillDefender 的 Beacon 对象文件 PoC 实现
« 上一篇 02-09
Web安全—逻辑越权漏洞(BAC)
下一篇 » 03-13

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复