渗透测试 | 黑白盒某学习刷课漏洞挖掘经验分享

2024-07-26 165 0

前言

在日常的任务环境中,漏洞的存在对任何系统而言都是巨大的风险隐患。特别是一些比较古老的系统或者存在已知漏洞框架、组件这方面的系统渗透测试,在日常挖掘中,未授权文件下载和越权文件上传,我们应该不在陌生,此类漏洞可定级一中、一高风险。在本次测试中,通过对多个功能模块的代码审计,发现了一些严重的安全问题。

  • 未授权文件下载

未授权文件下载是一个常见的安全漏洞,通常由于文件路径和文件名生成不安全,且缺乏适当的权限验证。在代码审计过程中,我们发现多个功能模块(如试题下载、代金券导出和成绩导出)存在文件生成路径和名称直接暴露在Web目录下,且文件下载链接可以通过简单的URL猜测或爆破方式获取。这使得攻击者可以轻松地下载敏感数据文件,从而导致数据泄露。

  • 越权文件上传

越权文件上传漏洞同样是一个严重的安全问题,特别是在没有进行严格的文件类型和权限校验的情况下。代码审计显示,文件上传功能中缺乏对文件类型的严格验证和用户权限的检查,攻击者可以利用该漏洞上传恶意文件,甚至可能获得服务器的控制权。这种漏洞的存在不仅会导致数据泄露,还可能导致系统被攻击者利用,从而威胁到整个系统的安全。

文件未授权下载

一、试题下载

>app\exam\controller\basic.master.php

}

      $questions = $this->exam->getQuestionListByArgs($args);

      $fname = 'data/score/'.$this->ev->get('subjectid').'-'.$this->ev->get('sectionid').'-'.$this->ev->get('knowsid').'-questions.csv';

      $r = array();

      foreach($questions as $p)

      {

          $r[] = array('questiontype' => $p['questiontype'],'question' => iconv("UTF-8","GBK",html_entity_decode($p['question'])),'questionselect' => iconv("UTF-8","GBK",html_entity_decode($p['questionselect'])),'questionselectnumber' => iconv("UTF-8","GBK",$p['questionselectnumber']),'questionanswer' => iconv("UTF-8","GBK",html_entity_decode($p['questionanswer'])),'questiondescribe' => iconv("UTF-8","GBK",html_entity_decode($p['questiondescribe'])),'knowsid' => $p['qkknowsid'],'questionlevel' => $p['questionlevel']);

      }

      if($this->files->outCsv($fname,$r))

      $message = array(

          'statusCode' => 200,

          "message" => "试题导出成功,转入下载页面,如果浏览器没有相应,请<a href=\"{$fname}\">点此下载</a>",

          "callbackType" => 'forward',

          "forwardUrl" => "{$fname}"

      );

      else

      $message = array(

          'statusCode' => 300,

          "message" => "试题导出失败"

      );

      $this->G->R($message);

  }

这个洞是随便点的功能,没记住是哪个功能点了,直接在代码上整吧!先看上面代码块是一个生成文件路径和文件名称的代码,这里通过$this->ev->get()方法从外部输入获取subjectidsectionidknowsid,并用这些参数构建了文件路径和名称。

$fname = 'data/score/'.$this->ev->get('subjectid').'-'.$this->ev->get('sectionid').'-'.$this->ev->get('knowsid').'-questions.csv';

data/score/ 为生成的Web目录路径为用户提供下载,这个是将全部的考试试题,进行导出的动作,并不是部分。

渗透测试 | 黑白盒某学习刷课漏洞挖掘经验分享插图

然后就是文件生成,使用$this->files->outCsv方法将题目列表数据写入到$fname指定的CSV文件中。

if($this->files->outCsv($fname,$r))

文件下载链接在文件生成成功后,系统返回一个包含文件下载链接的消息。这里的$fname变量直接插入到了链接中。

$message = array(
    'statusCode' => 200,
    "message" => "试题导出成功,转入下载页面,如果浏览器没有相应,请<a href=\"{$fname}\">点此下载</a>",
    "callbackType" => 'forward',
    "forwardUrl" => "{$fname}"
);

POC地址是这样的,直接在/data/score上挂载生成的文件内容,之后就是通过文件名下载。

http://XXX.XXX.XX.XX/dat

4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

HTB-Infiltrator:一文带你走进域渗透
JAVA安全 | Classloader:理解与利用一篇就够了
多角度揭秘威胁行为组织CryptoCore复杂的加密货币欺诈活动
网络空间的“边水往事”?针对华语黑产及用户进行攻击的 APT-K-UN3 活动分析
伪装“黑神话悟空修改器”传播木马的活动分析
靶场战神为何会陨落?

发布评论