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

VarTryer
  #1  
Старый 10.02.2009, 05:10
Аватар для AFoST
AFoST
Members of Antichat - Level 5
Регистрация: 28.05.2007
Сообщений: 729
Провел на форуме:
5571194

Репутация: 1934


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

VarTryer v. 1.0 [console]


Скрипт для быстрой проверки php-скриптов на баги [фаззер]

1. Принцип работы
Запускаем скрипт, по подсказкам вводим нужные данные. Запрашивается хост (например, localhost). Запрашивается путь к проверяемому файлу и сам файл (например, /files/doc/index.php) и запрашивается путь и файл, в котором хранятся переменные, которые будут участвовать в проверке($ перед переменной обязательно, например $variable).
Пример файла с переменными
Цитата:
$var1
$var2
$var3
После чего, подсчитывается количество переменных и соответственно делаются запросы(POST, GET, COOKIE) к скрипту с каждой переменной, например
Цитата:
GET http://localhost/index.php?tryvar=tryval
host: localhost
Connection: close


POST http://localhost/index.php
host: localhost
Connection: close
Content-type: application/x-www-form-urlencoded
Content-Length: 13

tryvar=tryval

GET http://localhost/index.php
Cookie: tryvar=tryval
host: localhost
Connection: close
Далее получается ответ от сервера (если в теле полученного документа есть слово error или warning, то тут же на экран выводится извещение и запрос при котором, была получена ошибка) подсчитывается размер ответа. Создается массив с размерами ответов сервера. Далее, высчитывается математическое ожидание размера ответа, дисперсия и среднеквадратическое отклонение. И идёт выборка "странных" значений размера ответа. Выводится схематический текстовый график вероятности выпадения размеров и справа список параметров. Ниже выводится список "странных" размеров с методом и переменной, при которой этот ответ был получен.


2. Требования
Код написан на php с ООП(собственно, учился ООП тут =)).
Требуется php5+ и включенные сокеты.

3. Назначение

1)Быстрый анализ локального php-скрипта на баги.
Ставим проверяемый скрипт на сервер. Вводим хост и путь к файлу. На запрос пути к файлу с переменными указываем тот же файл, что висит на сервере. Скрипт пропарсит проверяемый файл на переменные и далее пойдет проверка.

2)Удаленный анализ на php-баги.
Указываем удаленный хост и путь к сприпту. Указываем путь к файлу с набором переменных. Смысл в том, что если на проверяемом хосте включен register_globals = on и в скрипте есть ошибки, связанные с переменными, то скрипт их должен выявить.

3. Установка
Весь скрипт состоит из главного файла и нескольких подключаемых классов. Надо лишь разархивировать архив в одну папку.

(с) AFoST 10.02.2009 4:10
Вложения
Тип файла: rar VarTryer_v1.0.rar (5.7 Кб, 17 просмотров)
__________________
Появляюсь редко. Важные дела в реале.

Последний раз редактировалось AFoST; 16.02.2009 в 18:32..
 
Ответить с цитированием

  #2  
Старый 10.02.2009, 13:30
Аватар для SQLHACK
SQLHACK
Голос разума
Регистрация: 27.09.2006
Сообщений: 529
Провел на форуме:
1607210

Репутация: 1617


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

Цитата:
Сообщение от AFoST  
VarTryer v. 1.0 [console]
Вообщем то утопия, я такое патылся сделать , но в итоге понял чтоэто возможно сделать только разобрав php и прикрутить в каждую функцию некоторый код. То есть сделать что то типа дезендера , но с другим уклоном, попытки сделать это в других языках не имеет смысла. Так как надо не просто парсить скрипт и вызывать с разными параметрами, а трасировать его выполнение, чтобы видеть как меняются значения так сказать динамических переменных.
__________________
Бойтесь своих желаний. Они могут исполниться....

...О-о-о-о, ушами не услышать, глазами не понять!

Последний раз редактировалось SQLHACK; 10.02.2009 в 13:33..
 
Ответить с цитированием

  #3  
Старый 10.02.2009, 13:44
Аватар для Qwazar
Qwazar
Leaders of Antichat - Level 4
Регистрация: 02.06.2005
Сообщений: 1,411
Провел на форуме:
10605912

Репутация: 4693


По умолчанию

Цитата:
Сообщение от SQLHACK  
Так как надо не просто парсить скрипт и вызывать с разными параметрами, а трасировать его выполнение, чтобы видеть как меняются значения так сказать динамических переменных.
Ты имеешь в виду динамический анализатор, это не то, что выложил ТС. (Кстати динамический анализатор вполне реально и интересно было бы разрботать)

А по поводу этого конкретного скрипта, можно делать как всякие ХСпайдеры, и прочие SSS: Т.е. собирать на страницах все линки, все формы и просто экспериментировать с установкой из значений (просто обычный фаззинг).

P.S.
То что сделал ТС смахивает на мой статический анализатор, и по сути делает тоже самое. Но всё равно в итоге автору придётся сделать тоже, что и было сделано у меня - разбирать синтаксическое дерево, многие конструкции регекспом не разберёшь (ну т.е. разберёшь конечно, но трудоёмкость неоправданная).

