1. 程式人生 > >【程式碼審計】XIAOCMS_後臺database.php頁面存在SQL注入漏洞

【程式碼審計】XIAOCMS_後臺database.php頁面存在SQL注入漏洞

 

0x00 環境準備

XIAOCMS官網: http://www.xiaocms.com/

網站原始碼版本:XiaoCms (釋出時間:2014-12-29)

程式原始碼下載:http://www.xiaocms.com/download/XiaoCms_20141229.zip

測試網站首頁:

 

0x01 程式碼分析

1、漏洞檔案位置:/admin/controller/database.php  第81-103行:

  1. public function repairAction() {  
  2. $name = $this
    ->get('name');  
  3. $this->db->execute("repair table $name");  
  4. $this->show_message('修復成功',1, url('database/index'));  
  5.   }  
  6.   
  7. *  
  8. * 優化表  
  9. */  
  10. 10.   public
     function optimizeAction() {  

11. $name = $this->get('name');  

12. $this->db->execute("optimize table $name");  

13. $this->show_message('優化成功',1, url('database/index'));  

  1. 14.   }  
  2. 15.   

16. *  

17. * 資料表結構  

18. */  

  1. 19.   public function tableAction() {  

20. $name = $this->get('name');  

21. $data = $this->db->query("SHOW CREATE TABLE $name")->fetchAll();  

22. echo '<div class="subnav"><pre style="padding: 20px;color:#666;font: 18px/2 tahoma, arial" >' . $data[0]['Create Table'] . '</pre></div>';  

  1. 23.   }         

在這三個函式中,將獲取到的name引數拼接到SQL語句,然後帶入資料庫執行,導致程式在實現上存在SQL注入漏洞,攻擊者可利用該漏洞獲取資料庫敏感資訊。

0x02 漏洞利用

1、登入後臺,構造URL獲取mysql.user的資料庫結構,可遍歷猜解所有資料庫的表結構。

Payload:http://127.0.0.1/admin/index.php?c=database&a=table&name=mysql.user

 

0x03 修復建議

1、使用引數化查詢避免SQL注入

最後

歡迎關注個人微信公眾號:Bypass--,每週原創一篇技術乾貨。