引:当我们知道表名,无法得知字段名,查询不出字段内容时可以使用偏移注入进行查询。
说明:在Access数据库类型注入的时候,获取不到列名(前提是有表名),一般选择使用偏移注入,但是这种注入方式往往借助的是个人人品,且步骤繁琐。本文中研究了一种新的注入技术让偏移注入不再需要人品。
首先打开phpmyadmin新建两个数据库已知表名为admin和test
接下来开始操作首先了解显示位 在字段值7和8处填入表名那么页面也就会返回其数据
在本地使用数据库语句查询如下:
当两边查询字段数不一致时sql就会报错:
简单的说就是当test id=1时显示的是9个字段 而 admin = 4个字段
那么这里我们修改成两边相同时数据库就不会报错了
同样的可以使用第二种办法 admin.*
表示admin表中的所有字段数(查询出四个字段)
回到刚刚的语句把admin.*加入进去
左边是9个字段如果右边加上admin.*那么就成了12个字段所以去掉4个数字返回正常
字段是对应网页上的某个内容比如图片、一段新闻等,如此我们在这里修改一下admin.*的位置
可以发现和上图中的位置不再一致所以我们可以移动admin.*的位置把想要的值输出到页面的回显点上
当在实战过程中不确定admin表中有几个字段那么通过刚刚的学习已得知admin.*表示admin表里的所有字段,已知这个条件我们可以通过页面的返回正不正常得知admin的字段数。
例子:若已知test的字段为26那么使用以下语句开始猜解到页面返回正常得到admin的字段数
若猜解到10的时候页面返回正常那么admin的字段数就是26-10=16
查看网页的图片对应的字段为25那么需要解决不确定自己要的数据位置是多少
那么就需要继续进行猜解 先看看是不是在一头一尾也就是1和16如果不在就取一个8代入语句进行查询,比如查询的数据是admin3 显示位是5那么我们就把admin3移动到5
使用语句挨个往前移动
看一张图理解