堵塞Web漏洞(下)
添加时间:2010-11-7
添加:
admin
解决方法:
(1)为你的数据库文件名称起个复杂的非常规的名字,并把他放在几层目录下。所谓“非常规”,打个比方:比如有个数据库要保存的是有关书籍的信息,可不要把它命名为”book.mdb“的名字,起个怪怪的名称,比如d34ksfslf.mdb,再把他放在如./kdslf/i44/studi/的几层目录下,这样黑客要想通过猜的方式得到你的Access数据库文件就难上加难了;
(2)不要把数据库名写在程序中。有些人喜欢把DSN写在程序中,比如:
DBPath=Server.MapPath(“cmddb.mdb”)
conn.Open“driver={MicrosoftAccessDriver(*.mdb)};dbq=”&DBPath
假如万一给人拿到了源程序,你的Access数据库的名字就一览无余。因此建议你在ODBC里设置数据源,再在程序中这样写:
conn.open“shujiyuan”
(3)使用Access来为数据库文件编码及加密。首先在选取“工具”→“安全”→“加密/解密数据库”,选取数据库(如:employer.mdb),然后接确定,接着会出现“数据库加密后另存为”的窗口,存为:employer1.mdb。接着“employer.mdb”就会被编码,然后存为:employer1.mdb。
注意:以上的动作并不是对数据库设置密码,而只是对数据库文件加以编码,目的是为了防止他人使用别的工具来查看数据库文件的内容。
接下来我们为数据库加密,首先以打开经过编码了的“employer1.mdb”,在打开时,选择“独占”方式。然后选取功能表的“工具”→“安全”→“设置数据库密码”,接着输入密码即可。
为“employer1.mdb”设置密码之后,接下来如果再使用Access数据库文件时,则Access会先要求输入密码,验证正确后才能够启动数据库。
不过要在ASP程序中的Connection对象的open方法中增加PWD的参数即可,例如:
以下为引用的内容:
param=“driver={MicrosoftAccessDriver(*.mdb)};Pwd=yfdsfs”
param=param&“;dbq=”&server.mappath(“employer1.mdb”)
conn.openparam
这样即使他人得到了Fmployer1.mdb文件,没有密码他是无法看到employer1.mdb的。
5.asp程序密码验证漏洞
漏洞描述:
很多网站把密码放到数据库中,在登陆验证中用以下Sql,(以ASP为例)
sql=“select*fromuserwhereusername=”&username&“andpass=”&pass&”
此时,您只要根据SQL构造一个特殊的用户名和密码,如:benor1=1
就可以进入本来你没有特权的页面。再来看看上面那个语句吧:
sql=“select*fromuserwhereusername=”&username&“andpass=“&pass&”
or是一个逻辑运算符,作用是在判断两个条件的时候,只要其中一个条件成立,那么等式将会成立。而在语言中,是以1来代表真的(成立)。那么在这行语句中,原语句的“and”验证将不再继续,而因为“1=1”和“or”令语句返回为真值。
另外我们也可以构造以下的用户名:
username=aaorusername<>aa
pass=aaorpass<>aa
相应的在浏览器端的用户名框内写入:aaorusername<>aa口令框内写入:aaorpass<>aa,注意这两个字符串两头是没有的。这样就可以成功的骗过系统而进入。
后一种方法理论虽然如此,但要实践是非常困难的,下面两个条件都必须具备。
(1)你首先要能够准确的知道系统在表中是用哪两个字段存储用户名和口令的,只有这样你才能准确的构造出这个进攻性的字符串。实际上这是很难猜中的。
(2)系统对你输入的字符串不进行有效性检查。
问题解决和建议:对输入的内容验证和“”号的处理。
6.IIS4或者IIS5中安装有IndexServer服务会漏洞ASP源程序
问题描述:
在运行IIS4或者IIS5的IndexServer,输入特殊的字符格式可以看到ASP源程序或者其它页面的程序。甚至以及添打了最近关于参看源代码的补丁程序的系统,或者没有.htw文件的系统,一样存在该问题。获得ASP程序,甚至global.asp文件的源代码,无疑对系统是一个非常重大的安全隐患。往往这些代码中包含了用户密码和ID,以及数据库的源路径和名称等等。这对于攻击者收集系统信息,进行下一步的入侵都是非常重。
通过构建下面的特殊程序可以参看该程序源代码:
http://202.116.26.38/null.htwCiWebHitsFile=/default.asp&CiRestriction=none&CiHiliteTyp-e=Full
这样只是返回一些HTML格式的文件代码,但是当你添加%20到CiWebHitsFile的参数后面,如下:
http://someurl/null.htw?CiWebHitsFile=/default.asp%20&CiRestriction=none&CiHiliteType=Full
这将获得该程序的源代码。(注意:/default.asp是以Web的根开始计算。如某站点的http://XXXXXX/welcome.asp)
那么对应就是:
http://someurl/null.htwCiWebHitsFile=/XXXXXX/wel
(1)为你的数据库文件名称起个复杂的非常规的名字,并把他放在几层目录下。所谓“非常规”,打个比方:比如有个数据库要保存的是有关书籍的信息,可不要把它命名为”book.mdb“的名字,起个怪怪的名称,比如d34ksfslf.mdb,再把他放在如./kdslf/i44/studi/的几层目录下,这样黑客要想通过猜的方式得到你的Access数据库文件就难上加难了;
(2)不要把数据库名写在程序中。有些人喜欢把DSN写在程序中,比如:
DBPath=Server.MapPath(“cmddb.mdb”)
conn.Open“driver={MicrosoftAccessDriver(*.mdb)};dbq=”&DBPath
假如万一给人拿到了源程序,你的Access数据库的名字就一览无余。因此建议你在ODBC里设置数据源,再在程序中这样写:
conn.open“shujiyuan”
(3)使用Access来为数据库文件编码及加密。首先在选取“工具”→“安全”→“加密/解密数据库”,选取数据库(如:employer.mdb),然后接确定,接着会出现“数据库加密后另存为”的窗口,存为:employer1.mdb。接着“employer.mdb”就会被编码,然后存为:employer1.mdb。
注意:以上的动作并不是对数据库设置密码,而只是对数据库文件加以编码,目的是为了防止他人使用别的工具来查看数据库文件的内容。
接下来我们为数据库加密,首先以打开经过编码了的“employer1.mdb”,在打开时,选择“独占”方式。然后选取功能表的“工具”→“安全”→“设置数据库密码”,接着输入密码即可。
为“employer1.mdb”设置密码之后,接下来如果再使用Access数据库文件时,则Access会先要求输入密码,验证正确后才能够启动数据库。
不过要在ASP程序中的Connection对象的open方法中增加PWD的参数即可,例如:
以下为引用的内容:
param=“driver={MicrosoftAccessDriver(*.mdb)};Pwd=yfdsfs”
param=param&“;dbq=”&server.mappath(“employer1.mdb”)
conn.openparam
这样即使他人得到了Fmployer1.mdb文件,没有密码他是无法看到employer1.mdb的。
5.asp程序密码验证漏洞
漏洞描述:
很多网站把密码放到数据库中,在登陆验证中用以下Sql,(以ASP为例)
sql=“select*fromuserwhereusername=”&username&“andpass=”&pass&”
此时,您只要根据SQL构造一个特殊的用户名和密码,如:benor1=1
就可以进入本来你没有特权的页面。再来看看上面那个语句吧:
sql=“select*fromuserwhereusername=”&username&“andpass=“&pass&”
or是一个逻辑运算符,作用是在判断两个条件的时候,只要其中一个条件成立,那么等式将会成立。而在语言中,是以1来代表真的(成立)。那么在这行语句中,原语句的“and”验证将不再继续,而因为“1=1”和“or”令语句返回为真值。
另外我们也可以构造以下的用户名:
username=aaorusername<>aa
pass=aaorpass<>aa
相应的在浏览器端的用户名框内写入:aaorusername<>aa口令框内写入:aaorpass<>aa,注意这两个字符串两头是没有的。这样就可以成功的骗过系统而进入。
后一种方法理论虽然如此,但要实践是非常困难的,下面两个条件都必须具备。
(1)你首先要能够准确的知道系统在表中是用哪两个字段存储用户名和口令的,只有这样你才能准确的构造出这个进攻性的字符串。实际上这是很难猜中的。
(2)系统对你输入的字符串不进行有效性检查。
问题解决和建议:对输入的内容验证和“”号的处理。
6.IIS4或者IIS5中安装有IndexServer服务会漏洞ASP源程序
问题描述:
在运行IIS4或者IIS5的IndexServer,输入特殊的字符格式可以看到ASP源程序或者其它页面的程序。甚至以及添打了最近关于参看源代码的补丁程序的系统,或者没有.htw文件的系统,一样存在该问题。获得ASP程序,甚至global.asp文件的源代码,无疑对系统是一个非常重大的安全隐患。往往这些代码中包含了用户密码和ID,以及数据库的源路径和名称等等。这对于攻击者收集系统信息,进行下一步的入侵都是非常重。
通过构建下面的特殊程序可以参看该程序源代码:
http://202.116.26.38/null.htwCiWebHitsFile=/default.asp&CiRestriction=none&CiHiliteTyp-e=Full
这样只是返回一些HTML格式的文件代码,但是当你添加%20到CiWebHitsFile的参数后面,如下:
http://someurl/null.htw?CiWebHitsFile=/default.asp%20&CiRestriction=none&CiHiliteType=Full
这将获得该程序的源代码。(注意:/default.asp是以Web的根开始计算。如某站点的http://XXXXXX/welcome.asp)
那么对应就是:
http://someurl/null.htwCiWebHitsFile=/XXXXXX/wel
新文章:
- CentOS7下图形配置网络的方法
- CentOS 7如何添加删除用户
- 如何解决centos7双系统后丢失windows启动项
- CentOS单网卡如何批量添加不同IP段
- CentOS下iconv命令的介绍
- Centos7 SSH密钥登陆及密码密钥双重验证详解
- CentOS 7.1添加删除用户的方法
- CentOS查找/扫描局域网打印机IP讲解
- CentOS7使用hostapd实现无AP模式的详解
- su命令不能切换root的解决方法
- 解决VMware下CentOS7网络重启出错
- 解决Centos7双系统后丢失windows启动项
- CentOS下如何避免文件覆盖
- CentOS7和CentOS6系统有什么不同呢
- Centos 6.6默认iptable规则详解