首页 > 开发 > 综合 > 正文

D99_Tmp被注入的安全问题

2024-07-21 02:11:13
字体:
来源:转载
供稿:网友
看了一下有d99_cmd 、d99_tmp 、d99_reg
打开表一看,分别是
d99_cmd:dir c: 的指令內容:如
2006/04/03 02:15p 27,740 20067.exe
2004/02/13 03:33p <dir> asfroot

d99_tmp
列出c:/的所有文件和文件夹

d99_reg
列出被侵iis下的所有文件和文件夹

根据建立时间找到对应的日志,在系统system/logfile下。发现有
xxx.asp id=1558;drop%20table%20d99_tmp;create%20table%20d99_tmp(subdirectory%20nvarchar(256)%20null,depth%20tinyint%20null,[file]%20bit%20null);delete%20d99_tmp;%20insert%20d99_tmp%20exec%20master..xp_dirtree%20'd:/',%201,1;-- 200 mozilla/4.0+(compatible;+msie+6.0;+windows+nt+5.0)

显然xxx.asp文件有问题,而且被人注入sql了,一看是,一位初学的同事写的。

简单的预防的办法,就是在写asp程序都用这样方式吧:
在写代码 id=request("id")
改为 id=int(request("id"))
这样 id变数字后面的 sql 字串就会被清除

另外将 sql="select * from xxx where id=" & id
改为 sql="select * from xxx where id='" & id & "'"
那么黑客加入的 sql 字串,不会被处理执行或执行失败

另外如果有多个参数的话,最好把id这种数字的,作为最后一个参数。

如果各位有更好的方法的话,请跟贴,与大家交流交流了。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表