![]() |
Алгоритм поиска sql-inj в исходниках php сценариев
Вот собираюсь делать так, прошу попровлять и дополнять:
1. сбор всех имен переменных передоваемых GET/POST со всех php сценаривем 1.1 создание хеша имя_переменной/файл 2. сбор всех ф-ций которые фильтруют переменный используя addslashes magic_quotes_gpc str_replace 2.1 создание хеша имя_ф-ции/файл 3. сбор всех строк вида mysql_query($perm), где потом содержание $perm интерпалируем в значение хеша, а ключ хеша будет имя этой переменной. Далее сравниваем, если строка запроса (п.3) к БД содержит переменную (п.1) , делаем проверку на наличия имени ф-ции (п.2), если она не обнаружена - значит код потанцеально уязвим. На сколька этот алгоритм эффективен - я хз. помогайте господа. |
Нужно собирать переменные, значения которых используются в запросах к БД, хотя п1 почти этому удовлетворяет.
Вот насчет п2 -- ты на чем пишешь? Т.е magic_quotes_gpc - это директива, а не ф-я, значение(on\off) можно получить посредством get_magic_quotes_gpc() но это опять же в php. |
А почему бы не собирать запросы к БД содержащие строки $_get[], $_post[], $_cookie[] ? Это будет означать, что скрипт наверняка уязвим
|
Цитата:
И еще: не надо забывать про cookies.. |
r0cha! я делаю проверку по регеспу на ф-цию такога рода.
Но смори не все же переменные которые есть в теле запроса доступны через GET/POST, поетому я проверяю сWEBдоступные переменные на наличая в БДзапросе. PHP код:
С кукисами чуть поже, хотяб это автоматизировать. ps: что еще господа? ps2: пишу на PERL, http://forum.antichat.ru/thread26051-nJin4.html |
Цитата:
|
EXSlim гуд, уже включил., а регистр соблюдается? в $_get[], $_post[], $_cookie[] ???
Все согласны с этим алгоритмом? |
Цитата:
Цитата:
|
когда руками баги ищу то просто...
есть запрос к бд... select Name,pass from users where '.$id.' Вот те и иньекция... тоесть есть в строке есть нефильтруймый передаваемый параметр то это бага... как это реализовать в сканере я хз... еще добавь include() |
include() ета отдельная песьгя - все всем спасибо.
|
| Время: 11:20 |