云业CMS内容管理系统[前台+后台]注入审计

前言

审计的版本是:云业CMS内容管理系统V2.0.2
官方网站:http://www.yunyecms.com
前台的注入点好像已经有前辈审计出来了. 拿官方的后台演示站点测试了一下后台注入,发现也存在.顺便就一起发出来. 基本操作大牛别来喷我

实名制diss官方 自己悄悄把演示站的前台注入修复了,没发公告出来,也没发补丁出来.

0x02

前台注入:
主要出现问题的点是在于他的一个函数 getip() 函数位置在 core/func/basic.fun.php 139行1.jpg

一眼就能看明白,并没有验证ip的合法性 也没有过滤相关的危险字符.直接搜索哪些文件调用了这个函数 发现了以下几个点

  1. core/app/content/index.php 第555行代码执行了select操作
  2. core/func/content.fun.php savemsg函数里面执行了insert操作

继续搜索savemsg函数,看看哪些文件调用了这个函数

  1. core/app/member/member.php insert 函数 这个函数是处理前台用户注册的函数.
  2. core/app/shop/cart.php pay 函数 这个函数是购买购物车里面的物品的函数.

这两个地方都没有对getip() 这个函数获取到的ip 值 进行任何的处理或者过滤. 直接进入了查询语句.

这里感谢一下 鸭王师傅 提供的MySQLMonitor 这个脚本,监控sql语句挺好用的. 这里提供一下地址方便大家下载 支持
windows/mac https://github.com/TheKingOfDuck/MySQLMonitor

言归正传 先看一看他core/app/content/index.php 这里的问题,他这里属于前台的在线留言模块 我们先监控mysql数据库,然后本地测试一下,看看他到底执行了什么sql语句
2.jpg
可以看到他一共执行了两次sql语句,都把getip()获取到的ip值带进去查询了.直接用burpsuite把X-Forwarded-For头加个单引号进去测试一下
3.jpg

可以看到这里直接报错了. 可以确定这里存在报错注入了.另外几个点其实原理都一样,都是被这个getip函数给坑的.... 我就不一一举例了.

0x03

后台注入:
后面发现官方的演示站点几个点都不存在这个前台注入,寻思他估计悄悄把getip这个函数给改了,应该验证了ip合法性.导致所有点全部凉透了.那没办法了啊..也没找到啥其他注入点 后面就寻思看看能不能搞个后台注入,刚好官方提供了后台的演示站.
进入主题 -> 漏洞文件位置core/admin/deparment.php文件 这个文件功能点对应的是后台的部门管理
4.jpg

我们看到他直接用post获取了id的值然后进入edit_admin_department函数 咱们跟进edit_admin_department函数看看
5.jpg

可以看到这里应该是属于开发人员的失误导致的.他过滤了departmentname olddepartmentname 但却忘记过滤id了.只判断了id是否为空 如果他的departmentname olddepartmentname 不一致,说明更新了部门名字,就执行select那条sql语句.然后id在里面还没有被单引号包裹. 赶紧测试一下试试
我们让 departmentname 参数和olddepartmentname 不等于,就能进入这个if分支
因为我们这里不需要用单引号,直接用extractvalue()来报错,
6.png

ok,马上去试了一下官方后台演示站点.也存在这个问题.
上报cnvd,溜溜球了~

本文链接:

http://www.hentai6.cn/index.php/archives/28/
1 + 8 =
快来做第一个评论的人吧~