动易2005留言板XSS漏洞分析与利用实例
之前在测试一些基于动易2005系统搭建的网站时,发现了一个挺有意思的问题。这个老牌内容管理系统的留言板模块里,藏着一个跨站脚本漏洞。利用路径,恰恰是大家可能不太会注意的“插入图片”功能。
具体怎么操作呢?首先,你需要注册一个普通会员账号。然后,去到GUESTBOOK(留言板)页面准备留言。关键步骤来了:在留言内容里使用“插入图片”的功能。不过,图片地址可不能老老实实地填一个真实的图片链接。
你猜怎么着?攻击载荷就写在这个图片地址栏里。比如,可以填入类似下面这样的内容:
https://localhost/PowerEasy/admin/admin_admin.asp?AdminName=xiaod&username=xiaod&password=123456&pwdconfirm=123456&purview=1&Action=Sa veAdd
当然,上面是一个本地测试的地址示意,实际攻击中需要换成目标站点的相应路径。
为了让这个操作更隐蔽,有个小技巧。建议在提交留言的原始HTML代码里,把这张“图片”的高度和宽度都手动设置成0。这样一来,前端页面上就几乎看不到任何图片显示,但管理员后台在解析这条留言时,却会忠实地去请求并执行那个伪装成图片地址的链接。
漏洞利用的逻辑其实很清晰。攻击者在留言中埋下这个特殊的“图片”链接。只要网站管理员在后台查看并回复这条留言,其后台管理会话就会触发这个请求。而请求指向的,恰恰是添加后台管理员账户的接口。参数里已经把新的管理员用户名、密码、权限都提前预设好了。
所以,整个攻击链条就完成了:一段精心构造、内容颇具诱惑性的留言,等待管理员点开。一旦管理员进行回复操作,攻击者预设的管理员账户就会被悄无声息地添加到系统中。攻击者随即就拿到了后台的最高管理权限。
值得注意的是,这个漏洞在当时的影响范围可不小。根据测试反馈,无论是SQL版还是Access版的动易2005系统,都受此漏洞影响,可以说是“通杀”了。这提醒我们,即便是成熟的内容管理系统,对用户输入内容,尤其是像图片地址这类可执行路径的过滤和校验,在任何时候都不能掉以轻心。
