邪恶的xwiki

一个不错的开源wiki,功能很多,但是真的太复杂。。。

 

velocity的页面模板,复杂的hibernate封装,导致代码级别的修改成本非常高!

 

访问其网站,发现美其名曰开源,其实是有提供商业支持服务的,开源出来的东东并不完美,而且修改的代价。。确实很高,很高。。。仅仅一个search框的xss,都找不到去哪里过滤他.

 

下图是我在其官方网站上做的测试,当然下面还有更离谱的事情展示:


邪恶的xwiki_第1张图片

 

 

 

这里是bug库搜索发现,早在2007年就有开发者反馈到这个问题,并提交svn修改代码。


邪恶的xwiki_第2张图片

 

。可是跟进去一看,哥傻眼了。简单的把replace换成replaceAll,居然号称解决,而且这个问题居然就成了fixed状态。
邪恶的xwiki_第3张图片

 

 

 

 

 

看来还是要自己动手:分析整个过程

1. httpwatch看了一下请求串,发现参数做了URIencoding,问题不大。

2.跟踪了一下hibernate产生的sql,发现'&%之类的sql注入已经被处理过,pass。

3.定位问题为请求串未经过转义,直接输出页面上了。  处理 < > / 几个特殊符号,将其转义。

 

 

4.编辑页面,发现页面的title居然也是动态,直接引用请求参数,于是去掉之。

你可能感兴趣的:(邪恶的xwiki)