Access-偏移注入
参考:网上关于这个的解释太多,这三个连接是我觉得写的清楚明了,好理解的
偏移注入语句:https://www.fujieace.com/penetration-test/access-offset-injection.html
join语句详解(便于理解偏移注入原理):https://www.jb51.net/article/4848.htm
偏移注入语句和原理和应用:https://www.jianshu.com/p/f2af42bd8fba
1 原理:借用数据库的自连接查询(inner join)让数据库内部发生乱序,从而偏移出所需要的字段在我们的页面上显示。
2 在看偏移注入的时候,有个地方我很疑惑:
偏移注入适用于知道表名,但不知道列名的时候。字段就是列
- 首先是order by 查询字段数,
- 再确定表名
- 再select 1,2,4,5,admin.* from admin 查询字段数
我就奇怪了,第一步就查询字段数了,后面查询的字段数是什么,后来查询到,原来order by 查询到的字段数并不是这个表的字段数,而是前面查询语句的查询结果的字段数
(哎,学术不精)
3 继续看偏移注入
admin.*==admin下所有字段
Select * from admin as A JOIN admin as B ON A.Aid=B.Aid 内连接查询,查询A表和B表Aid一样的数据的数据,因为A和B其实是一张表,就是命名不一样了,所以这个字段数是表的字段数的2倍
一级偏移语句:
127.0.0.1/asp/index.asp?id=1513 union select 1,2,3,4,5,6,7,8,9,10,* from (admin as a inner join admin as b on a.id = b.id)
如果你发现,上面查看了网页源码也爆不出数据,请用以下方法:
二级偏移语句:
127.0.0.1/asp/index.asp?id=1513 union select 1,2,3,4,a.id,b.id,c.id,* from ((admin as a inner join admin as b on a.id = b.id)inner join admin as c on a.id=c.id)
偏移注入不是注入点,而是注入的方法