网页被嵌入iframe大多数网站管理员都遇到过,一般这种问题是网站有漏洞,(少数部分也因ARP病毒引起,可以从源代码中进行判断)系统漏洞或者SQL注入漏洞,或者上传文件漏洞,然而,如何防止网页被修改加入脚本病毒? 现将这个问题总结分享一下:
1、简单的补救措施:在服务器IIS中,把所有的ASP,HTML文件的属性设置为Everyone只读(一般是IUSR_),只把数据库的权限设置成可写, 注意:如果你没有服务器的管理权限,那么登录上的空间ftp,选中那些不需要写入的文件或文件夹,右键点击-属性:把其中的三组写入权限都取消,但如果你有ACCESS数据库,要把数据库设成可写,不然读数据时会出错。
2、先把恶意代码删掉(替换掉),然后把网站目录下的所有文件全部用杀软杀下 ,然后一个一个检查下是否存在后门.
3、在你的程序里写上以下防注入函数
on error resume next ’这行代码放到conn.asp的第一行。
’防止注入
dim qs,errc,iii
qs=request.servervariables("query_string")
’response.write(qs)
dim deStr(18)
deStr(0)="net user"
deStr(1)="xp_cmdshell"
deStr(2)="/add"
deStr(3)="exec%20master.dbo.xp_cmdshell"
deStr(4)="net localgroup administrators"
deStr(5)="select"
deStr(6)="count"
deStr(7)="asc"
deStr(8)="char"
deStr(9)="mid"
deStr(10)="’"
deStr(11)=":"
deStr(12)=""""
deStr(13)="insert"
deStr(14)="delete"
deStr(15)="drop"
deStr(16)="truncate"
deStr(17)="from"
deStr(18)="%"
errc=false
for iii= 0 to ubound(deStr)
if instr(qs,deStr(iii))<>0 then
errc=true
end if
next
if errc then
Response.Write("对不起,非法URL地址请求!")
response.end
end if
4、在文件<head></head>中加入
<script language="javascript">
<!--
if (top.location != location) top.location.href = location.href;
//-->
</script>
====================== 以下为摘录===网页防篡改
一,Stream开关可自由设置,ASP中的ADODB.Stream 对象用来操作二进制或文本数据的流。通常用于无组件上传和验证码等功能。关闭该组件可以提高网站安全。 Fso开关也可自由设置,FSO(FileSystemObject)是微软ASP的一个对文件操作的控件,该控件可以对服务器进行读取、新建、修改、删除目录以及文件的操作。关闭该组件有利于提高网站安全。
二,假设网站建好后,今后一段时间都不会再用到ftp上传功能,这时可以暂时关闭FTP上传,有助于提高网站的安全,即使ftp密码泄露,***也不能操作空间内的文件,设置后60秒后生效。
三,另外还可设置脚本权限与写入权限,如果网站只使用了asp,可设置为只开放asp权限。这样***即使上传了php的***到空间也不能运行,最少的权限=最大的安全。写入权限设置则系统支持全国领先的目录权限设置,允许关闭网站的写入权限,锁定虚拟主机。对安全有重要意义,例如可以将access数据库放在databases目录,而将wwwroot目录的写入 权限关闭,令asp***根本无法上传,这样比关闭FSO更安全。
2、先把恶意代码删掉(替换掉),然后把网站目录下的所有文件全部用杀软杀下 ,然后一个一个检查下是否存在后门.
3、在你的程序里写上以下防注入函数
on error resume next ’这行代码放到conn.asp的第一行。
’防止注入
dim qs,errc,iii
qs=request.servervariables("query_string")
’response.write(qs)
dim deStr(18)
deStr(0)="net user"
deStr(1)="xp_cmdshell"
deStr(2)="/add"
deStr(3)="exec%20master.dbo.xp_cmdshell"
deStr(4)="net localgroup administrators"
deStr(5)="select"
deStr(6)="count"
deStr(7)="asc"
deStr(8)="char"
deStr(9)="mid"
deStr(10)="’"
deStr(11)=":"
deStr(12)=""""
deStr(13)="insert"
deStr(14)="delete"
deStr(15)="drop"
deStr(16)="truncate"
deStr(17)="from"
deStr(18)="%"
errc=false
for iii= 0 to ubound(deStr)
if instr(qs,deStr(iii))<>0 then
errc=true
end if
next
if errc then
Response.Write("对不起,非法URL地址请求!")
response.end
end if
4、在文件<head></head>中加入
<script language="javascript">
<!--
if (top.location != location) top.location.href = location.href;
//-->
</script>
====================== 以下为摘录===网页防篡改
一,Stream开关可自由设置,ASP中的ADODB.Stream 对象用来操作二进制或文本数据的流。通常用于无组件上传和验证码等功能。关闭该组件可以提高网站安全。 Fso开关也可自由设置,FSO(FileSystemObject)是微软ASP的一个对文件操作的控件,该控件可以对服务器进行读取、新建、修改、删除目录以及文件的操作。关闭该组件有利于提高网站安全。
二,假设网站建好后,今后一段时间都不会再用到ftp上传功能,这时可以暂时关闭FTP上传,有助于提高网站的安全,即使ftp密码泄露,***也不能操作空间内的文件,设置后60秒后生效。
三,另外还可设置脚本权限与写入权限,如果网站只使用了asp,可设置为只开放asp权限。这样***即使上传了php的***到空间也不能运行,最少的权限=最大的安全。写入权限设置则系统支持全国领先的目录权限设置,允许关闭网站的写入权限,锁定虚拟主机。对安全有重要意义,例如可以将access数据库放在databases目录,而将wwwroot目录的写入 权限关闭,令asp***根本无法上传,这样比关闭FSO更安全。
附:
在落伍者网站看到一个托管用户写了同样的一个问题解决方法,在此转载一下:
解决问题的方法×××。
半夜一个网站被黑了,然后突然发现在访问服务器所有html页面的时候,自动插入iframe
通过以下各项检查,均未能发现问题
1、安装了防火墙
2、检查了web程序
3、检查了当天有没有新建或修改的文件(exe,bat,dll等)
4、非本地DNS被ARP
准备放弃的时候。查看了下iis的的配置
通过以下各项检查,均未能发现问题
1、安装了防火墙
2、检查了web程序
3、检查了当天有没有新建或修改的文件(exe,bat,dll等)
4、非本地DNS被ARP
准备放弃的时候。查看了下iis的的配置
我们找到这个文件
打开以后果然是挂马的IFRMAE内容
打开IIS,在你的计算机名(根目录)右键选择属性,在允许直接编辑配置数据库复选框前打钩
然后才是在服务里关闭iis admin service服务
找到IIS配置文件C:\WINDOWS\system32\inetsrv\MetaBase.xml
查找“DefaultDocFooter=”
然后删掉此行
然后重启iis admin service服务
否则你修改后不能保存该文件,也即不能修改。
大功告成。阿米陀佛,总算不用重装系统了!
转载于:https://blog.51cto.com/fei2008/147692