当前位置:首页 > 电脑常识 > 正文

FineCMS v2.1.5前台一处XSS+CSRF可getshell 8090安适门户

11-20 电脑常识

FineCMS一个XSS缝隙分析

FineCMS是一套用CodeIgniter开发的中小型内容打点系统,目前有三个分支:1.x,2.x,5.x,此次分析的是2.x的最新版2.1.5。

一、用户输入

既然是XSS,那么就必然有用户的输入以及输出。

// controllers\member\InfoController.php

public function avatarAction() {

if (empty($this->memberconfig['avatar']) && $this->isPostForm()) {

$data = $this->input->post('data', TRUE);

$this->member->update(array('avatar'=> $data['avatar']), 'id=' . $this->memberinfo['id']);

$this->memberMsg(lang('success'), url('member/info/avatar'), 1);

}

$this->view->assign(array(

'avatar_ext_path' => EXT_PATH . 'avatar/',

'avatar_return' => (url('member/info/uploadavatar')),

'meta_title' => lang('m-inf-1') . '-' . lang('member') . '-' . $this->site['SITE_NAME'],

));

$this->view->display('member/avatar');

}

$data = $this->input->post('data', TRUE);中第二个参数为TRUE暗示数据会颠末xss_clean()函数进行过滤,然后就进行过滤。xss_clean()其实是很难绕过的,如果输出点在属性值中,孕育产生XSS的可能性就很大。

二、输出点①

前台触发

1

2

3

4

5

6

7

8

9

10

11

 

// controllers\member\SpaceController.php 第35行-44行

$this->view->assign($data);

$this->view->assign(array(

'meta_title' => lang('m-spa-2', array('1'=>$data['nickname'])) . '-' . $this->site['SITE_NAME'],

'userid' => (int)$data['id'],

'tablename' => $model['tablename'],

'modelname' => $model['modelname'],

'groupname' => $this->membergroup[$data['groupid']]['name'],

'page' => $this->get('page') ? $this->get('page') : 1,

));

温馨提示: 本文由杰米博客推荐,转载请保留链接: https://www.jmwww.net/file/pc/12475.html

博客主人杰米WWW
杰米博客,为大家提供seo以及it方面技巧喜欢的朋友收藏哦!
  • 11365文章总数
  • 1378073访问次数
  • 建站天数
  •