PDA

Просмотр полной версии : Читалка файлой при обходе фильтрации


jangle
29.11.2014, 22:44
Доброго времени суток, уважаемые!

Есть код в скрипте


$_a=$_GET['patch'];

if(preg_match("/\.\w+$/",$_a) && !preg_match("/\.(php|php5|php4|xml|xsl|cgi|pl)$/",$_a) && !preg_match("/^\/web\//",$_a) &&file_exists($_SERVER['DOCUMENT_ROOT'].$_a) ){скачиваем файл}

При удовлетворении данной фильтрации, можем скачать файл. Как видно .php файлы скачать не удается. Это можно обойти?

Всем благодарности.

Unknown
30.11.2014, 00:05
jangle, а как достал этот фильтр?

jangle
30.11.2014, 04:37
скачал двиг и посмотрел исходник

Unknown
30.11.2014, 12:25
скачать php файлы не получится

XAMEHA
30.11.2014, 18:49
jangle, Ваш код может быть эквивалентен следующему:


$a=$_GET['patch'];

if (file_exists($_SERVER['DOCUMENT_ROOT'].$_a)

readfile("/web/$a.php");// Подставить нужную функци ю



Соответственно вы можете попробовать применить все способы, что используются для вашей версии при LFI (в данном случае читалке).

Ну и конечно нет проверки регистра, в Windows можно будет читать все файлы. Для полноценного исследования кода не хватает части чтения.

jangle
30.11.2014, 20:14
to XAMEHA

Нет, не эквивалентен. Скачать файл можно только при выполнении всех 4х условий.

KIR@PRO
04.12.2014, 23:33
2jangle


script.php?patch=/path/to/your/index.PHP


Регулярки регистрозависимые стоят.

И да мля тока на Win робит... как уже XAMEHA подметил...

p.s. но там стоят по любому никсы....

Код открытия файла скинь.