前面对这个wiki已经写了两次了,
第一回,邪恶的xwiki
http://sw1982.iteye.com/admin/blogs/689936
第二回,慎防国际化中的language参数XSS注入
http://sw1982.iteye.com/blog/728637
这是第3回,还是接第二回写
?language=t5x'%20onreadystatechange='alert(document.cookie)'
onreadystatechange 是针对ie内核的一种注入方式, 这回连< > /几个字符都不需要了,于是在第二回合中的解决方案以失败告终。
完整的js过滤字符应该需要包括 < > ' " &
replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll("\'", "'").replaceAll("\"", """)
千万不可以认为解决左右尖括号<>和斜杠/就万事大吉了!
本次修改的地方除了第二回中的文件外,还需要替换这里:xwiki/webroot/templates/macros.vm。
这个地方很邪恶, url变量被注入,
于是再拿这个邪恶的参数去xwiki官方网站测试,发现其实官网不存在这个问题。下面是传送门
http://platform.xwiki.org/xwiki/bin/view/DevGuide/DataModel?language=t5x'%20onreadystatechange='alert(document.cookie)'
于是,再次明白了免费软件, 商业支持 。。。