Access+Mssql+Oracle数据库注入
Access数据库注入
前言:在常见的注入测试中,由于每个数据库内置架构和应用不同,导致数据库类型将决定注入的手法,Access数据库是小型数据库类型,普遍用于小型WEB应用,其中Access注入手法也相对于较为简单。
第一点:比较Mysql结构及功能
Mysql数据库
数据库A zblog = www.zblog.com
表名
列名
数据
数据库B dede = www.dede.com
表名
列名
数据
ACCESS数据库(只有一个数据库,不存在多个,适合小型网站)
表名
列名
数据
功能:
mysql支持文件操作功能,注入的时候也可以操作文件
access除了正常的sql查询外,没有这种高级功能
mysql注入时经常用到information_schema查询数据库下的表名及列名信息,access是没有这种类似数据库的,也就是说access获取表名及列名信息属于暴力猜解(也就是说,不能通过注入知道数据库名,只能通过字典遍历文件名,有可能遍历不到数据库名)
access数据库会存在表名或列名猜解不到的情况
access偏移注入:解决列名获取不到的情况,有部分几率会直接得到数据,参考:
https://www.cnblogs.com/xishaonian/p/6054320.html
来到靶机页面:

随便找一个连接点进去

猜到原本字段22
http://127.0.0.1:8002/Production/PRODUCT_DETAIL.asp?id=1513 order by 22
http://127.0.0.1:8002/Production/PRODUCT_DETAIL.asp?id=1513 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22 from admin //admin是管理表名

爆显示位了,判断admin表内存在的字段数:
接下来测出偏移量,其实这个偏移量就是admin这张表的列的个数,我们利用“*”代替admin表内存在的字段,由于是22个字段数,需要逐步测试,直到返回正常。

逐个减少

16的时候正常了,
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,* 代表字段数有6个
偏移注入的基本公式为:
order by 出的字段数减去*号的字段数,然而再用order by的字段数减去2倍刚才得出来的答案
也就是 22-16=6 22-6x2=10
原本字段(22)-现列出的字段(16)=*号的字段(6)
也就是说admin表内存在6个字段。
http://127.0.0.1:8002/Production/PRODUCT_DETAIL.asp?id=1513 union select 1,2,3,4,5,6,7,8,9,10,a.id,b.id,* from (admin as a inner join admin as b on a.id = b.id)
#admin表变成了(admin as a inner join admin as b on a.id=b.id),这里是将admin重命名为了a和b两张表,然后通过inner join 将a表和b表的id相同字段展示出来,a表和b表本来都是admin表,所以id肯定都是相同的(这里要提醒一下,id这个字段可以换成其它字段,但是一定得存在,一般admin表中都存在id字段的),这样做的目的就是可以打乱顺序来爆出其它字段
#但是由于增加了一张表,所以字段数得再减少一个*号的长度,所以另一个表字段数就是12
#这里union select 1,2,3,4,5,6,7,8,9,10:顾名思义就是刚才得出来的长度。
#后面的是sql,可作公式。

如此便爆出了账号密码(隐形显示位)。
然后再用二级偏移
http://127.0.0.1:8002/Production/PRODUCT_DETAIL.asp?id=1513 union select 1,2,3,4,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)

最后还是一脸懵???
进阶参考文章:《移位溢注:告别靠人品的偏移注入》
表名:
关注url地址,后台地址表单等信息进行猜解
如:xx.com/pe_news.asp或pe_admin表名可能为pe_admin
如:后台地址表单值为admin_user 表名可能为admin_admin
结构案例:
比如服务器上有ABCD四个站点,其中ABC三个网站使用MySQL数据库,数据库将全部存储用mysql中,D使用access数据库,它单独存在,由于结构上面的问题,跨库注入在access中一般不会利用到
格式存储路径案例:
mysql数据库的存储格式myi,myd,frm,数据存储路径在安装目录下data目录