P.S.S.
Так же без AST нельзя выявить зависимости переменных друг от друга, и поиск будет слепым. Пример:
if($_GET[a]==1)
eval($_GET[b]);
__________________
Я отдал бы немало за пару крыльев,
Я отдал бы немало за третий глаз
За руку на которой четырнадцать пальцев
Мне нужен для дыхания другой газ..

Мой блог:http://qwazar.ru/.

Последний раз редактировалось Qwazar; 10.02.2009 в 13:55..
 
Ответить с цитированием

  #4  
Старый 10.02.2009, 13:58
Аватар для Qwazar
Qwazar
Leaders of Antichat - Level 4
Регистрация: 02.06.2005
Сообщений: 1,411
Провел на форуме:
10605912

Репутация: 4693


По умолчанию

Цитата:
Далее, высчитывается математическое ожидание размера ответа, дисперсия и среднеквадратическое отклонение. И идёт выборка "странных" значений размера ответа. Выводится схематический текстовый график вероятности выпадения размеров и справа список параметров. Ниже выводится список "странных" размеров с методом и переменной, при которой этот ответ был получен.
Распиши плз подробнее, вот эту часть. Что это и зачем?
__________________
Я отдал бы немало за пару крыльев,
Я отдал бы немало за третий глаз
За руку на которой четырнадцать пальцев
Мне нужен для дыхания другой газ..

Мой блог:http://qwazar.ru/.
 
Ответить с цитированием

  #5  
Старый 10.02.2009, 14:28
Аватар для Twoster
Twoster
Reservists Of Antichat - Level 6
Регистрация: 20.08.2008
Сообщений: 328
Провел на форуме:
7144817

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

Qwazar, а идею по хспайдеру на пхп которую ты подал, я уже подхватил, на следующей неделе наверное выложу!
__________________

You may say I'm a dreamer
But I'm not the only one
 
Ответить с цитированием

  #6  
Старый 10.02.2009, 14:35
Аватар для Qwazar
Qwazar
Leaders of Antichat - Level 4
Регистрация: 02.06.2005
Сообщений: 1,411
Провел на форуме:
10605912

Репутация: 4693


По умолчанию

Цитата:
Сообщение от SQLHACK  
То есть сделать что то типа дезендера , но с другим уклоном, попытки сделать это в других языках не имеет смысла.
Кстати для С++ есть динамические анализаторы (и библиотеки для удобной разработки динамических анализаторов).
__________________
Я отдал бы немало за пару крыльев,
Я отдал бы немало за третий глаз
За руку на которой четырнадцать пальцев
Мне нужен для дыхания другой газ..

Мой блог:http://qwazar.ru/.
 
Ответить с цитированием

  #7  
Старый 10.02.2009, 15:21
Аватар для ProTeuS
ProTeuS
HARDstasy
Регистрация: 26.11.2004
Сообщений: 1,367
Провел на форуме:
4226592

Репутация: 2175


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

>>Скрипт для быстрой проверки php-скриптов на баги.
это фаззером ховется...
 
Ответить с цитированием

  #8  
Старый 10.02.2009, 18:55
Аватар для Kaimi
Kaimi
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме:
18127311

Репутация: 1676


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

Цитата:
Цитата:
Далее, высчитывается математическое ожидание размера ответа, дисперсия и среднеквадратическое отклонение. И идёт выборка "странных" значений размера ответа. Выводится схематический текстовый график вероятности выпадения размеров и справа список параметров. Ниже выводится список "странных" размеров с методом и переменной, при которой этот ответ был получен.
Распиши плз подробнее, вот эту часть. Что это и зачем?
Делается несколько запросов, вычисляется средний показатель интересующих параметров, вычисляется допустимый разброс.
А далее скрипт тебя информирует если получает результаты выбивающиеся из полученного распределения.
Вроде так.
 
Ответить с цитированием

  #9  
Старый 10.02.2009, 19:07
Аватар для Qwazar
Qwazar
Leaders of Antichat - Level 4
Регистрация: 02.06.2005
Сообщений: 1,411
Провел на форуме:
10605912

Репутация: 4693


По умолчанию

Цитата:
Сообщение от Kaimi  
А далее скрипт тебя информирует если получает результаты выбивающиеся из полученного распределения.
Вроде так.
Для чего?

Код:
if($a==1) echo "вы ввели лажу";
if($a==2) echo "вы ввели лажу";
...
if($a==N) echo "вы ввели лажу";
if($a==N+1) echo "а вот теперь всё клёво + очень много текста"
Как я понимаю, подозрительным будет последний вариант? В чём практический смысл такого подхода?

З.Ы.
Я не критикую, просто пытаюсь понять.
__________________
Я отдал бы немало за пару крыльев,
Я отдал бы немало за третий глаз
За руку на которой четырнадцать пальцев
Мне нужен для дыхания другой газ..

Мой блог:http://qwazar.ru/.

Последний раз редактировалось Qwazar; 10.02.2009 в 19:31..
 
Ответить с цитированием

  #10  
Старый 10.02.2009, 19:53
Аватар для Kaimi
Kaimi
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме:
18127311

Репутация: 1676


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

Цитата:
Как я понимаю, подозрительным будет последний вариант? В чём практический смысл такого подхода?
Наверное для случаев когда сервер не выдает ошибку. Или скажем для подобного кода
$query = "....";
$result = mysql_query($query) or exit($query);
 
Ответить с цитированием
Ответ





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


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




ANTICHAT.XYZ