zoukankan      html  css  js  c++  java
  • 手工注入——access手工注入实战和分析

    今天进行了access手工注入,下面是我的实战过程和总结。

    实战环境使用的是墨者学院的在线靶场。下面咱们直接进入主题。

    第一步,判断注入点

    通过‘ 或者 and 1=1 和 and 1=2 是否报错,如下图。

    接下来咱们输入 and 1=2 发现报错了,说明存在注入点。如下图。

    第二步,猜数据库表名

    在access数据库中,打开里面直接就是表,所以我们只能猜表名,通过这条语句 and exists (select * from 表名)常见的一些表名为 admins users administrator,adminadminsadmin_useradmin_usradmin_msgadmin_loginuserusernamemanagermsg_usermsg_loginuseradmin等。通过猜测,我们查到 存在admin这个表,这里用到的原理是,如果存在正常显示,不存在就报错,如下图。

    第三步,猜测表里有几个字段

    通过order by 语句,小于输出的数字正常显示,大于输出的数字报错。我们猜出为四个字段。如下图。

    。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。分割线。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

    第四步,猜测字段

    通过这条语句 and exists (select 字段 from admin)常见的字段有 username password pass passwd user_name 等

    如果对方的数据库字段较多,咱们又猜不出来,并且有回显位置,可以尝试偏移注入。这里通过直接猜测就猜出来了,如下图。

    。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。分割线。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

    根据图片的内容我们,我们猜测出的两个字段为,username ,passwd ,根据字段名字我们就知道里面存放的为账号和密码。

    第五步,联合查询爆出账号和密码

    通过这条语句 union select 1,2,3,4 from admin 我们知道了,2,3,这两个位置回显到页面上,这就是我们需要的。如下图。

    接下来,我们把之前查找出来的 字段 替换到2,3 两个位置,语句为 union select 1,username,passwd,4 from admin 结果为下图,爆出了账号密码。

    access 手工注入总结

    1、 先判断有没有注入点

    2、 参数后面加 and exists(select*from admin) 猜表名  返回正常页面表示存在(admin)

    3、 参数后面加 and exists(select username from admin)猜(admin)表中是否存在列名(username) 返回正常页面表示存在

    4、 参数后面加 and exists(select passwd from admin)猜(admin)表中是否存在列名(passwd) 返回正常页面表示存在

    5、 判断字段数 参数后面加 order by 4 (判断字段数为4)

    6、 判断回显  参数后面加 union select 1,2,3,4 from admin

    7、 爆出列名的信息 参数后面加 union select 1,username,passwd,4 from admin

    8、获取到账号密码,手工注入结束。

  • 相关阅读:
    初探 Linux
    操作系统简介
    1208. 尽可能使字符串相等
    643. 子数组最大平均数 I
    480. 滑动窗口中位数
    Bisect in Python
    HTTP 和 HTTPS 的区别
    URI和URL的区别
    HTTP 1.0和HTTP 1.1的主要区别是什么?
    MySQL游标的使用笔记大全
  • 原文地址:https://www.cnblogs.com/lxfweb/p/12643011.html
Copyright © 2011-2022 走看看