| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2903 人关注过本帖
标题:[公告]ASP漏洞分析和解决方法(1)
只看楼主 加入收藏
suyongtao
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:33
帖 子:8674
专家分:127
注 册:2004-11-6
结帖率:77.27%
收藏
 问题点数:0 回复次数:15 
[公告]ASP漏洞分析和解决方法(1)
ASP漏洞分析和解决方法(1)
 

有人说一台不和外面联系的电脑是最安全的电脑,一个关闭所有端口,不提供任何服务的电脑也是最安全的。黑客经常利用我
们所开放的端口实施攻击,这些攻击最常见的是DDOS(拒绝服务攻击).下面我会列出ASP的二十几个漏洞,每个漏洞都会有漏洞描
述和解决方法。

1 在ASP程序后加个特殊符号,能看到ASP源程序

  受影响的版本:
  win95+pws
  IIS3.0
  98+pws4 不存在这个漏洞。
  IIS4.0以上的版本也不存在这个漏洞。
  问题描述:
  这些特殊符号包括小数点,%81, ::$DATA。比如:
http://someurl/somepage.asp.
http:// someurl/somepage.asp%81
http:// someurl/somepage.asp::$DATA
http:// someurl/somepage.asp %2e
http:// someurl/somepage %2e%41sp
http:// someurl/somepage%2e%asp 
http:// someurl/somepage.asp %2e
http://someurl/msadc/samples/selector/showcode.asp?source=/msadc/samples/../../../../../../boot.ini (可以
看到boot.ini的文件内容)
  那么在安装有IIS3.0和win95+PWS的浏览中就很容易看到somepage.asp的源程序。究竟是什么原因造成了这种可怕的漏洞呢?
究其根源其实是 Windows NT 特有的文件系统在做怪。有一点常识的人都知道在 NT 提供了一种完全不同于 FAT 的文件系统:
NTFS,这种被称之为新技术文件系统的技术使得 NT 具有了较高的安全机制,但也正是因为它而产生了不少令人头痛的隐患。大家
可能不知道, NTFS 支持包含在一个文件中 的多数据流,而这个包含了所有内容的主数据流被称之为"DATA",因此使得在浏览器 
里直接访问 NTFS 系统的这个特性而轻易的捕获在文件中的脚本程序成为了可能。然而 直接导致 ::$DATA 的原因是由于 IIS 在
解析文件名的时候出了问题,它没有很好地规范文件名。

  解决方法和建议:
  如果是Winodws NT用户,安装IIS4.0或者IIS5.0,Windows2000不存在这个问题。如果是win95用户,安装WIN98和PWS4.0。

2 ACCESS mdb 数据库有可能被下载的漏洞

  问题描述:
  在用ACCESS做后台数据库时,如果有人通过各种方法知道或者猜到了服务器的ACCESS数据库的路径和数据库名称,那么他能够
下载这个ACCESS数据库文件,这是非常危险的。比如:如果你的ACCESS数据库book.mdb放在虚拟目录下的database目录下,那么
有人在浏览器中打入:
http:// someurl/database/book.mdb
  如果你的book.mdb数据库没有事先加密的话,那book.mdb中所有重要的数据都掌握在别人的手中。

  解决方法:
  (1) 为你的数据库文件名称起个复杂的非常规的名字,并把他放在几目
录下。所谓"非常规",打个比方:比如有个数据库要保存的是有关书籍的信息,可不要把他起个"book.mdb"的名字,起个怪怪的名
称,比如d34ksfslf.mdb,再把他放在如./kdslf/i44/studi/ 的几层目录下,这样黑客要想通过猜的方式得到你的ACCESS数据库
文件就难上加难了
。
  (2)不要把数据库名写在程序中。有些人喜欢把DSN写在程序中,比如: 

DBPath = Server.MapPath("cmddb.mdb")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath 

  假如万一给人拿到了源程序,你的ACCESS数据库的名字就一览无余。因此建议你在ODBC里设置数据源,再在程序中这样写:
conn.open "shujiyuan"

  (3)使用ACCESS来为数据库文件编码及加密。首先在选取"工具->安
