• [代码审计]云优cms V 1.1.2前台多处sql注入,任意文件删除修复绕过至getshell


     0X00 总体简介

    云优CMS于2017年9月上线全新版本,二级域名分站,内容分站独立,七牛云存储,自定义字段,自定义表单,自定义栏目权限,自定义管理权限等众多功能深受用户青睐,上线短短3个月,下载次数已超过5万次。云优CMS坚信没有排名的网站不是“好网站”,我们将致力于为用户打造全自动SEO解决方案

    此次审的版本为云优CMS v1.1.2,更新于2018.08.02。

    发现了前台api模块Master.php,V1.php存在多个注入漏洞,与及staticsueditorvendorLocal.class.php 文件remove方法存在任意文件删除可导致getshell。

    0x01 漏洞环境

    工具: phpstudy , vscode,seay源代码审计工具,burpsuite

    CMS版本: v1.1.2

    官网下载:http://www.yunucms.com/

    0x02 漏洞介绍

    一、前台api模块下的Master.phpV1.php控制器多处sql注入

     多处sql注入皆是orderby变量未过滤,直接带入了查询。pdo是没有办法过滤orderby的。

    1Master.phpapi_list 方法

     

    直接带入查询,没有任何过滤

     

    2,Master.phpapi_link 方法

    不一一举例,Master.php文件的多处$orderby变量都是存在注入的,同理V1.php文件也是一样。

    注入证明:取master.php文件中的api_list方法的注入点为例(为了更好的显示漏洞,手动开启了程序的debug模式,不开启报错方式也是可通过盲注的方式获取数据。程序默认不开启debug模式)

    修复建议:

    1) :不让用户可控$orderby参数

    二、任意文件删除漏洞修复绕过

     文件staticsueditorvendorLocal.class.php remove方法

    这个漏洞在1.0.6版本中引入,在1.0.8版本修复。

    但是修复不完全,可以直接绕过。

    看代码的意思是获取文件路径,通过’/’来划分为数组,判断数组[0]和数组[1]是否等于uploads,不等于则非法。但是我们可以这样绕过,payloads/uploads/../test.txt

    且该处文件不经过后台认证,比如删除一个正常的图片,不带cookie,也是可以正常删除的。

    跨目录删除文件,删除根目录下的test.txt

    请求包:

    可删除install.lock,重装系统写入配置文件直接获取网站webshell,参考(http://www.freebuf.com/column/162343.html)

    修复建议:

    1) :不允许路径中出现.. 字符

    2) :比如将安全验证的代码修改为$file=str_replace(‘..’,’’,$file);

    0X03 总结

    漏洞原理比较简单,通过这个系统顺便总结了一下orderby注入相关的东西。

    与及也发现了一些组件相关的问题,后面写篇文章总结一下。

    声明:本文章只用于学习研究之用,禁止用于违法犯罪。

    0x04 参考链接

    1,http://www.cnblogs.com/iyiyang/articles/6740580.html

  • 相关阅读:
    Linux系统的关机、重启、睡眠
    Java 读写Properties配置文件
    Java识别操作系统
    Java DES 加解密("DES/CBC/PKCS5Padding")
    Java获取本机IP
    编写SHELL脚本--编写简单脚本
    配置yum软件仓库(redhat 7.0)
    简单的redis测试
    Seaslog安装和参数配置
    mac使用phpize进行安装的时候碰到的问题
  • 原文地址:https://www.cnblogs.com/r00tuser/p/9448196.html
Copyright © 2020-2023  润新知