CVE-2018-1133 Moodle 3.4.1 – 远程执行注入漏洞

  • 2019 年 10 月 7 日
  • 笔记

exploit-db网站在3.15日挂出了一个Moodle<3.5版本的一个远程代码执行漏洞,如下所示:

必须为攻击者分配教师角色。通过使用由moodle评估的精心设计的数学公式,攻击者绕过了一个内部安全机制,该机制阻止恶意命令的执行。

漏洞出现在question/type/calculated/questiontype.php文件中:

Moodle允许教师设置一个包含许多类型问题的测验。其中一个是计算问题,它允许教师输入一个数学公式,该公式将由moodle对随机输入变量进行动态评估。这可以防止学生作弊,并简单地分享他们的结果。例如,教师可以键入“Y”中添加了什么?答案公式为x+y。然后Moodle将生成两个随机数,并将它们插入问答文本中的占位符x和y(比如3.9+2.1)。最后,它将通过对公式输入调用安全敏感的php函数eval()来评估答案6.0,因为它允许执行任意的php代码。

为了强制只使用无害的PHP代码,Moodle的开发人员引入了一个验证器函数qtype_calculated_find_formula_errors(),它在危险的eval()调用之前调用,目的是检测教师提供的公式中的非法和恶意代码。

Moodle环境对PHP和MySQL环境有要求,请参考官方步骤进行

参考信息:

https://www.exploit-db.com/exploits/46551

https://github.com/moodle/moodle

https://docs.moodle.org/36/en/Installation_quick_guide

https://blog.ripstech.com/2018/moodle-remote-code-execution/

https://github.com/moodle/moodle/archive/v3.4.1.zip