PG Dating pro [ALL VER.] - LFI

Discussion in 'Веб-уязвимости' started by Pirotexnik, 26 Jul 2012.

  1. Pirotexnik

    Pirotexnik Member

    Joined:
    13 Oct 2010
    Messages:
    376
    Likes Received:
    73
    Reputations:
    38
    [Intro]​
    Расковырял двиг, нашел лфи.
    Все версии уязвимы, включая демо на офф cайте.
    Стоимость движка 340$

    [PoC]​
    [Vuln. Code]​
    Code:
    function PayFromPaysystem(){
    	global $lang, $config, $smarty, $dbconn, $user;
    
    	$form['file_name'] = "ecards.php";
    	$id_order = (isset($_REQUEST["id_order"]) && intval($_REQUEST["id_order"]) > 0) ? intval($_REQUEST["id_order"]) : null;
    	if ($id_order == null) {
    		header("Location: ".$config['server'].$config['site_root']."/".$form['file_name']);
    	} else {
    		$settings = GetSiteSettings(array('site_unit_costunit'));
    
    		[COLOR=Yellow]$paysys = $_REQUEST["paysys"]; //получаем переменную[/COLOR]
    
    		$card = GetCardOrderData($id_order);
    		$amount = $card["price"];
    		if ($amount == '0.00') {
    			header("Location: ".$config['server'].$config['site_root']."/".$form['file_name']);
    		}
    		$product_name = $amount." ".$settings["site_unit_costunit"]." ".$lang["cards"]["payment_product"];
    		$dbconn->Execute("INSERT INTO ".BILLING_REQUESTS_TABLE."
    		(id_user, id_product, count_curr, currency, date_send, status, paysystem, id_group) VALUES
    		('".$user[0]."', '-2', '".$amount."', '".$settings["abbr"]."','".date("Y-m-d H:i:s")."','send','".$paysys."','".$card['id_order']."')");
    		$id_trunzaction =  $dbconn->Insert_ID();
    		[COLOR=Red]include_once "./include/systems/functions/".$paysys.".php";//инклуд без фильтраций[/COLOR]
    		MakePayment($paysys, $amount, $settings["site_unit_costunit"], $id_trunzaction, $product_name, array("force_disable_recurring"=>1));
    		header("Location: ".$config['server'].$config['site_root']."/".$form['file_name']."?sel=my_orders");
    	}
    }
    [Require]​
    1) нужно быть залогиненым
    2) должна передаватся переменная id_order

    ©Pirotexnik

    ___
    Дабы не создавать новых тем вопрос к форумчанам по поводу нормализации пути - на демо не могу обрезать .php, пробовал: %00 , /[4096]/, /.[4096]/., ./[4096]./. Стоит там Apache httpd 2.2.16 ((Debian)), версия php не известна. В чем соль?
    ___
    UPD: соль была в MQ=on :D
     
    #1 Pirotexnik, 26 Jul 2012
    Last edited: 24 Oct 2012
    2 people like this.
  2. Hapk

    Hapk Banned

    Joined:
    3 Jun 2011
    Messages:
    290
    Likes Received:
    42
    Reputations:
    -5
    А кто может подсказать как залить шелл? просто есть доступ в админку