Access数据库格式:
mdb或asp asp等 存储路径在网站目录下,mdb格式文件知道文件名可以进行正常的下载,而mysql不行,因为他的数据库在安装目录下,是在网站的上级目录,访问不了



mdb格式文件可以进行正常的下载
第二点:Access联合查询及逐字猜解
第三点:部分Access注入工具分析
墨者学院靶场示例

点击通知

存在注入点

和mysql差不多,猜到字段是4

这里access不用猜数据库名,所以直接猜表名,命令有点不同,后面接from+表名

表名猜错不会出显示位,所以表名都是靠遍历的

在显示位插入查询,如果其中一个字段错误的话,两个都不会显示出来

这里猜对了字段名username,出来字段名了,剩下那个就要字典跑
其实在这之前应该先awvs等扫描到注入点然后用sqlmap或者明小子等注入就可以了

最后猜到字段名是passwd
Mssql数据库注入
第一点:比较Mysql结构及功能
mssql sqlsever 和mysql结构一样 功能不一样 mssql进行文件及文件目录的操作 命令执行等
第二点:mssql权限注入方法分析
sa sysadmin权限 :最高权限 文件文件夹及数据操作 命令执行等
db db_owner权限 :可能存在多个数据
public权限: 单个数据操作
第三点:部分mssql注入工具分析
墨者靶场示例
明小子



sa权限:最高权限 文件文件夹及数据操作 命令执行等
明小子读不了表,然后用穿山甲,各种傻瓜式操作

其实两个工具配合,分析执行的命令

Oracle数据库注入
DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。 RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。 CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。 对于普通用户:授予connect, resource权限。 对于DBA管理用户:授予connect,resource, dba权限。
比较其他数据库的特性,能做的操作?

和mssql差不多,但是加密方式可能不同,还有,执行命令看操作系统

穿山甲命令执行无回显,可能权限不够