全->加密/解密数据库,选取数据库(如:employer.mdb),然后接确定,接着会出现"数据库加密后另存为"的窗口,存为:
employer1.mdb。接着employer.mdb就会被编码,然后存为employer1.mdb..
  要注意的是,以上的动作并不是对数据库设置密码,而只是对数据库文件加以编码,目的是为了防止他人使用别的工具来查看
数据库文件的内容。
  接下来我们为数据库加密,首先以打开经过编码了的employer1.mdb,在打开时,选择"独占"方式。然后选取功能表的"工具-
>安全->设置数据库密码",接着输入密码即可。
  为employer1.mdb设置密码之后,接下来如果再使用ACCEES数据库文件时,则ACCESS会先要求输入密码,验证正确后才能够启
动数据库。
  不过要在ASP程序中的connection对象的open方法中增加PWD的参数即可,例如:
param="driver={Microsoft Access Driver (*.mdb)};Pwd=yfdsfs"
param=param&";dbq="&server.mappath("employer1.mdb")
conn.open param
  这样即使他人得到了employer1.mdb文件,没有密码他是无法看到employer1.mdb的。  


>>上篇文章:一个基于ASP的标题广告管理系统(三)  
>>下篇文章:ASP漏洞分析和解决方法(2)  
 
搜索更多相关主题的帖子: ASP漏洞 黑客 端口 
2005-01-14 11:04
suyongtao
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:33
帖 子:8674
专家分:127
注 册:2004-11-6
收藏
得分:0 
ASP漏洞分析和解决方法(3) 
 

6、ASP程序密码验证漏洞

  漏洞描述:
  很多网站把密码放到数据库中,在登陆验证中用以下sql,(以asp为例) 
sql="select * from user where username='"&username&"'and pass='"& pass &'" 
  此时,您只要根据sql构造一个特殊的用户名和密码,如:ben' or '1'='1 
就可以进入本来你没有特权的页面。再来看看上面那个语句吧: 
sql="select * from user where username='"&username&"'and pass='"& pass&'" 
  此时,您只要根据sql构造一个特殊的用户名和密码,如:ben' or '1'='1 
这样,程序将会变成这样: sql="select*from username where username="&ben'or'1'=1&"and pass="&pass&" 
or 是一个逻辑运算符,作用是在判断两个条件的时候,只要其中一个条件成立,那么等式将会成立.而在语言中,是以1来代表真的(成
立).那么在这行语句中,原语句的"and"验证将不再继续,而因为"1=1"和"or"令语句返回为真值.。
  另外我们也可以构造以下的用户名: 
username='aa' or username<>'aa'
pass='aa' or pass<>'aa'
  相应的在浏览器端的用户名框内写入:aa' or username<>'aa 口令框内写入:aa' or pass<>'aa,注意这两个字符串两头是
没有'的。这样就可以成功的骗过系统而进入。

  后一种方法理论虽然如此,但要实践是非常困难的,下面两个条件都必须具备。

  1. 你首先要能够准确的知道系统在表中是用哪两个字段存储用户名和口令的,只有这样你才能准确的构造出这个进攻性的字符
串。实际上这是很难猜中的。
  2.系统对你输入的字符串不进行有效性检查。

  问题解决和建议: 
  对输入的内容验证和"'"号的处理。

7、IIS4或者IIS5中安装有INDEX SERVER服务会漏洞ASP源程序

  问题描述:
  在运行IIS4或者IIS5的Index Server,输入特殊的字符格式可以看到ASP源程序或者其它页面的程序。甚至以及添打了最近关
于参看源代码的补丁程序的系统,或者没有.htw文件的系统,一样存在该问题。获得asp程序,甚至global.asa文件的源代码,无
疑对系统是一个非常重大的安全隐患。往往这些代码中包含了用户密码和ID,以及数据库的源路径和名称等等。这对于攻击者收集
系统信息,进行下一步的入侵都是非常重要的。
通过构建下面的特殊程序可以参看该程序源代码:
http://202.116.26.38/null.htw?CiWebHitsFile=/default.asp&CiRestriction=none&CiHiliteType=Full
  这样只是返回一些html格式的文件代码,但是当你添加%20到CiWebHitsFile的参数后面,如下:
