代码审计系列3:cmseasy CSRF导致远程PHP代码执行

2013-09-20T00:00:00
ID SSV:94030
Type seebug
Reporter Root
Modified 2013-09-20T00:00:00

Description

简要描述:

利用后台设计权限可上传PHP文件,并且可利用XSS留永久后门

详细说明:

1.我们先来看看这个缺陷的地方在哪儿

<img src="https://images.seebug.org/upload/201309/191620103614a83403d5473c6d73846bd224c2b0.png" alt="1.png" width="600" onerror="javascript:errimg(this);">

cmseasy有一个设置附件后缀白名单的地方,我们可以从这里添加.php后缀来达到上传PHP文件的目的。 2.如何上传文件

<img src="https://images.seebug.org/upload/201309/191624479e7218eeefb9fe74906e04fb6224305f.png" alt="2.png" width="600" onerror="javascript:errimg(this);">

这个页面有上传文件的功能,它会检查白名单中的后缀。 3.当我们知道如何后台GETSHELL之后,现在我们开始构造利用代码。 CSRF可以帮助我们实现添加文件后缀白名单,于是我们构造出以下代码。

None

Request URL:http://127.0.0.1:8080/CmsEasy/index.php?case=template&act=save&admin_dir=admin&site=default 将以上参数 作为CSRF 利用,即可在首页(footer.html)留下XSS后门 , 这里不再演示

<img src="https://images.seebug.org/upload/201309/19165242f11cc46164ab19eec073cad13d8a2843.png" alt="7.png" width="600" onerror="javascript:errimg(this);">