欢迎光临
我们一直在努力

ASP漏洞及安全建议 (续三)

建站超值云服务器,限时71元/月

下面的代码将介绍如何使用这个密钥来加密和解密一个字符串

crypt.asp文件
<%
dim g_key

const g_cryptthis = "now is the time for all good men to come to the aid of their country."
const g_keylocation = "c:\key.txt"

g_key = mid(readkeyfromfile(g_keylocation),1,len(g_cryptthis))

response.write "<p>original string: " & g_cryptthis & "<p>"
response.write "<p>key value: " & g_key & "<p>"
response.write "<p>encrypted cyphertext: " & encrypt(g_cryptthis) & "<p>"
response.write "<p>decrypted cyphertext: " & decrypt(encrypt(g_cryptthis)) & "<p>"

function encrypt(strcryptthis)
dim strchar, ikeychar, istringchar, i
for i = 1 to len(strcryptthis)
ikeychar = asc(mid(g_key,i,1))
istringchar = asc(mid(strcryptthis,i,1))
*** uncomment below to encrypt with addition,
icryptchar = istringchar + ikeychar
icryptchar = ikeychar xor istringchar
strencrypted = strencrypted & chr(icryptchar)
next
encrypt = strencrypted
end function

function decrypt(strencrypted)
dim strchar, ikeychar, istringchar, i
for i = 1 to len(strencrypted)
ikeychar = (asc(mid(g_key,i,1)))
istringchar = asc(mid(strencrypted,i,1))
*** uncomment below to decrypt with subtraction
idecryptchar = istringchar – ikeychar
idecryptchar = ikeychar xor istringchar
strdecrypted = strdecrypted & chr(idecryptchar)
next
decrypt = strdecrypted
end function

function readkeyfromfile(strfilename)
dim keyfile, fso, f
set fso = server.createobject("scripting.filesystemobject")
set f = fso.getfile(strfilename)
set ts = f.openastextstream(1, -2)

do while not ts.atendofstream
keyfile = keyfile & ts.readline
loop

readkeyfromfile = keyfile
end function

%>
在crypt.asp中我们首先从密钥文件中得到密钥值,然后从这段密钥中
截取和我们需要加密的明文同样长度的密钥。然后使用一个简单的异或操作
将明文和密钥进行运算,那么得到的结果就是加密后的密文了。过程很简单的。
由于是使用了异或操作,所以解密将非常简单,只要使用同样的密钥对密文
再次进行异或操作就能够解密了。
在上面介绍的基础上,你可以少加改动,就可以使用同样的方法加密一个文件。
唯一需要注意的是,对于一个二进制文件,你需要做一些完整性检查以保证转换回来
的字符不要越界。
现在你需要做的就是把密钥保存在服务器上的一个安全的地方(不能够被外部访问)

15 sql server的安全性
目前用asp编写的web应用中,后台数据库大部分sql server。sql server相对来说比较安全。但是也要小心地配置sql server.
1安装远程数据库管理有风险
sql server支持从远程进行数据库的维护。在安装时你可以选择不安装,安装完成以后,你还可以通过“sql server network utility”来删除远程管理。如果你要使用远程管理,请使用tcp/ip,并将缺省的端口1433改变为其他的数值。使用远程对你可能比较方便,便是请注意一个hacker只要知道你的sql server密码,就可以进入你的数据库。
2 改变sa的密码。
 缺省安装时,sql server的sa账号的密码为空,建议你在enterprise server中,改变sa的密码。
3 数据库登录账号不要写入asp页面中。
16 使用最新的扫描器扫描asp漏洞
目前可以扫描iis漏洞的扫描器有很多,比较有名的有iss,cis和gnit等。下面我们以gnit为例子。
gnit是个功能很强的漏洞扫描器,能扫描nt的用户名和相关信息列表,扫描iis的漏洞。
在winnt的dos模式下打下:
gnit <对方ip>
比如:gnit 172.1.1.1

gnit开始扫描端口,从上图可知目标主机提供了http,ftp,smtp等服务,扫描完后。会在gnit目录下生成一个html文件,其文件名是目标主机的ip。打开这个html文件,会看到对方主机的一些信息和漏洞。这些信息和漏洞包括:用户名和组的相关详细信息,开放的服务和web扫描的漏洞等。我们比较关心的是web扫描的漏洞信息:
下图是gnit的web扫描一些信息,其中加粗部分是漏洞,当然有些漏洞并不准确,但不妨试试。(有必要说明下,以下我是在一台nt4。01,iis4。0,option pack6.0,并且缺省安装)

 要测试这些漏洞很简单。比如:可在url输入:
 http://someurl/iisadmpwd/aexp3.htr
―――可远程管理iis。

http://someurl/scripts/iisadmin/bdir.htr
――――目标主机的硬盘全部目录都一览无余,并且有创建新目录的功能(不过我在测试中,并不能创建远程目录,但是能使目标主机的web当机)
http://someurl/scripts/tools/getdrvrs.exe
 —-可在远程主机上创建odbc数据库,不管数据库路径和数据库是否存在。

 
此外还有其它的漏洞,请网友自己测试。其解决方法请看上面的漏洞分析。
如果用cis扫描器,还有比较详细的漏洞分析和解决方法。请读者自己分析。
七、总结
  目前web数据库访问的多种技术中,比如cgi(通用网关接口)、jdbc、php、asp,asp以其开发周期短,存取方式数据库简单,运行速度快而成为众多网站程序员的首选开发技术。
但是其网络安全性也是不容忽视的。做为一个asp开发者,你必须关注nt和iis的安全漏洞,从上面的讨论我们可以看到asp的很多漏洞都是由iis所引起的。同时asp程序员在开发自己的网站时,要注意来自asp程序设计不当所引发的安全问题。
八、声明
本文中某些例子是从其它网站上整理的,因时间紧迫,未来得及通知作者,请见谅!

小鸟 (songniao@163.net)
傲气雄鹰网络安全新干线(http://www.safefan.com)

作者:小鸟 主页:http://www.aspcool.com 时间:00-6-21 下午 02:15:11

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » ASP漏洞及安全建议 (续三)
分享到: 更多 (0)

相关推荐

  • 暂无文章