http://someurl/null.htw?CiWebHitsFile=/default.asp%20&CiRestriction=none&CiHiliteType=Full
  这将获得该程序的源代码。
  (注意:/default.asp是以web的根开始计算。如某站点的http:///welcome/welcome.asp
那么对应就是:
http://someurl/null.htw?CiWebHitsFile=/welcome/welcome.asp%20&CiRestriction=none&CiHiliteType=Full
)
  由于'null.htw'文件并非真正的系统映射文件,所以只是一个储存在系统内存中的虚拟文件。哪怕你已经从你的系统中删除了
所有的真实的.htw文件,但是由于对null.htw文件的请求默认是由webhits.dll来处理。所以,IIS仍然收到该漏洞的威胁。

  问题解决或者建议:
  如果该webhits提供的功能是系统必须的,请下载相应的补丁程序。如果没必要,请用IIS的MMC管理工具简单移除.htw的映象
文件。

补丁程序如下:
Index Server 2.0:
Intel:
http://www.microsoft.com/downloads/release.asp?ReleaseID=17727
Alpha:
http://www.microsoft.com/downloads/release.asp?ReleaseID=17728
Indexing Services for Windows 2000:
Intel:
http://www.microsoft.com/downloads/release.asp?ReleaseID=17726  

 

[此贴子已经被作者于2005-1-14 11:06:09编辑过]


面朝大海,春暖花开!
2005-01-14 11:05
suyongtao
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:33
帖 子:8674
专家分:127
注 册:2004-11-6
收藏
得分:0 
ASP漏洞分析和解决方法(2) 
 

3 code.asp文件会泄漏ASP代码

  问题描述:
  举个很简单的例子,在微软提供的 ASP1.0 的例程里有一个 .asp 文件,专门用来查看其它 .asp 文件的源代码,该文件为 
ASPSamp/Samples/code.asp。如果有人把这个程序上传到服务器,而服务器端没有任何防范措施的话,他就可以很容易地查看他
人的程序。例如 : 
  code.asp?source=/directory/file.asp
  不过这是个比较旧的漏洞了,相信现在很少会出现这种漏洞。
  下面这命令是比较新的:
http://someurl/iissamples/exair/howitworks/code.asp?/lunwen/soushuo.asp=xxx.asp
  最大的危害莫过于asa文件可以被上述方式读出;数据库密码以明文形式暴露在黑客眼前; 

  问题解决或建议:
  对于IIS自带的show asp code的asp程序文件,删除该文件或者禁止访问该目录即可

4、filesystemobject 组件篡改下载 fat 分区上的任何文件的漏洞

  问题描述:
  IIS3、 IIS4 的 ASP 的文件操作都可以通过 filesystemobject 实现,包括文本文件的读写目录操作、文件的拷贝改名删
除等,但是这个强大的功能也留下了非常危险的 "后门"。利用 filesystemobjet 可以篡改下载 fat 分区上的任何文件。即使
是 ntfs 分区,如果权限没有设定好的话,同样也能破坏,一不小心你就可能遭受"灭顶之灾 "。遗憾的是很多 webmaster 只知
道让 web 服务器运行起来,很少对 ntfs 进行权限 设置,而 NT 目录权限的默认设置偏偏安全性又低得可怕。因此,如果你是 
Webmaster,建议你密切关注服务器的设置,尽量将 web 目录建在 ntfs 分区上,目录不要设定 everyone full control,即使
是是管理员组的成员一般也没什么必要 full control,只要有读取、更改权限就足够了。 也可以把filesystemobject的组件删
除或者改名。

5、输入标准的HTML语句或者javascript语句会改变输出结果 

  问题描述:
  在输入框中打入标准的HTML语句会得到什么相的结果呢?
  比如一个留言本,我们留言内容中打入:
<font size=10>你好!</font>
  如果你的ASP程序中没有屏蔽html语句,那么就会改变"你好"字体的大小。在留言本中改变字体大小和贴图有时并不是什么坏
事,反而可以使留言本生动。但是如果在输入框中写个 javascript 的死循环,比如:<a herf="http://someurl" 
onMouseover="while(1){window.close('/')}">特大新闻</a> 
  那么其他查看该留言的客人只要移动鼠标到"特大新闻",上就会使用户的浏览器因死循环而死掉。

  解决方法和建议:
  编写类似程序时应该做好对此类操作的防范,譬如可以写一段程序判断客户端的输入,并屏蔽掉所有的 HTML、 Javascript 
