文库|yunyeCMS漏洞合集

admin 2021年12月27日01:41:10评论143 views字数 2226阅读7分25秒阅读模式

高质量的安全文章,安全offer面试经验分享

尽在 # 掌控安全EDU #



作者:掌控安全-柚子

一、yunyeCMS前台注入漏洞(一)

环境搭建

云业CMS内容管理系统是由云业信息科技开发的一款专门用于中小企业网站建设的PHP开源CMS,可用来快速建设一个品牌官网(PC,手机,微信都能访问),后台功能强大,安全稳定,操作简单。

源码下载:https://down.easck.com/code/60244.html

文库|yunyeCMS漏洞合集

漏洞寻找


下载源码,搭建起来,打开登录页面。


  1. http://127.0.0.1/yunyecms/admin.php?c=login&=

文库|yunyeCMS漏洞合集

打开Seay源代码审计工具,分析代码。

经过一番寻找与“提示”,发现getip()方法获取ip没有进行过滤,可能有戏。


文库|yunyeCMS漏洞合集

搜索getip()函数,发现login.php调用了该函数,变量为$logiparr


文库|yunyeCMS漏洞合集

跟踪该变量,发现CheckLoginTimes函数调用该变量。


文库|yunyeCMS漏洞合集

去到该函数定义处,发现我们的ip变量没有进行任何过滤直接由GetCount函数执行。


文库|yunyeCMS漏洞合集

漏洞复现


  1. $cnt=$this->db->GetCount("select count(*) as total from `#yunyecms_adminloginfail` where ip='$ip' and failtimes>=".ADMLOGIN_MINUTES." and lastlogintime>$checktime limit 1");

可以看出,我们可以构造该ip变量达到注入目的,打开burp抓包。


文库|yunyeCMS漏洞合集
发送到Repeater模块,构造参数,可以看到sql报错。

文库|yunyeCMS漏洞合集

进一步利用,得到数据库名称,漏洞存在。

文库|yunyeCMS漏洞合集

漏洞利用


将数据包发送给sqlmap去跑可以拿到更多信息


文库|yunyeCMS漏洞合集

二、yunyeCMS前台注入漏洞(二)


漏洞描述


云业CMS内容管理系统是由云业信息科技开发的一款专门用于中小企业网站建设的PHP开源CMS,可用来快速建设一个品牌官网(PC,手机,微信都能访问),后台功能强大,安全稳定,操作简单。


yunyecms cookie参数存在sql注入漏洞,攻击者可以通过利用漏洞获取数据库敏感信息。


影响版本


yunyecms 2.0



漏洞发现


1.注册一个普通用户


文库|yunyeCMS漏洞合集

文库|yunyeCMS漏洞合集

2.然后直接进行抓包,抓任何页面的数据包都可行。


在cookie处YUNYECMS_userid 参数这里找到存在SQL注入漏洞。


文库|yunyeCMS漏洞合集
用最简单的方法,在这里手注一个单引号,返回包里的报错信息都是与数据库相关的,所以可以判断是存在sql注入。

文库|yunyeCMS漏洞合集
尝试手工注入找到数据库库名

文库|yunyeCMS漏洞合集

3.也可以交给sqlmap跑一跑,把注入点的地方用 * 号标注


这样也能跑到其他数据库


文库|yunyeCMS漏洞合集

文库|yunyeCMS漏洞合集

文库|yunyeCMS漏洞合集

文库|yunyeCMS漏洞合集

三、yunyeCMS后台注入漏洞(一)


漏洞分析


发现core/admin/deparment.php文件,其中id值是通过post直接获取的


然后被edit_admin_department()调用。


文库|yunyeCMS漏洞合集

去到edit_admin_department()函数定义处,发现过滤语句。


文库|yunyeCMS漏洞合集

但是仔细一看


发现代码只是过滤了departmentnameolddepartmentname两个变量


放过了我们的id变量,只是判断id值是否为空。


  1. if($departmentname!=$olddepartmentname){

  2. $num=$this->db->GetCount("select count(*) as total from `#yunyecms_department` where departmentname='$departmentname' and departmentid<>$id limit 1");

  3. if($num){ messagebox(Lan('department_already_exist'),url_admin('department_add','','',$this->hashurl['usvg']),"warn");}

  4. }

从代码可以看出,如果departmentname的值不等于olddepartmentname就执行sql语句,我们的id值没有任何过滤出现在sql语句中,应该有注入无疑了。



漏洞复现


找到core/admin/deparment.php所在的页面,即后台的部门管理处。


文库|yunyeCMS漏洞合集

随意修改部门名字,只要前后名字不一致就行,然后抓取数据包。

文库|yunyeCMS漏洞合集

发送到Repeater模块,构造参数,可以看到sql报错。


文库|yunyeCMS漏洞合集

四、yunyeCMS后台注入漏洞(二)

漏洞分析


漏洞出现在在后台文件department.php中department_add 函数对GET和POST参数先进行了是否empty判断

最终将传入的几个参数传给了edit_admin_department

文库|yunyeCMS漏洞合集

跟入edit_admin_department,对参数依次进行了处理,


但是发现只有$departmentnam,$olddepartmentname进行了usafestr安全过滤,漏网的$id拼接到了sql语句中执行。


文库|yunyeCMS漏洞合集

最终导致了sql注入。


漏洞复现


这个和上述三种情况相同,直接交给sqlmap去跑。


文库|yunyeCMS漏洞合集



回顾往期内容

Xray挂机刷漏洞

POC批量验证Python脚本编写

实战纪实 | SQL漏洞实战挖掘技巧

渗透工具 | 红队常用的那些工具分享

代码审计 | 这个CNVD证书拿的有点轻松

    代理池工具撰写 | 只有无尽的跳转,没有封禁的IP!

文库|yunyeCMS漏洞合集


扫码白嫖视频+工具+进群+靶场等资料


文库|yunyeCMS漏洞合集

 


文库|yunyeCMS漏洞合集

 扫码白嫖


 还有免费的配套靶场交流群哦!

本文始发于微信公众号(掌控安全EDU):文库|yunyeCMS漏洞合集

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年12月27日01:41:10
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   文库|yunyeCMS漏洞合集https://cn-sec.com/archives/475429.html

发表评论

匿名网友 填写信息