一般都是网站程序存在漏洞或者服务器存在漏洞而被攻击了
网站挂马是每个网站最头痛的问题,解决办法:1.在程序中很容易找到挂马的代码,直接删除,或则将你没有传服务器的源程序覆盖一次但反反复复被挂就得深入解决掉此问题了。但这不是最好的解决办法。最好的方法还是找专业做安全的来帮你解决掉
听朋友说 SineSafe 不错 你可以去看看。
清马+修补漏洞=彻底解决
所谓的挂马,就是黑客通过各种手段,包括SQL注入,网站敏感文件扫描,服务器漏洞,网站程序0day, 等各种方法获得网站管理员账号,然后登陆网站后台,通过数据库 备份/恢复 或者上传漏洞获得一个webshell。利用获得的webshell修改网站页面的内容,向页面中加入恶意转向代码。也可以直接通过弱口令获得服务器或者网站FTP,然后直接对网站页面直接进行修改。当你访问被加入恶意代码的页面时,你就会自动的访问被转向的地址或者下载木马病毒
清马
1、找挂马的标签,比如有script language="javascript" src="网马地址"/script或iframe width=420 height=330 frameborder=0
scrolling=auto src=网马地址/iframe,或者是你用360或病杀毒软件拦截了网马网址。SQL数据库被挂马,一般是JS挂马。
2、找到了恶意代码后,接下来就是清马,如果是网页被挂马,可以用手动清,也可以用批量清,网页清马比较简单,这里就不详细讲,现在着重讲一下SQL数据库清马,用这一句语句“update 表名 set 字段名=replace(字段名,'aaa','')”, 解释一下这一句子的意思:把字段名里的内容包含aaa的替换成空,这样子就可以一个表一个表的批量删除网马。
在你的网站程序或数据库没有备份情况下,可以实行以上两步骤进行清马,如果你的网站程序有备份的话,直接覆盖原来的文件即可。
修补漏洞(修补网站漏洞也就是做一下网站安全。)
1、修改网站后台的用户名和密码及后台的默认路径。
2、更改数据库名,如果是ACCESS数据库,那文件的扩展名最好不要用mdb,改成ASP的,文件名也可以多几个特殊符号。
3、接着检查一下网站有没有注入漏洞或跨站漏洞,如果有的话就相当打上防注入或防跨站补丁。
4、检查一下网站的上传文件,常见了有欺骗上传漏洞,就对相应的代码进行过滤。
5、尽可能不要暴露网站的后台地址,以免被社会工程学猜解出管理用户和密码。
6、写入一些防挂马代码,让框架代码等挂马无效。
7、禁用FSO权限也是一种比较绝的方法。
8、修改网站部分文件夹的读写权限。
9、如果你是自己的服务器,那就不仅要对你的网站程序做一下安全了,而且要对你的服务器做一下安全也是很有必要了!
这是日志文件?如果是日志文件的话你的网站应该没有问题,
从代码来看,只是有人尝试进行注入,但没有成功,因为他在尝试对bindex.asp
onesix.asp
vip_index.asp
等文件进行注入'但没有成功,因为要是成功的话他不会对这么多个文件尝试而且只尝试一次,这证明他都失败了,如果成功的话他会只对一个文件进行住入,所以你的网站没有问题,
呼,强烈要求加分
防范注入可以用Web应用防火墙(WAF),使用WAF可以防范大多数的注入攻击
(还有其他类型的网络攻击),应付一般的黑客足够了。另外还可以在网站中使用防注入代码库,可以充分过滤用户输入,减少产生注入漏洞的几率。还有就是网站建成后进行充分的Web渗透测试,解决掉注入漏洞才是根本。
1.使用prepareStatemenet
2.使用正则表达式
表达式一:Regex knownBad = new Regex(@"^?;\;\--|d(?:elete\sfrom|rop\stable)|insert\sintols(?:elect\s\*|p_)|union\sselect|xp_$");
表达式二: 检测SQL meta-characters的正则表达式
/((\%3D)|(=))[^\n]*((\%27)|(\')|(\-\-)|(\%3B)|(:))/i
UNION查询关键字的正则表达式
/((\%27)|(\'))union/ix
/exec(\s|\+)+(s|x)p\w+/ix
这几条配合使用比较好
本来对正则表达式不是很了解,但由于项目需要,项目主要没有采用存储过程方式来存储SQL语句,所以很有可能被黑客用SQL注入攻击,现在就在网上找了找解决办法,在业务层来过滤SQL语句,防止SQL注入攻击,主要是采用了正则表达式,因为正则表达式对字符串的操作是很强大的.
首先用一个Validate()类来封装正则表达式和相关操作:
//验证是否有SQL注入字符
private bool ValidateQuery(Hashtable queryConditions)
{
//构造SQL的注入关键字符
#region 字符
string[] strBadChar = {"and"
,"exec"
,"insert"
,"select"
,"delete"
,"update"
,"count"
,"or"
//,"*"
,"%"
,":"
,"\'"
,"\""
,"chr"
,"mid"
,"master"
,"truncate"
,"char"
,"declare"
,"SiteName"
,"net user"
,"xp_cmdshell"
,"/add"
,"exec master.dbo.xp_cmdshell"
,"net localgroup administrators"};
#endregion
//构造正则表达式
string str_Regex = ".*("
for (int i = 0; i strBadChar.Length - 1; i++)
{
str_Regex += strBadChar[i] + "|"
}
str_Regex += strBadChar[strBadChar.Length - 1] + ").*"
//避免查询条件中_list情况
foreach (string str in queryConditions.Keys)
{
if(str.Substring(str.Length - 5)=="_list")
{
//去掉单引号检验
str_Regex = str_Regex.Replace("|'|", "|");
}
string tempStr = queryConditions[str].ToString();
if (Regex.Matches(tempStr.ToString(), str_Regex).Count 0)
{
//有SQL注入字符
return true;
}
}
return false;
}
queryConditions 是一个hashtable,用于传入查询条件,hashtable中的键值(key)为:@name,相对应SQL中的参数,那Value则对应为参数的实际值了.
正则表达式的应用主要是按这样的规律来过滤字符串的:
.*(and|exec|select|update|or|'|''|).* // str_Regex
核心函数主要是: Regex.Matches(tempStr.ToString(), str_Regex).
要是在 tempStr 字符串中含有非法字符, 则函数的Count值将大于0
好了,就这样就可以判断是否含有SQL注入攻击字符了.
嗯,前面找了一个防止SQL注入的说明,今天下午把它打成一个webSecurityObject类中的静态方法:)
编写思想:
1,输入的SQL查询字符中,不能包括 '+空格的类型(有可能英文会有 Ben3's Diary类型的字符,故要过滤的是 select * from a='1' and 这一类中的分号结束符。
2,输入的SQL查询字符中,不能有单独的查询匹配符及关键字存在,由于SQL的特殊性,一般来说,这些关键字都有一个特性,即关键字一般是通过 空格+关键字+空格 的状态存在的
3,注意HTTPDECODE的状态,即输入的是否是HTTP编码。。。
4,使用正则来实现
源码如下:
using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Text.RegularExpressions;
namespace MPWS.BaseCore
{
public class WebSecurityObject
{
public WebSecurityObject()
{
}
public static bool IsNumeric(string checkText)
{
Regex reg=new Regex(@"^\d$");
return reg.IsMatch(checkText);
}
public static bool CheckSQLString(string checkText,bool NeedUrlCodeCheck)
{
string tempString=checkText;
if (NeedUrlCodeCheck)
tempString = HttpUtility.UrlDecode(tempString);
//说明:不能存在'+空格的存在,并且,不能有空格+字符+空格的命令存在
string sqlString = @"\s*\'\s+|\s(and|exec|insert|select|delete|update|count|\*|\%|chr|mid|master|truncate|char|declare)\s";
Regex reg=new Regex(sqlString);
return reg.IsMatch(tempString);
}
public static string FormatString(string inText)
{
string tempstring = inText;
tempstring = tempstring.Replace("'", "''");
return tempstring;
}
}
}
本文来自CSDN博客,转载请标明出处:
很多 人否能没有 晓得若何 写一篇常识 便是力气 讲演稿。事例上,常识 是统统 力气 的源泉,是文人骚客表达激情 壮志的本钱 ,是国度 强盛 、迷信成长 的力气 源泉,是人们从世界文明的丛林 外自力 没去的基石,是文人 对于常识 的盼望 ,是文人抒发能力 的才能 ,是人们真现弘远 理想 的欲望 。以...
每一个年夜 都应该做出自己 的自我判断 。尤其是对于 年夜 教卒业 熟,要做出自己 的自我判断 。回顾 本身...
在四年的除夕教学生涯中, 将立即停止 。回顾 四年的空儿,我在初末提出了 的综合折叠,而不是为了自己 的目的...
现在 有很多 的人无意识或有意识地通过过过程 一点错误的单词来提升 本身 品牌的无名度,我们都知道,现在 许多...
虽然 说工作趋势是在自己的 工作简历外面的长度 通常是一个小部门 ,但 对于 我们来说,这也是长度 通常是主要...
亲爱的父亲和儿子:你胆小!这是你年轻时母亲第一次怀疑你的父亲和儿子。我希望 怀疑能给你带来更多的快乐 战争信念...