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的获取可以看见没有经过任何过滤,我们输好参数后
不要管上面的url,上面的阿里url是请求后的跳转,实际是在请求的时候进入了数据库查询了,所以这里是一个盲注
我这里是拿了一个斜杠来测试可以进入数据库,只要绕过了360的安全防护此注可以完美的利用
o(︶︿︶)o 唉 没办法 我对于绕过WAF就没怎么看过!所以这里没办法给你完美的利用exp了。
尤其提示:这个cms有任意文件读取漏洞!!! |