好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

shopex绕过补丁本地包含漏洞#4 - 网站安全 - 自学

360提交的 漏洞 ,官方修复不严谨

http://bbs.webscan.360.cn/forum.php?mod=viewthread&tid=8613&extra=page%3D1

 

修复前:

 

修复后(\core\api\shop_api.php):

 

 

if ( isset($_REQUEST['appname']) ) { $appName = preg_replace('/[^a-z0-1_~]/i', '', $_REQUEST['appname']); } elseif ( strpos($apiAct, ':') > 0 ) {// request plugin api list($appName, $apiAct) = explode(':', $apiAct); } elseif ( 0 === strpos($apiAct,'shopex_') ) { // 照顾"商品助理" $appName = 'goodsassistant'; } if ( $appName && file_exists(PLUGIN_DIR."/app/{$appName}/api/api_link.php") ) { $APIs = include PLUGIN_DIR."/app/{$appName}/api/api_link.php"; } else {// request traditional api $APIs = include CORE_DIR.'/api/include/api_link.php'; }

 

 

 

 

看起来$appName = preg_replace('/[^a-z0-1_~]/i', '', $_REQUEST['appname']);已经过滤掉了,但是再往下看:list($appName, $apiAct) = explode(':', $apiAct);

 

可以通过变量$apiAct去给$appName赋值 

die($appName);测试看

 

http://127.0.0.1/api.php?act=可控路径:cc

 

 

后面还有file_exists函数做检查,所以只对多域名的 虚拟机 危害较大   

修复方案: 过滤代码往下移几行 

 

查看更多关于shopex绕过补丁本地包含漏洞#4 - 网站安全 - 自学的详细内容...

  阅读:43次