本小节将以迷你留言本为例子进行跨站脚本攻击的讲解。留言本的体积很小,代码不多,适合用来分析,并且迷你留言本的安装很简单,从网上下载迷你留言本的压缩包后直接解压到IIS的目录中就可以使用了。安装完成后的运行界面如下图所示。
悠悠留言本运行界面
下面看看这个留言本是如何显示留言的,用记事本打开index.asp页面的代码,显示如下:
提示
以上代码中加粗的那两句直接从数据库中读取字符串并放在HTML代码中。在这个过程中,代码没有对读取的字符串进行任何处理。如果在数据库里的字符串是HTML代码,毫无疑问,留言内容会按照HTML的语法解析显示;再则,如果是JavaScript,则照样会作为JavaScript去执行。
接下来,攻击者就开始想办法将恶意代码插入到数据库中去,让页面被访问时执行代码。其实,插入数据库的方法很简单,发布留言时留言的内容会被插入到数据库中。单击“发表留言”链接,进入“签写留言”页面。这个页面中有几处需要输入文本,但用户通常只需要在该页面中输入昵称和留言内容即可。具体过程曝光如下。
STEP01:插入HTML代码
STEP02:访问index.asp主页面(www.daowen.com)
STEP03:向数据库插入JavaScript
STEP04:查看提示信息
提示
1)在“签写留言”页面中输入的“<script>alert('哈哈!!!!测试漏洞喽….');</script>”代码,它的功能是弹出一个对话框,显示“哈哈!!!!测试漏洞喽….”字符串。
2)如果能弹出“Internet Explore”对话框,则说明脚本代码被执行了。原来,那些“高手”也只是通过这个小小的手段做到的,并不是控制了服务器而修改了文件。
这样的漏洞普遍存在,并不一定是留言本才有,在网页中有数据输入的地方就有可能存在跨站脚本漏洞。检测的方法跟前面介绍的一样,在输入数据的地方输入HTML或脚本代码,查看在显示数据时它们能否被解析执行。如果可以,则说明这个程序有漏洞。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。