数据有$符号的应该是自带的数据库,所以没有$的是重点关注对象
Access+Mssql+Oracle数据库注入的更多相关文章
- 转:ACCESS数据库转ORACLE数据库分享
来源: 作者:zz 网上有很多文章介绍access转oracle数据库的方法,本人都尝试了,不是很成功,列举一下,后来人不必盲目试了,基本不成功: 1.Access-->excel-->P ...
- DBF导入到Oracle数据库
今天我遇到了一个需求,是将一个DBF文件导入到Oracle库中,之前一直使用的是公司提供的迁移工具,但是不知道怎么回事今天一直报DBF文件无法访问之类的错误,尝试多次之后,一气之下弃之不用,另寻他法. ...
- [转载]数据库存储图片(MSSQL/ORACLE/ACCESS
下面我来汇总一下如何将图片保存到SqlServer.Oracle.Access数据库中.首先,我们要明白图片是以二进制的形式保存在数据库中的,那么把图片保存到数据库中的步骤大体上有这几步1.将图片转换 ...
- Oracle数据库XXE注入漏洞(CVE-2014-6577)分析
在这篇文中,我们将共同分析一下Oracle数据库的XXE注入漏洞(CVE-2014-6577),Oracle公司1月20日发布了针对该漏洞的相关补丁. 有关XXE的相关知识,可以查看安全脉搏站内的另一 ...
- 通过MSSQL连接服务器连接至Oracle数据库
前言 有很多时候,我们需要MSSQL与Oracle进行跨库查询或数据交互.本篇随笔将阐述如何通过MSSQL的连接服务器连接至Oracle数据库,并且读取数据的示例. 具体步骤 首先需要到Oracle的 ...
- JAVA连接ACCESS、MYSQL、SQLSEVER、ORACLE数据库
. 概要 1.1 JDBC概念 JDBC(Java Database Connectivity)是Java语言为了支持SQL功能而提供的与数据库连接的用户的接口.JDBC中包含了一组由(Java)语言 ...
- Windows 10中Oracle数据库导出到Access数据库(MDB)
本篇博文简单介绍将Oracle数据库中表导出到Access数据库(主要是MDB格式)的方法.主要有三种,分别是PL/SQL.ESFDatabaseMigrationToolkit及ODBC. PL/S ...
- ACCESS数据库注入
0X01 我们想来了解一下access数据库 Access注入是暴力猜解 Access数据结构(access只有一个数据库) Access数据库 表名 列名 数据 没有库这个概念 只有表这个概念 这应 ...
- 600万用户数据导入MYSQL、MSSQL、Oracle数据库方法【转】
1.导入MySql数据库 参考文献:http://zhuaxia.org/blog/post/145 1.1.LOAD DATA INFILE语法 因为获得的数据库文件是一个文本文件www.csd ...
随机推荐
- 越来越受欢迎的Vue想学么,90后小姐姐今儿来教你
摘要:Vue的相关技术原理成为了前端岗位面试中的必考知识点,掌握 Vue 对于前端工程师来说更像是一门"必修课". 本文原作者为尹婷,擅长前端组件库研发和微信机器人. 我们发现, ...
- springboot2.0全局异常处理,文件上传过大会导致,方法被执行两次,并且连接被重置
最后发现是内嵌tomcat也有文件大小限制,默认为2MB,我上传的是4MB,然后就炸了.在application.properties中添加server.tomcat.max-swallow-size ...
- 【linux】Linux删除文件后磁盘依旧占用空间的问题
转自https://blog.51cto.com/2483526/798379 感谢 1.用df 检查发现/根目录可用空间为0 [root@/]#df -h 2.用du检查发现各目录占用的空间都很少, ...
- fianl关键词
一.final关键字概述 final关键字具有最终或不可改变的含义,可用于修饰类.变量.方法.因此被final修饰的类.变量.方法具有以下特征: --final修饰的类不能被继承: --final修饰 ...
- Flutter 改善套娃地狱问题(仿喜马拉雅PC页面举例)
前言 这篇文章是我一直以来很想写的一篇文章,终于下定决心动笔了. 写Flutter的小伙伴可能都感受到了:掘金的一些热门的Flutter文章下,知乎的一些Flutter的话题下或者一些论坛里面,喷Fl ...
- 史上超强拷贝仓——GitHub 热点速览 v.21.11
作者:HelloGitHub-小鱼干 Clone-Wars 是真的强,能细数 70+ 知名应用网站的源码,即便你不看代码,也可以了解下各大网站的所用技术栈.同样很强的是用 OpenCV 实现的图片转 ...
- Java 并发工具类 CountDownLatch、CyclicBarrier、Semaphore、Exchanger
本文部分摘自<Java 并发编程的艺术> CountDownLatch CountDownLatch 允许一个或多个线程等待其他线程完成操作.假设现有一个需求:我们需要解析一个 Excel ...
- 灵魂拷问!浏览器输入「xxxxhub」的背后.....
Hey guys 各位读者姥爷们大家好,这里是程序员 cxuan 计算机网络连载系列的第 13 篇文章. 到现在为止,我们算是把应用层.运输层.网络层和数据链路层都介绍完了,那么现在是时候把这些内容都 ...
- java例题_50 题目:有五个学生,每个学生有 3 门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成 绩),计算出平均成绩,将原有的数据和计算出的平均分数存放在磁盘文件"stud"中。
1 /*50 [程序 50 文件 IO] 2 题目:有五个学生,每个学生有 3 门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成 3 绩),计算出平均成绩,将原有的数据和计算出的平均分数存放 ...
- 201871010129-郑文潇 实验二 个人项目—《D{0-1}背包问题 》项目报告
项目 内容 课程班级博客链接 课程链接 这个作业要求链接 [作业要求](https://www.cnblogs.com/nwnu-daizh/p/14552393.html) 我的课程学习目标 1.掌 ...