语句。 


>>上篇文章:ASP漏洞分析和解决方法(1) 
>>下篇文章:ASP漏洞分析和解决方法(3)  
 

[此贴子已经被作者于2005-1-14 11:07:08编辑过]


面朝大海,春暖花开!
2005-01-14 11:06
无根泉
Rank: 2
等 级:新手上路
威 望:4
帖 子:853
专家分:0
注 册:2004-11-4
收藏
得分:0 
不错,不错,支持支持支持支持支持支持支持无支持██████████████支持支持
支持支持支持支持支持支持支持支持███████████████支持支持
支持支持支持支持支持支持支持支持███████████████支持支持
支持█████████████支持支持支持████支持支持支持支持支持
支持█████████████支持支持支持████支持支持支持支持支持
支持█████████████支持支持███████████支持支持
支持████████████支持支持██████████████支持
支持██████████支持支持无██████支持无███████支持
支持支持支持支持████支持支持无████支持支持支持█████支持支
支持支持支持支持████支持支持████支持██支持无█████支持支
支持支持支持支持████支持支持████支持████无█████支持支
支持支持支持支持████支持支持████支持████无█████支持支
支持支持支持支持████支持支持████支持███支持█████支持支
支持支持支持支持████支持支持████支持███支持█████支持支
支持支持支持支持████支持支持████支持███支持█████支持支
支持支持支持支持████支持支持████无████支持█████支持支
支持支持支持支持████支持支持████无████支持█████支持支
支持支持支持支持████支持支持████无████支持█████支持支
支持支持支持支持████支持支持███支持████支持█████支持支
支持██支持无█████支持支持███支持███支持无█████支持支
支持██████████支持支持无██支持██支持支持█████支持支
支持无█████████支持支持支持支持███支持支持无████支持支
支持支持无███████支持支持支持支持███无████支持支持支持支
支持支持支持██████支持支持支持无████支持█████支持支持支
支持支持支持支持无███支持支持支持█████支持无███████支持
支持支持支持支持支持支持支持支持██████支持支持无██████支持
支持支持支持支持支持支持支持无██████支持支持支持███████支
支持支持支持支持支持支持支持█████支持支持支持支持无██████支
支持支持支持支持支持支持无█████支持支持支持支持支持无████支持
支持支持支持支持支持支持███支持支持支持支持支持支持支持无███支持

----------------------------------
请勿灌水

[此贴子已经被hxfly于2005-4-8 16:45:15编辑过]



我很菜,但我很努力!
2005-01-15 10:39
seraph126
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2005-2-22
收藏
得分:0 
学习

把握生命,挥洒自己! 我就是我!
2005-04-01 14:27
hxfly
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:5810
专家分:118
注 册:2005-4-7
收藏
得分:0 
不错不错,又学到了不少东西哈,谢谢楼主了!

2005-04-08 15:44
小小
Rank: 1
等 级:新手上路
威 望:1
帖 子:219
专家分:0
注 册:2004-5-31
收藏
得分:0 
很好,谢谢你

有一天咖啡的舞者 £
2005-04-08 16:09
BlueDreame
Rank: 1
等 级:新手上路
帖 子:545
专家分:2
注 册:2004-12-16
收藏
得分:0 
恩,不错。

2005-04-08 16:13
mgzll
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2005-3-18
收藏
得分:0 
还没有写完啊.
2005-04-09 15:53
无根泉
Rank: 2
等 级:新手上路
威 望:4
帖 子:853
专家分:0
注 册:2004-11-4
收藏
得分:0 
小弟这里有一个mdb数据库防下载的办法, 很不错的 先建一下数据库如 book.mdb 在里面随便建一个表,aaa 里面设一个数据类型为 文本的vv字段 ,(这个名字随便起) 然后输入<%asdffsadfjlqkwjlsakdjf%>保存,再建其它的表, 做完数据库后改名为book.asp 这样再打这个路径看看还会不会被下载呀 http://localhost/book.asp

我很菜,但我很努力!
2005-04-09 16:34
快速回复:[公告]ASP漏洞分析和解决方法(1)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033734 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved