### 简要描述: CmsEasy 某处存储型XSS,可直接跨进后台,劫持管理。 ### 详细说明: 问题在于论坛的发帖出,帖子的标题title和内容没有过滤,帖子的内容必须使用源代码的格式,正常情况吸收是被过滤的。 先看看/cmseasy/bbs/add-archive.php文件: [<img src="https://images.seebug.org/upload/201311/25092024a55e4bf0006582155135c81dda45dc4c.png" alt="1.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201311/25092024a55e4bf0006582155135c81dda45dc4c.png) 在接收到$_POST内容后,没有过滤,直接inserData,再来看看这个inserData()函数 /cmseasy/bbs/model/db/base.php: [<img src="https://images.seebug.org/upload/201311/25092047a8ec2b3aa610956c89f5f71cbf529d66.png" alt="2.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201311/25092047a8ec2b3aa610956c89f5f71cbf529d66.png) 这里也没有过滤,然后进行insert,再来看insert()这个函数 /cmseasy/bbs/commonlib/DB.php: [<img src="https://images.seebug.org/upload/201311/25092115926505218aded5e54c260f9fd21166f7.png" alt="3.png" width="600"...
### 简要描述: CmsEasy 某处存储型XSS,可直接跨进后台,劫持管理。 ### 详细说明: 问题在于论坛的发帖出,帖子的标题title和内容没有过滤,帖子的内容必须使用源代码的格式,正常情况吸收是被过滤的。 先看看/cmseasy/bbs/add-archive.php文件: [<img src="https://images.seebug.org/upload/201311/25092024a55e4bf0006582155135c81dda45dc4c.png" alt="1.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201311/25092024a55e4bf0006582155135c81dda45dc4c.png) 在接收到$_POST内容后,没有过滤,直接inserData,再来看看这个inserData()函数 /cmseasy/bbs/model/db/base.php: [<img src="https://images.seebug.org/upload/201311/25092047a8ec2b3aa610956c89f5f71cbf529d66.png" alt="2.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201311/25092047a8ec2b3aa610956c89f5f71cbf529d66.png) 这里也没有过滤,然后进行insert,再来看insert()这个函数 /cmseasy/bbs/commonlib/DB.php: [<img src="https://images.seebug.org/upload/201311/25092115926505218aded5e54c260f9fd21166f7.png" alt="3.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201311/25092115926505218aded5e54c260f9fd21166f7.png) 依然没有过滤,进行了getInsertString,再来看这个getInsertString()函数 /cmseasy/bbs/commonlib/DB.php [<img src="https://images.seebug.org/upload/201311/250921318f1a4b908827802f804fd21e1bdbf01d.png" alt="4.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201311/250921318f1a4b908827802f804fd21e1bdbf01d.png) 最后在这里进行了过滤filterString,那么我们来看看这个过滤函数fileterString() /cmseasy/bbs/commonlib/DB.php [<img src="https://images.seebug.org/upload/201311/25092145da27f7d62d219ba8b18963ec4b6ff3e5.png" alt="5.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201311/25092145da27f7d62d219ba8b18963ec4b6ff3e5.png) 到最后也只用了mysqli_real_escape_string 函数来进行过滤, 然后mysqli_real_escape_string函数只能过滤NUL (ASCII 0),\n,\r,\,',",这些字符,所以对于这里的xss根本没起到作用。 ### 漏洞证明: 这论坛开启的情况下,发帖后,当管理员审核发帖,或者编辑帖子时就会触发xss [<img src="https://images.seebug.org/upload/201311/25092206a5ccc84ee0f4d771bdf2e128fbc187eb.png" alt="6.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201311/25092206a5ccc84ee0f4d771bdf2e128fbc187eb.png) 打开帖子管理就会触发title处的xss [<img src="https://images.seebug.org/upload/201311/2509221878d9bf27a3707ebc4036de1d6432b21e.png" alt="7.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201311/2509221878d9bf27a3707ebc4036de1d6432b21e.png) 编辑帖子时就会触发帖子内容中的xss [<img src="https://images.seebug.org/upload/201311/2509223200b2480336265cf041980e1350073c0f.png" alt="8.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201311/2509223200b2480336265cf041980e1350073c0f.png)