IT学习者 | 文章大全 | 技术文档 | 桌面壁纸 | 实用查询 | 网络电台 | 成语 | 歇后语 | 网址 | 下载 | 周公解梦 | 生日密码 | 电视剧365 | Flash
 您现在的位置: IT学习者 >> 文章大全 >> 网络编程 >> 数据库开发

Access的一些测试

【 作者:SuperHei    来源:网络  更新时间:2006-9-4 | 字体:

本文作者:SuperHei
文章性质:原创
发布日期:2004-09-16

我们先在accessl里直接sql查询:

SELECT shell('c:\winnt\system32\cmd.exe /c dir c:\ >c:\123456.txt');


“运行”得到结果:

C:\>dir 123456.txt
驱动器 C 中的卷没有标签。
卷的序列号是 3CEE-A8A9

C:\ 的目录

2004-01-09 22:29 1,718 123456.txt
1 个文件 1,718 字节
0 个目录 1,224,527,872 可用字节
C:\>type 123456.txt
驱动器 C 中的卷没有标签。
卷的序列号是 3CEE-A8A9

c:\ 的目录

2004-01-07 15:35 44 1.txt
2004-07-15 05:15 49 11.txt
2004-01-09 22:29 0 123456.txt
2004-07-31 15:50 478 333.txt

成功执行,我们看看权限,语句改为:

SELECT shell('c:\winnt\system32\cmd.exe /c dir c:\ >c:3456.txt');

运行后:

C:\>net user

\KAK-E8UHOQQ9M6S 的用户帐户

----------------------------------------------
aa Administrator
IUSR_KAK-E8UHOQQ9M6S IWAM_KAK-E8UHOQQ9M6S
命令成功完成。

看来权限比较大(不过可能是继承了运行access的用户的权限,我用的是管理员权限运行的,对guest的没有测试)

下面我们测试sp里执行,首先自己写个asp,代码如下:

< %
Set Conn = Server.CreateObject("ADODB.Connection")
dsn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("q.mdb")
Set Rs = Server.CreateObject("ADODB.Recordset")
Conn.Open dsn
SQL = "select shell('c:\winnt\system32\cmd.exe /c dir c:\ > d:\sss1.txt')"
rs.open sql,conn
if rs.eof and rs.bof then
' Access Denied
else
' Access Allowed
end if
rs.close
set rs=nothing
'关闭连接
conn.close
set conn=nothing
response.write "sql为:" &sql

%>

运行这个asp,返回结果如下:

Microsoft VBScript 编译器错误 错误 '800a03f6'

缺少 'End'

/iisHelp/common/500-100.asp,行242

Microsoft JET Database Engine 错误 '80040e14'

表达式中 'shell' 函数未定义。

/test/lse/Connections/kaoo6.asp,行7

提示” 'shell' 函数未定义”,测试失败,我把asp代码里的
dsn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("q.mdb")
改为 dsn="Provider=Microsoft.Jet.OLEDB.3.5;Data Source="&Server.MapPath("q.mdb")

运行ie返回:

Microsoft VBScript 编译器错误 错误 '800a03f6'

缺少 'End'

/iisHelp/common/500-100.asp,行242

ADODB.Connection 错误 '800a0e7a'

Provider cannot be found. It may not be properly installed.

/test/lse/Connections/kaoo8.asp,行5

Provider没有安装 没有继续测试.

2.关于暴库的测试

这里使用MsysObjecs : 我们新建立个查询,语句如下:

SELECT MSysObjects.DateCreate, MSysObjects.DateUpdate, SysObjects.Name, ysObjects.Type ROM MSysObjects;
MSysObjects.DateCreate 得到建立时间
MSysObjects.DateUpdate 更新时间
MSysObjects.Name 数据库名称
MSysObjects.Type 数据库类型

我们执行上面的语句,直接得到结果:

我们放到asp里:

< %
Set Conn = Server.CreateObject("ADODB.Connection")
dsn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("q.mdb")
Set Rs = Server.CreateObject("ADODB.Recordset")
Conn.Open dsn
SQL = "SELECT MSysObjects.DateCreate, MSysObjects.DateUpdate,MSysObjects.Name,MSysObjects.Type FROM MSysObjects;"
rs.open sql,conn
if rs.eof and rs.bof then
' Access Denied
else
' Access Allowed
end if
rs.close
set rs=nothing
'关闭连接
conn.close
set conn=nothing
response.write "sql为:" &sql

%>

ie返回:

Microsoft VBScript 编译器错误 错误 '800a03f6'

缺少 'End'

/iisHelp/common/500-100.asp,行242

Microsoft JET Database Engine 错误 '80040e09'

不能读取记录;在 'MSysObjects' 上没有读取数据权限。

/test/lse/Connections/kaoo7.asp,行7

提示 不能读取记录;在 'MSysObjects' 上没有读取数据权限。 没办法了,这个办法又夭折拉.

3.补充:

在iis5(Microsoft.Jet.OLEDB.4.0)我们不可以直接执行shell(据说在Jet 3.5 也就是在iis4的时代可以),在Jet.OLEDB.4.0默认的情况下不可以,但是可以设置,我们可以通过改注册表等来实现,具体的不知道.

后门思路:

1,就是上面的改注册表,让Jet.OLEDB.4.0支持shell 这样我们可以在asp里直接利用.
2.我们通过其他程序,直接对mdb文件操作,利用select shell()执行系统命令.

相 关 文 章
相 关 软 件
逃生 放生 黄玫瑰 想太多 那滋味 擦肩而过 放手去爱 北京欢迎你 依然在一起 吻得太逼真 感动天感动地 坐上火车去拉萨 怎么会狠心伤害我
心碎 冲动 小太阳 别碰我 蒲公英 千山万水 改变自己 一定要爱你 等爱的玫瑰 陷入爱里面 北极星的眼泪 最后一次的温柔 亲爱的那不是爱情
光荣 火花 坏女人 日不落 樱花草 为你写诗 独家记忆 夏天的味道 寂寞才说爱 忘不掉的伤 爱上你是个错 第三者的第三者 地球人都知道我爱你
假如 相思 是非题 有缘人 舍不得 我的答铃 死而无憾 外滩十八号 越爱越难过 123木头人 和寂寞说分手 爱上你是我的错 爱情里没有谁对谁错
加入收藏留言建议自助友情链接普通友情链接站长的Blog
版权所有   COPYRIGHT 2002-2008 ★IT学习者★ ALL RIGHTS RESERVED.