查看: 11202|回复: 0

MACcms第三弹前台杀入

[复制链接]
  • TA的每日心情

    2024-11-13 20:06
  • 签到天数: 1628 天

    [LV.Master]伴坛终老

    发表于 2015-9-18 11:48:31 | 显示全部楼层 |阅读模式
    90sec@Joseph

    看到大家都说mac cms怎么怎么屌前台搞不进去,我就想说 怕什么?就要跟打安全狗一样搞的他没脾气
    漏洞文件:/inc/user/alipay/alipayapi.php
    [PHP] 纯文本查看 复制代码
    <?php
    include("../../../inc/conn.php");
    include(MAC_ROOT.'/inc/common/360_safe3.php');
    include(MAC_ROOT."/inc/user/alipay/alipay.config.php");
    include(MAC_ROOT."/inc/user/alipay/lib/alipay_submit.class.php");
     
    if($MAC['user']['status'] == 0){ showErr('System','会员系统关闭中'); }
    if(isN($_SESSION["userid"])) { showErr('System',"非法操作"); }
     
     
    /**************************请求参数**************************/
     
            //支付类型
            $payment_type = "1";
            //必填,不能修改
            //服务器异步通知页面路径
            $notify_url = $_POST['RetUrl'];
            //需http://格式的完整路径,不能加?id=123这类自定义参数
     
            //页面跳转同步通知页面路径
            $return_url = $_POST['BgRetUrl'];
            //需http://格式的完整路径,不能加?id=123这类自定义参数,不能写成http://localhost/
     
            //商户订单号
            $out_trade_no = $_POST['WIDout_trade_no'];
            //商户网站订单系统中唯一订单号,必填
     
            //订单名称
            $subject = $_POST['WIDsubject'];
            //必填
     
            //付款金额
            $price = $_POST['WIDprice'];
            //必填
     
            //商品数量
            $quantity = "1";
            //必填,建议默认为1,不改变值,把一次交易看成是一次下订单而非购买一件商品
            //物流费用
            $logistics_fee = "0.00";
            //必填,即运费
            //物流类型
            $logistics_type = "EXPRESS";
            //必填,三个值可选:EXPRESS(快递)、POST(平邮)、EMS(EMS)
            //物流支付方式
            $logistics_payment = "SELLER_PAY";
            //必填,两个值可选:SELLER_PAY(卖家承担运费)、BUYER_PAY(买家承担运费)
            //订单描述
     
            $body = $_POST['WIDbody'];
            //商品展示地址
            $show_url = $_POST['WIDshow_url'];
            //需以http://开头的完整路径,如:[url=http://www.xxx.com/myorder.html]http://www.xxx.com/myorder.html[/url]
     
            //收货人姓名
            $receive_name = $_POST['WIDreceive_name'];
            //如:张三
     
            //收货人地址
            $receive_address = $_POST['WIDreceive_address'];
            //如:XX省XXX市XXX区XXX路XXX小区XXX栋XXX单元XXX号
     
            //收货人邮编
            $receive_zip = $_POST['WIDreceive_zip'];
            //如:123456
     
            //收货人电话号码
            $receive_phone = $_POST['WIDreceive_phone'];
            //如:0571-88158090
     
            //收货人手机号码
            $receive_mobile = $_POST['WIDreceive_mobile'];
            //如:13312341234
     
     
    /************************************************************/
     
    //构造要请求的参数数组,无需改动
    $parameter = array(
                    "service" => "trade_create_by_buyer",
                    "partner" => trim($alipay_config['partner']),
                    "payment_type"        => $payment_type,
                    "notify_url"        => $notify_url,
                    "return_url"        => $return_url,
                    "seller_email"        => $alipay_config['no'],
                    "out_trade_no"        => $out_trade_no,
                    "subject"        => $subject,
                    "price"        => $price,
                    "quantity"        => $quantity,
                    "logistics_fee"        => $logistics_fee,
                    "logistics_type"        => $logistics_type,
                    "logistics_payment"        => $logistics_payment,
                    "body"        => $body,
                    "show_url"        => $show_url,
                    "receive_name"        => $receive_name,
                    "receive_address"        => $receive_address,
                    "receive_zip"        => $receive_zip,
                    "receive_phone"        => $receive_phone,
                    "receive_mobile"        => $receive_mobile,
                    "_input_charset"        => trim(strtolower($alipay_config['input_charset']))
    );
    $db = new AppDb($MAC['db']['server'],$MAC['db']['user'],$MAC['db']['pass'],$MAC['db']['name']);
     
    $sql = 'select count(*) from {pre}user_pay where p_order='.$out_trade_no;
    $num = $db->getOne($sql);


    先说下加载了360的waf安全防护脚本和一些配置文件跟还有一些的函数调用文件,但这些都没也有神马用。
    [PHP] 纯文本查看 复制代码
    if($MAC['user']['status'] == 0){ showErr('System','会员系统关闭中'); }
    if(isN($_SESSION["userid"])) { showErr('System',"非法操作"); }


    这里的if判断了当前是否登录了会员中心跟会员中心是否开启,如果开启了就进入内容操作
    [PHP] 纯文本查看 复制代码
    $payment_type = "1";
            //必填,不能修改
            //服务器异步通知页面路径
            $notify_url = $_POST['RetUrl'];
            //需http://格式的完整路径,不能加?id=123这类自定义参数
     
            //页面跳转同步通知页面路径
            $return_url = $_POST['BgRetUrl'];
            //需http://格式的完整路径,不能加?id=123这类自定义参数,不能写成http://localhost/
     
            //商户订单号
            $out_trade_no = $_POST['WIDout_trade_no'];
            //商户网站订单系统中唯一订单号,必填
     
            //订单名称
            $subject = $_POST['WIDsubject'];
            //必填
     
            //付款金额
            $price = $_POST['WIDprice'];
            //必填

    正常的post的获取可以看见没有经过任何过滤,我们输好参数后
    QQ截图20150918102356.png
    不要管上面的url,上面的阿里url是请求后的跳转,实际是在请求的时候进入了数据库查询了,所以这里是一个盲注
    QQ截图20150918102537.png

    我这里是拿了一个斜杠来测试可以进入数据库,只要绕过了360的安全防护此注可以完美的利用


    o(︶︿︶)o 唉  没办法 我对于绕过WAF就没怎么看过!所以这里没办法给你完美的利用exp了。
    尤其提示:这个cms有任意文件读取漏洞!!!

    评分

    参与人数 1i币 +5 收起 理由
    蓝颜 + 5 支持原创

    查看全部评分

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    指导单位

    江苏省公安厅

    江苏省通信管理局

    浙江省台州刑侦支队

    DEFCON GROUP 86025

    旗下站点

    邮箱系统

    应急响应中心

    红盟安全

    联系我们

    官方QQ群:112851260

    官方邮箱:security#ihonker.org(#改成@)

    官方核心成员

    Archiver|手机版|小黑屋| ( 苏ICP备2021031567号 )

    GMT+8, 2024-11-22 14:41 , Processed in 0.034739 second(s), 20 queries , Gzip On, MemCache On.

    Powered by ihonker.com

    Copyright © 2015-现在.

  • 返回顶部