ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 26.01.2008, 02:59
ShAnKaR
Пачка маргарина
Регистрация: 14.07.2005
Сообщений: 964
Провел на форуме:
4646474

Репутация: 1424


Отправить сообщение для ShAnKaR с помощью ICQ
По умолчанию

Цитата:
Сообщение от ZaCo  
статья стоящая, жаль что была проигнорирована большинством.

добавлю к сообщению Scipio - твой способ подходит исключительно для операции select, предлагаю вариант, который может использоваться в любых логических условиях и без использования подзапросов:

Код:
select username from users 
where "x" regexp concat("x{1,25", if(@@version<>5, "5}", "6}")) /*в случае else строка выражения выйдет за максимальный предел квантификатора*/
естественно методов "провокации" в регекспах довольно много, но достаточно только одного.
чето у меня не выдает ошибки ни как если вместо @@version использую колонку
типа:
Цитата:
SELECT * FROM `users` WHERE ID=1 and "x" regexp concat("x{1,25", if(ID=0, "5}", "6}"))
просто пустое значение возвращает (
что я делаю не так?
 
Ответить с цитированием

  #12  
Старый 28.01.2009, 16:35
oppa
Новичок
Регистрация: 22.01.2009
Сообщений: 7
Провел на форуме:
2376

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

если подставить выражение 1=1 ошибки не будет
пример
SELECT * FROM `table1` order by (select+if(substring(version(),1,1)=4,1,(select 1 union select id)))
если версия мускула 4, то сортировка пойдет по полю ид в обратном порядке, т.к. -id*1 (aka true) будет -id, а -id*0 (ака false) будет 0, ну и с бенчмарком тоже самое
из всех предложенных вариантов вариант с иф - бенчмарк самый универсальный, но самый долгий
 
Ответить с цитированием

  #13  
Старый 24.03.2009, 12:27
Corwin
Познающий
Регистрация: 01.08.2008
Сообщений: 42
Провел на форуме:
670601

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

некоторые альтернативные запросы вызывающие more1row показаны в докладе(слайд 25) http://www.slideshare.net/sumsid1234/owasp-au-rev4?type=powerpoint
 
Ответить с цитированием

  #14  
Старый 27.04.2009, 13:58
Qwazar
Leaders of Antichat - Level 4
Регистрация: 02.06.2005
Сообщений: 1,411
Провел на форуме:
10605912

Репутация: 4693


По умолчанию

Цитата:
Сообщение от Elekt  
пришло на мыло дополнение

Hi Elekt,
i write this e-mail because i found really very very good your
paper about benchmark alternative in exploiting blind sql injection.
I would contribute with your research with this simple trick.

If u type : ... AND (SELECT 1,2,3,4)=1
mysql returns "Operand should contain 4 column(s)". It can be used as
an alternative of your method !
see ya
Luca
Неработает это дополнение.
__________________
Я отдал бы немало за пару крыльев,
Я отдал бы немало за третий глаз
За руку на которой четырнадцать пальцев
Мне нужен для дыхания другой газ..

Мой блог:http://qwazar.ru/.
 
Ответить с цитированием

  #15  
Старый 27.04.2009, 15:07
geezer.code
Reservists Of Antichat - Level 6
Регистрация: 22.01.2007
Сообщений: 616
Провел на форуме:
7452489

Репутация: 1359


По умолчанию

ну как бы работает, или ты не об этом ?
Код:
mysql> select 1 from information_schema.tables where (select 1,2,3)=1;
ERROR 1241 (21000): Operand should contain 3 column(s)
 
Ответить с цитированием

  #16  
Старый 29.04.2009, 00:11
Qwazar
Leaders of Antichat - Level 4
Регистрация: 02.06.2005
Сообщений: 1,411
Провел на форуме:
10605912

Репутация: 4693


По умолчанию

Цитата:
Сообщение от geezer.code  
ну как бы работает, или ты не об этом ?
Код:
mysql> select 1 from information_schema.tables where (select 1,2,3)=1;
ERROR 1241 (21000): Operand should contain 3 column(s)
Дык суть то не в том, чтобы ошибка нарисовалась, а в том чтобы она в if'е сработала. А эта ошибка отображается всегда, и в случае true и в случае false.
__________________
Я отдал бы немало за пару крыльев,
Я отдал бы немало за третий глаз
За руку на которой четырнадцать пальцев
Мне нужен для дыхания другой газ..

Мой блог:http://qwazar.ru/.
 
Ответить с цитированием

  #17  
Старый 26.11.2009, 22:13
[Raz0r]
Members of Antichat - Level 5
Регистрация: 25.02.2007
Сообщений: 495
Провел на форуме:
3244717

Репутация: 1980
Отправить сообщение для [Raz0r] с помощью ICQ
По умолчанию

В продолжение темы насчет ошибки "Operand should contain n column(s)": http://websec.wordpress.com/2009/11/26/mysql-table-and-column-names-update-2/

В посте идет речь о новом способе получения имен колонок, если недоступна БД information_schema. Сначала необходимо определить количество колонок с помощью способа, который упоминался выше:
Код:
' AND (SELECT * FROM USER_TABLE) = (1)-- -
-> Operand should contain 7 column(s)
Теперь используя UNION и 1%0 можно извлечь имена колонок через ошибку:
Код:
' AND (1,2,3,4,5,6,7) = (SELECT * FROM USER_TABLE UNION SELECT 1%0,2,3,4,5,6,7 LIMIT 1)-- -
-> Column 'usr_u_id' cannot be null
Последовательно перебирая колонки, можно получить имя каждой, если она имеет параметр NOT NULL. Кроме того, как заметил автор, этот баг был исправлен в MySQL 5.1.
По запросу видно, что будет работать только с MySQL >= 4.1, хотя и это надо проверить.
 
Ответить с цитированием

  #18  
Старый 05.01.2010, 23:55
Root-access
Участник форума
Регистрация: 18.06.2008
Сообщений: 222
Провел на форуме:
2223440

Репутация: 648
Отправить сообщение для Root-access с помощью ICQ
По умолчанию

Кстати, если взглянуть на старый метод с benchmark'ом, я не очень понимаю, зачем надо было использовать именно его, ведь можно использовать конструкцию с функцией sleep().
Код:
IF(1=2, 1, SLEEP(1))
Так нагрузки не будет на сервер.
 
Ответить с цитированием

  #19  
Старый 06.01.2010, 00:37
[Raz0r]
Members of Antichat - Level 5
Регистрация: 25.02.2007
Сообщений: 495
Провел на форуме:
3244717

Репутация: 1980
Отправить сообщение для [Raz0r] с помощью ICQ
По умолчанию

SLEEP() появился в MySQL 5, поэтому его не всегда можно использовать
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL Injection в Oracle k00p3r Чужие Статьи 0 12.06.2005 12:41
SQL инъекция в сервере MySQL k00p3r Чужие Статьи 0 12.06.2005 12:41
Sql injection или где %) Чаты 9 30.05.2003 01:31
Новая статья по взлому sql Algol Чаты 2 17.01.2003 18:24



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


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




ANTICHAT.XYZ