Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Уязвимость в *nix  (Прочитано 8174 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн chrome_cat

  • Активист
  • *
  • Сообщений: 923
    • Просмотр профиля
Re: Уязвимость в *nix
« Ответ #15 : 26 Сентября 2014, 08:33:14 »
(Нажмите, чтобы показать/скрыть)
(Нажмите, чтобы показать/скрыть)
Апдейты последние. Ubuntu 14.10.

Оффлайн Pilot6

  • Старожил
  • *
  • Сообщений: 14037
  • Xubuntu 18.04
    • Просмотр профиля
Re: Уязвимость в *nix
« Ответ #16 : 26 Сентября 2014, 16:05:49 »
chrome_cat,
Надо так

env -i  X='() { (a)=>\' bash -c 'echo date'; cat echo

У меня срабатывает.

pilot6@Pilot6:~$ env -i  X='() { (a)=>\' bash -c 'echo date'; cat echo
bash: X: line 1: syntax error near unexpected token `='
bash: X: line 1: `'
bash: error importing function definition for `X'
Fri Sep 26 16:08:37 MSK 2014
« Последнее редактирование: 26 Сентября 2014, 16:08:56 от Pilot6 »
Я в личке не консультирую. Вопросы задавайте на форуме.

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12139
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: Уязвимость в *nix
« Ответ #17 : 26 Сентября 2014, 16:16:16 »
Pilot6, а в чем заключается срабатывание  :idiot2: ...а разобрался...

14.04 - env -i  X='() { (a)=>\' .... - срабатывает, вчерашний вариант - нет.


Мне только странно почему сегодняшний эксплоит так криво оформлен - вот получше вариант:
env -i X='() { (a)=>\' echo vunerable; echo done
печатает
vunerable
done
если дыра есть, и
doneесли дыры нет.
« Последнее редактирование: 26 Сентября 2014, 17:36:02 от Sly_tom_cat »
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн RUstorm

  • Активист
  • *
  • Сообщений: 701
    • Просмотр профиля
Re: Уязвимость в *nix
« Ответ #18 : 26 Сентября 2014, 17:15:31 »
)))
Сейчас обратно проверил
env -i X='() { (a)=>\' echo vunerable; echo doneУ меня опять
Цитировать
vunerable
done
но установлена самая последния версия bash 4.2-2ubuntu2.3

Оффлайн peregrine

  • FSM
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 7212
  • Gentoo x64 Ubuntu 16.04.1 x64
    • Просмотр профиля
Re: Уязвимость в *nix
« Ответ #19 : 26 Сентября 2014, 17:16:07 »
RUstorm, эту уязвимость пока не исправили.

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Уязвимость в *nix
« Ответ #20 : 26 Сентября 2014, 21:16:01 »
Всё пофикшено:
$ env x='() { :;}; echo vulnerable'  bash -c "echo this is a test"
this is a test
$ env X='() { (a)=>\' sh -c "echo date"; cat echo
date
cat: echo: Нет такого файла или каталога
$ rpm -q bash
bash-4.2.48-2.fc20.x86_64

***
Sly_tom_cat, вы укоротили слишком сильно, поэтому оно показывает ложное срабатывание.

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12139
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: Уязвимость в *nix
« Ответ #21 : 26 Сентября 2014, 21:47:42 »
ArcFi, какое ложное?
Срабатывает код после ошибочного определения функции (как и в первом експлоите).
Там без разницы - обернуть в bash -c (sh -c) или непосредственно echo вызвать: оно в любом виде срабатывать не должно, т.к. находится в определении функции (в которой уже есть ошибка).

Собственно и у вас сработало echo date - откуда и появилась строчка date в выводе, которая и сигнализирует об уязвимости (непофикшеной).
« Последнее редактирование: 26 Сентября 2014, 22:09:32 от Sly_tom_cat »
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн Tear

  • Старожил
  • *
  • Сообщений: 1445
  • Ubuntu 16.04 LTS
    • Просмотр профиля
Re: Уязвимость в *nix
« Ответ #22 : 26 Сентября 2014, 22:00:22 »
Всё пофикшено:
После фикса уязвимость осталась.

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Уязвимость в *nix
« Ответ #23 : 26 Сентября 2014, 22:09:22 »
Sly_tom_cat, для наличия уязвимости должен срабатывать код внутри переменной.
Возможность выполнения команды после переменной — штатная фишка bash.

Tear, без указания версии и дистрибутива ваш вброс тянет на троллинг.

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12139
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: Уязвимость в *nix
« Ответ #24 : 26 Сентября 2014, 22:19:03 »
Sly_tom_cat, для наличия уязвимости должен срабатывать код внутри переменной.
Возможность выполнения команды после переменной — штатная фишка bash.

 :o Ась ? какая это фишка???? там что есть разделитель после определения переменной????  :idiot2: :o ГДЕ? А без разделителя - все что за знаком "=" относится (должно относится) к определению переменной.

Собсвенно в коде
env X='() { (a)=>\' sh -c "echo date"; cat echoТочно также написан код sh c- "echo date" за закрывающей кавычкой определения.
И чем sh c- "echo date" принципиально отличается от echo vunerable или от ls -la ?

Нет, я безусловно не супер пофессионал в баш-скриптах - но как я понял эта "штатная фишка" и есть та дыра которую мы тут обсуждаем...
« Последнее редактирование: 26 Сентября 2014, 22:20:35 от Sly_tom_cat »
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн RUstorm

  • Активист
  • *
  • Сообщений: 701
    • Просмотр профиля
Re: Уязвимость в *nix
« Ответ #25 : 26 Сентября 2014, 22:21:53 »
ubuntu 12.04 (32бит), bash последний  4.2-2ubuntu2.3
env X='() { (a)=>\' sh -c "echo date"; cat echo
Цитировать
date

Пользователь решил продолжить мысль [time]26 Сентябрь 2014, 22:26:33[/time]:
как я понимаю команда date должна сработать, тут она не сработала, значит пофиксили.
« Последнее редактирование: 26 Сентября 2014, 22:27:11 от RUstorm »

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12139
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: Уязвимость в *nix
« Ответ #26 : 26 Сентября 2014, 22:32:56 »
$ echo date
date
echo date просто печатает date

Я и говорю - что непонятно почему так криво оформлен эксплоит :idiot2: :-\
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Уязвимость в *nix
« Ответ #27 : 26 Сентября 2014, 22:41:37 »
там что есть разделитель после определения переменной?
Да, есть.
man envРазделитель — это пробел.

env X='() { (a)=>\' sh -c "echo date"; cat echoВ уязвимой версии эта команда создаёт файл echo с результатом выполнения команды date.
В пофикшеной версии просто выполняет "echo date".

Теперь понятно?

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12139
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: Уязвимость в *nix
« Ответ #28 : 26 Сентября 2014, 22:46:08 »
env X='() { (a)=>\' sh -c "echo date"; cat echoВ уязвимой версии эта команда создаёт файл echo с результатом выполнения команды date.
В пофикшеной версии просто выполняет "echo date".
А разве в 
env X='() { (a)=>\' sh -c "echo date"; cat echoза =>\' тоже есть пробел... :idiot2:
И я не понял - как там создается файл :idiot2: Просто совсем не понимаю, если не трудно, поясните как эта ерунда этот код работает.
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12139
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: Уязвимость в *nix
« Ответ #29 : 26 Сентября 2014, 22:50:13 »
Кстати

env -i X='() { (a)=>\' bash -c "echo date"; cat echo
срабатывает (выводит дату из файла echo).

а

env -i X='() { (a)=>\' sh -c "echo date"; cat echo
не срабатывает.
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

 

Страница сгенерирована за 0.021 секунд. Запросов: 21.