起初我以为这个sys_key是随机生成的.然后我本地和vps上发现都是一样的.最后去看了下源码发现没有生成这个值的地方.最后的最后看了开源的地址http://git.oschina.net/dayrui/finecms/blob/master/v5/config/system.php
发现是固定值 24b16fede9a67c9251d3e7c7161c83ac
文件:finecms/dayrui/controllers/Api.php
/**
* 自定义数据调用(新版本)
*/
publicfunctiondata2() {
$data=array();
// 安全码认证
$auth=$this->input->get('auth', true);
if($auth!= md5(SYS_KEY)) {
// 授权认证码不正确
$data=array('msg'=>'授权认证码不正确','code'=> 0);
}else{
// 解析数据
$cache='';
$param=$this->input->get('param');
if(isset($param['cache']) &&$param['cache']) {
$cache= md5(dr_array2string($param));
$data=$this->get_cache_data($cache);
}
if(!$data) {
if($param=='login') {
// 登录认证
$code=$this->member_model->login(
$this->input->get('username'),
$this->input->get('password'),
0, 1);
if(is_array($code)) {
$data=array(
'msg'=>'ok',
'code'=> 1,
'return'=>$this->member_model->get_member($code['uid'])
);
}elseif($code== -1) {
$data=array('msg'=> fc_lang('会员不存在'),'code'=> 0);
}elseif($code== -2) {
$data=array('msg'=> fc_lang('密码不正确'),'code'=> 0);
}elseif($code== -3) {
$data=array('msg'=> fc_lang('Ucenter注册失败'),'code'=> 0);
}elseif($code== -4) {
$data=array('msg'=> fc_lang('Ucenter:会员名称不合法'),'code'=> 0);
}
}elseif($param=='update_avatar') {
// 更新头像
$uid= (int)$_REQUEST['uid'];
$file=$_REQUEST['file'];
//
// 创建图片存储文件夹
$dir= SYS_UPLOAD_PATH.'/member/'.$uid.'/';
@dr_dir_delete($dir);
if(!is_dir($dir)) {
dr_mkdirs($dir);
}
$file=str_replace(' ','+',$file);
if(preg_match('/^(data:/s*image//(/w+);base64,)/',$file,$result)){
$new_file=$dir.'0x0.'.$result[2];
if(!@file_put_contents($new_file,base64_decode(str_replace($result[1],'',$file)))) {
$data=array(
'msg'=>'目录权限不足或磁盘已满',
'code'=> 0
);
}
|
和之前的一样.正则获取的地方有问题.image后面的值为任意值.导致悲剧的发生
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论