我是如何发现一枚Cisco XSS漏洞的

  我在Cisco的IOS SoftwareChecker中找到一枚XSS(跨站脚本)漏洞,漏洞本身并不复杂,在此与大家分享漏洞发现的整个过程。

  无意的发现

  这一天我正在阅读Cisco提供的漏洞报告,偶然发现了“Cisco Ios Software Checker”这个安全工具。对于Cisco设备管理员来说,这个工具十分有用,可以确定Cisco IOS软件是否错过了安全补丁或者安全漏洞。

  我尝试在用于查找Cisco IOS版本的输入框中提交一些垃圾数据,结果被系统无情的被拒绝了。我想可能是由于我没有输入一个有效的IOS版本吧。

  我是如何发现一枚Cisco XSS漏洞的

  因为Cisco IOS软件版本可以包含许多不同的字符,于是我使用有效的IOS版本字符串又试了一次,我在“15.1”后面加上了一大堆”A”。然后我惊奇的发现”AAAAAA”竟然成功注入到目标页面!

  我是如何发现一枚Cisco XSS漏洞的

  有意思,我觉得有必要再往深处看看。查看HTML源码,发现了一处代码注入点——一个输入框的onclick属性。

  我是如何发现一枚Cisco XSS漏洞的

  现在我需要弄清楚,到底有哪些字符是我可以使用的。

  我是如何发现一枚Cisco XSS漏洞的

  注意双引号和圆括号,现在我找到我们所需要的了,这些可是能注入到输入字段的哟。

  输入尝试

  第一步就是避免input标签,我比较喜欢使用onclick=”…” 属性。使用一个简单的双引号,添加恶意字符串。我就有能力将elements 集合添加到input标签中。

  这是input标签,提交“15.1” INJECTION_STUFF_HERE 到表单中后的情况:

  <input…onclick=”redrawRSS(’15.1”INJECTION_STUFF_HERE…>

  好了,现在我第一个想法就是将input类型改为图片形式,这样可能会有意想不到的发现。

  <input…onclick=”redrawRSS(’15.1”type=imagesrc=…>

  Perfect!现在可以肯定的是,我能够执行Javascript了!

  接下来,我将onload=””属性添加到input标签,然后可以十分轻松的在目标页面上执行alert(1)的弹窗了。也就是说,一个XSS漏洞被我发现了。

  下面是我简单制作的挖洞过程动画

  http://static.freebuf.com/2015/01/6.gif

  http://static.freebuf.com/2015/01/7.gif

  结语

  在测试这个漏洞的时候,Cisco工程师很快就截获了相关信息并修复了这个安全漏洞。

  这件事情告诉我们:不要绝对的相信用户的输入,不要补了东墙忘了西墙,却把最基础的安全漏洞给忽略了。

 

上一篇:智能无惧挑战 山石网科轰动RSA2015

下一篇:利用内容安全策略探测网站登陆状态