The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Уязвимость BatBadBut, затрагивающая стандартные библиотеки различных языков программирования"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Уязвимость BatBadBut, затрагивающая стандартные библиотеки различных языков программирования"  +/
Сообщение от opennews (ok), 10-Апр-24, 11:05 
Приложения, запускающие сценарии в формате bat и cmd на платформе Windows при помощи штатных функций запуска процессов, подвержены уязвимости, позволяющей добиться выполнения своего кода в случае передачи при запуске аргументов без отдельного экранирования спецсимволов. Уязвимость получила кодовое имя BatBadBut и проявляется в приложениях, использующих стандартные библиотеки таких языков, как Rust, PHP, Node.js, Python, Ruby, Go, Erlang и Haskell...

Подробнее: https://www.opennet.me/opennews/art.shtml?num=60964

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +17 +/
Сообщение от Шарп (ok), 10-Апр-24, 11:05 
А ещё остались люди, кто серваки на винде держит?
Ответить | Правка | Наверх | Cообщить модератору

2. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +4 +/
Сообщение от Аноним (2), 10-Апр-24, 11:12 
Это будет использоваться не на серваках, совсем не на серваках.
Вернее, подозреваю, давно используется не на серваках.
Ответить | Правка | Наверх | Cообщить модератору

3. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  –3 +/
Сообщение от Анон666 (?), 10-Апр-24, 11:12 
В mission critical сегменте куча винды.
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

6. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +/
Сообщение от Аноним (6), 10-Апр-24, 11:24 
Прям настолько жёстком?

Ответить | Правка | Наверх | Cообщить модератору

65. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +4 +/
Сообщение от Минона (ok), 10-Апр-24, 22:59 
Не, жесткое это mission impossible.
Ответить | Правка | Наверх | Cообщить модератору

66. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +3 +/
Сообщение от Аноним (-), 10-Апр-24, 23:34 
> В mission critical сегменте куча винды.

Вот только на винде бы mission critical и делать, да...

Ответить | Правка | К родителю #3 | Наверх | Cообщить модератору

67. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +/
Сообщение от Аноним (-), 10-Апр-24, 23:42 
> В mission critical сегменте куча винды.

Пример Йорктауна так никого ничему и не научил...

Ответить | Правка | К родителю #3 | Наверх | Cообщить модератору

84. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +/
Сообщение от Аноним (84), 18-Апр-24, 07:11 
О чём речь?
Ответить | Правка | Наверх | Cообщить модератору

85. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +/
Сообщение от randomize (?), 07-Июн-24, 21:01 
https://www.wired.com/1998/07/sunk-by-windows-nt/
> The source of the problem on the Yorktown was that bad data was fed into an application running on one of the 16 computers on the LAN. The data contained a zero where it shouldn't have, and when the software attempted to divide by zero, a buffer overrun occurred -- crashing the entire network and causing the ship to lose control of its propulsion system.

Зачем проверять данные, лол.

Ответить | Правка | Наверх | Cообщить модератору

12. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  –4 +/
Сообщение от Аноним (12), 10-Апр-24, 11:53 
Apache c PHP 5 под 98 виндой гоняю на ретропк, наполняю базу данных через Web-морду. Одновремено захожу с IE5 и смартфона. Если система тянет, пусть живет. Уникод поддерживается, через JSON-файлы можно осуществлять экспорт на продакшен под Linux.
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

58. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +/
Сообщение от Аноним (58), 10-Апр-24, 19:42 
Еще осталось очень много людей, а среди них каких только нет, есть даже такие, кто серваки на винде держит.
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

83. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +/
Сообщение от Аноним (83), 15-Апр-24, 22:23 
Печально, когда и если ещё и батнички живы... Такая махровая халтура и так долго прожила.

Занятно. Но тоскливо.

Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

4. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +17 +/
Сообщение от Аноним (4), 10-Апр-24, 11:13 
> Уязвимость BatBadBut, затрагивающая стандартные библиотеки различных языков программирования

Правильный заголовок будет "Уязвимость BatBadBut, затрагивающая стандартные библиотеки различных языков программирования в Windows"

Дело не в языках, а в супер надежной проприетарной системе (как нам завещал товарищ birdie)

Ответить | Правка | Наверх | Cообщить модератору

14. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  –6 +/
Сообщение от Аноним (-), 10-Апр-24, 12:00 
> Дело не в языках, а в супер надежной проприетарной системе (как нам
> завещал товарищ birdie)

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


Ответить | Правка | Наверх | Cообщить модератору

36. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +2 +/
Сообщение от Анании.orig (?), 10-Апр-24, 14:15 
При чем тут скрипты вообще?
> в Windows при использовании API CreateProcess аргументы оформляются в виде одной строки

Зыж
Вот взял и раст скриптами обозвал
Да так любой экзешник можно заставить cmd.exe вызвать.

Ответить | Правка | Наверх | Cообщить модератору

43. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +/
Сообщение от Аноним (43), 10-Апр-24, 16:05 
И питонятины повсюду тоже нет.
Ответить | Правка | К родителю #14 | Наверх | Cообщить модератору

61. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +/
Сообщение от AKTEON (?), 10-Апр-24, 20:48 
> линуксе нет башскиптов

В линуксе даже и  обход антивируса gmail из коробки стоит ,бггг

Ответить | Правка | К родителю #14 | Наверх | Cообщить модератору

72. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +1 +/
Сообщение от Аноним (72), 11-Апр-24, 15:07 
> башскиптов, которые могут и рут подарить

После ввода пароля рута.

> удалить все файлы юзеров!

Только те, с правами которых запущен процесс. А ты хотел бы вводить пароль пользователя при создании/удалении/перемещении каждого файла? ACL и sudoers тебе в руки. Но зачем? Может, просто ставить программы пакетником и не запускать всякую дрянь с файлопомоек, как принято в Винде?

Ответить | Правка | К родителю #14 | Наверх | Cообщить модератору

5. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  –4 +/
Сообщение от Аноним (6), 10-Апр-24, 11:18 
>В Rust 1.77.2 в стандартную библиотеку добавлена дополнительная проверка, возвращающая ошибку при наличии в аргументе запускаемого сценария спецсимволов, которое невозможно гарантированно безопасно экранировать.

Не понял, а что Rust ещё и в качестве интерпретатора используется?

Ответить | Правка | Наверх | Cообщить модератору

44. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +2 +/
Сообщение от ананим.orig (?), 10-Апр-24, 16:13 
> в Windows при использовании API CreateProcess аргументы оформляются в виде одной строки

в Windows любой экзешник превращается в интерпретатор

Ответить | Правка | Наверх | Cообщить модератору

7. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +/
Сообщение от Аноним (-), 10-Апр-24, 11:28 
Что, Fabric уже посчитали одной большой уязвимостью?
Ответить | Правка | Наверх | Cообщить модератору

8. Скрыто модератором  –2 +/
Сообщение от bOOster (ok), 10-Апр-24, 11:42 
Ответить | Правка | Наверх | Cообщить модератору

9. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +3 +/
Сообщение от Аноним (-), 10-Апр-24, 11:43 
> Проекты Python, Ruby, Go, Erlang и Haskell пока ограничились внесением в документацию предупреждения о проявлении уязвимости при отсутствии должного экранирования спецсимволов.

Не, ну это не серьезно...
И вообще, какое отношение виндопроблемы имеют к этому сайту?

А уязвимость нужно переименовать в BatBadButt.

Ответить | Правка | Наверх | Cообщить модератору

17. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +2 +/
Сообщение от Аноним (17), 10-Апр-24, 12:05 
> И вообще, какое отношение виндопроблемы имеют к этому сайту?

Rust, node.js,  Python, Ruby, Go, Erlang и Haskell уже перестали быть открытыми проектами?
Ах да, давайте тогда прекратим публиковать новости о ядре Linux, ведь оно запускается на оборудовании с проприетарными прошивками.

Ответить | Правка | Наверх | Cообщить модератору

21. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +1 +/
Сообщение от Аноним (-), 10-Апр-24, 12:16 
> уже перестали быть открытыми проектами

Не перестали. И?

Проблема из новости характерна исключительно для винды.
И это виндопроблемы мало кого интересуют.

> тогда прекратим публиковать новости о ядре Linux, ведь оно запускается на оборудовании с проприетарными прошивками.

Не нужно пытаться натянуть сову на глобус.

Ответить | Правка | Наверх | Cообщить модератору

54. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +/
Сообщение от Анониссимус (?), 10-Апр-24, 18:09 
Почему же не интересуют. После тонны линуксовых дыр очень приятно почитать, что вантузе всё ещё хуже.
Ответить | Правка | Наверх | Cообщить модератору

71. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +1 +/
Сообщение от Аноним (72), 11-Апр-24, 15:03 
> После тонны линуксовых дыр

Закрытых дыр.

> что вантузе всё ещё хуже

И останется во веки веков.

Ответить | Правка | Наверх | Cообщить модератору

82. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +/
Сообщение от Аноним (82), 12-Апр-24, 13:08 
Для опеннета эта новость скорее характерна.
Ответить | Правка | К родителю #9 | Наверх | Cообщить модератору

10. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +/
Сообщение от Аноним (-), 10-Апр-24, 11:48 
Для хаскеля уже есть патч.

В списке еще забыли жабу. Они оригинально решили проблему
Java     Won’t fix

Appendix B: Status of the affected programming languages
flatt.tech/research/posts/batbadbut-you-cant-securely-execute-commands-on-windows/

Ответить | Правка | Наверх | Cообщить модератору

24. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +1 +/
Сообщение от Массоны Рептилоиды (?), 10-Апр-24, 12:30 
Проблемы индейцев шерива не волбуют
Ответить | Правка | Наверх | Cообщить модератору

11. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +2 +/
Сообщение от Аноним (11), 10-Апр-24, 11:52 
Это же не баг, а фича.
Ответить | Правка | Наверх | Cообщить модератору

25. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +3 +/
Сообщение от Аноним (25), 10-Апр-24, 12:34 
>Приложения, запускающие сценарии в формате bat и cmd на платформе Windows при помощи штатных функций запуска процессов

Столько лет - и всё одно и то же: "я разраб, мне так удобно, программа поставляется AS IS, не нравится - не используй". Это не уязвимости, это всё by design. Даже упоминания не стоит.

Ответить | Правка | Наверх | Cообщить модератору

28. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +/
Сообщение от n00by (ok), 10-Апр-24, 13:30 
> The application doesn’t specify the file extension of the command,
> or the file extension is .bat or .cmd

Что бы могло сработатать, надо запускать экзешник, указав его имя без расширения. Кто и зачем мог бы такое прописать в своём коде?

Ответить | Правка | Наверх | Cообщить модератору

33. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +/
Сообщение от Аноним (-), 10-Апр-24, 13:50 
>> The application doesn’t specify the file extension of the command,
>> or the file extension is .bat or .cmd
> Что бы могло сработатать, надо запускать экзешник, указав его имя без расширения.
> Кто и зачем мог бы такое прописать в своём коде?

С другой стороны никто ж не запрещает делать так
rm -rf /usr /lib/nvidia-current/xorg/xorg

Ответить | Правка | Наверх | Cообщить модератору

53. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +/
Сообщение от балдымалдыбар (?), 10-Апр-24, 17:40 
почему не
rm -rf /usr /lib / nvidia-current/xorg/xorg
?
Ответить | Правка | Наверх | Cообщить модератору

62. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +/
Сообщение от Зазнайка (?), 10-Апр-24, 21:07 
Потому-что это мем про код из бамблби (насколько помню)
Ответить | Правка | Наверх | Cообщить модератору

55. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +/
Сообщение от n00by (ok), 10-Апр-24, 19:23 
В Винде для запуска чего ни попадя есть ShellExecute.
Ответить | Правка | К родителю #33 | Наверх | Cообщить модератору

31. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +/
Сообщение от Пряник (?), 10-Апр-24, 13:49 
Уже 12 часов назад вроде пофиксили в Rust 1.77.2.
Ответить | Правка | Наверх | Cообщить модератору

38. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  –1 +/
Сообщение от Аноним (38), 10-Апр-24, 14:55 
А сколько там еще уязвимостей и бэкдоров не пофикшено и тихо ждут своего времени?
Ответить | Правка | Наверх | Cообщить модератору

39. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +/
Сообщение от Аноним (4), 10-Апр-24, 15:55 
В windows? За десятилетия не разгрести, но ms-индусы не спешат, и потому приходится лепить велосипеды внутри стандартных либах ЯП.
Ответить | Правка | Наверх | Cообщить модератору

32. Скрыто модератором  –1 +/
Сообщение от Аноним (32), 10-Апр-24, 13:50 
Ответить | Правка | Наверх | Cообщить модератору

40. Скрыто модератором  +/
Сообщение от Аноним (4), 10-Апр-24, 15:56 
Ответить | Правка | Наверх | Cообщить модератору

34. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +/
Сообщение от DiabloPC (ok), 10-Апр-24, 14:00 
В конце названия уязвимости еще одной буквы "t" не хватает
Ответить | Правка | Наверх | Cообщить модератору

37. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  –2 +/
Сообщение от Аноним (38), 10-Апр-24, 14:53 
>В Rust 1.77.2 в стандартную библиотеку добавлена дополнительная проверка, возвращающая ошибку при наличии в аргументе запускаемого сценария спецсимволов, которое невозможно гарантированно безопасно экранировать. Для разработчиков, самостоятельно реализующих логику экранирования предоставлен метод CommandExt::raw_arg, полностью отключающий экранирование на стороне библиотечных вызовов.

То есть уязвимость как бы закрыта, но все равно остается возможность прострелить себе ногу. А те кто не экранировали ввод с raw_arg и с ним не будут. Вот такая она безопасность, в основном на словах.

Ответить | Правка | Наверх | Cообщить модератору

41. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  –1 +/
Сообщение от Аноним (41), 10-Апр-24, 15:58 
Делаешь поехавшим безопасно - верещат про ограничения. Даёшь полный контроль - верещат, что не безопасно. Прямо агенты спецслужб, у которых отбирают сишку, в которой можно бекдоры внешне корректным кодом писать.
Ответить | Правка | Наверх | Cообщить модератору

51. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +1 +/
Сообщение от Tron is Whistling (?), 10-Апр-24, 17:09 
Это две совершенно разных категории попрыгавших.
Причём вторая куда опаснее.
Ответить | Правка | Наверх | Cообщить модератору

64. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +/
Сообщение от Зазнайка (?), 10-Апр-24, 21:09 
Может и так, но слышно их одинаково громко
Ответить | Правка | Наверх | Cообщить модератору

42. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +/
Сообщение от Аноним (4), 10-Апр-24, 15:59 
> Вот такая она безопасность, в основном на словах.

У microsoft в windows? Не наговаривайте - birdie нам вещал, что там нет бекдоров! Это не уязвимость, а фича. Да еще за ваши деньги.

Ответить | Правка | К родителю #37 | Наверх | Cообщить модератору

47. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +1 +/
Сообщение от Xasd7 (?), 10-Апр-24, 16:52 
вот прикол!

то есть на венде Ядро передаёт СТРОКУ в процесс а не СПИСОК_аргументов...

и при этом -- каждая программа эту страку как хочет так и разбивает?!?! по своим правилам?!

ВОТ СМЕХУТО!! АХАХАХА!! ща умру!

то есть простая операция "убери первый аргумент и то что останется передай в другой следущий процесс" -- становится НЕ РЕАЛИЗУЕМОЙ по факту ВООБЩЕ! потому что возникает вопрос -- "погоди! а по каким правилам следущий процесс будет разбивать строку? по тем же самым что и мы сами тут у себя разбили?!"

я просто валяюсь! это сделало мой день!! :-D :-D :-D

Ответить | Правка | Наверх | Cообщить модератору

57. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +/
Сообщение от n00by (ok), 10-Апр-24, 19:33 
Ядро там не передаёт в процесс строку. Процесс создаётся из пространства пользователя. Ядро лишь создаёт объекты ядра (секция, основной поток).
Ответить | Правка | Наверх | Cообщить модератору

70. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +/
Сообщение от Аноним (72), 11-Апр-24, 14:59 
А запуск процесса от основного потока и создание дополнительных потоков выполняется системными вызовами?
Ответить | Правка | Наверх | Cообщить модератору

80. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +/
Сообщение от n00by (ok), 12-Апр-24, 12:17 
Процесс никуда не запускается - в Виндос это всего лишь изолированное от остальных адресное пространство, плюс вспомогательные структуры данных. Ядро отображает в то АП образ "экзешника", а всякие аргументы командной строки заполняет поток, вызвавший CreateProcess(). Основной поток нового процесса создаётся (если утрировать) через CreateRemoteThread(). Дополнительный поток процесса создаёт основной поток, естественно, системными вызовами.
Ответить | Правка | Наверх | Cообщить модератору

48. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +/
Сообщение от Аноним (48), 10-Апр-24, 17:04 
Зачем чинить уязвимости проявляющиеся только на венде? Да ещё если это уязвимости самой венды.
Ответить | Правка | Наверх | Cообщить модератору

56. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +/
Сообщение от Вы забыли заполнить поле Name (?), 10-Апр-24, 19:27 
Чтобы было безопасно! Сейчас в моде безопасные языки, которое позволяют безопасно работать с памятью и не только. Все должно быть безопасно по умолчанию. Пользователь должен ощущать себя в безопасности. Надеюсь мой комментарий достаточно безопасно объясняет необходимость безопасности в современном небезопасном мире. Если нет, то прошу в безопасной манере описать проблему безопасности, чтобы я мог безопасно вам ответить.
Ответить | Правка | Наверх | Cообщить модератору

60. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +7 +/
Сообщение от DiabloPC (ok), 10-Апр-24, 20:23 
Два чая этому господину! (Не сильно горячих, чтобы безопасно. И наливать в безопасную небьющуюсь кружку неразливайку)
Ответить | Правка | Наверх | Cообщить модератору

86. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +/
Сообщение от Bottle (?), 13-Авг-24, 21:39 
И подавать механическим контроллером на Ос реального времени, написанной на Ada Spark.
Ответить | Правка | Наверх | Cообщить модератору

49. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  –1 +/
Сообщение от 1 (??), 10-Апр-24, 17:07 
> При запуске bat- и cmd-сценариев на платформе Windows функция CreateProcess() неявно привлекает исполняемый файл cmd.exe, даже если приложение не указывает его при вызове.

В чём проблема-то ? Всё описано в мануале. Сколько раз при вызове system в *NIX это проходили ? Никто это уязвимостью не называл.

А писать
CreateProcess( NULL,"test", ...
вместо
CreateProcess( NULL,"/my/path/test.exe", ...
такое себе ...

Ответить | Правка | Наверх | Cообщить модератору

59. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +/
Сообщение от n00by (ok), 10-Апр-24, 19:50 
> В чём проблема-то ? Всё описано в мануале.

Они уже сделали такое открытие.

In fact CreateProcess actively documents against using it this way:

    To run a batch file, you must start the command interpreter; set lpApplicationName to cmd.exe and set lpCommandLine to the following arguments: /c plus the name of the batch file.

https://github.com/rust-lang/rust/issues/123728

Ответить | Правка | Наверх | Cообщить модератору

73. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +1 +/
Сообщение от Аноним (73), 11-Апр-24, 17:11 
Господа, приведите пожалуйста пример как на С правильно обрабатывать аргументы командной строки. Как дорвусь до компьютера напишу как это делаю я — сможете раскритиковать, но напишите как правильно это делать пожалуйста.
Ответить | Правка | Наверх | Cообщить модератору

74. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +/
Сообщение от Аноним (74), 11-Апр-24, 17:17 
> Господа, приведите пожалуйста пример как на С правильно обрабатывать аргументы командной
> строки. Как дорвусь до компьютера напишу как это делаю я —
> сможете раскритиковать, но напишите как правильно это делать пожалуйста.

man 3 getopt

Ответить | Правка | Наверх | Cообщить модератору

76. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +1 +/
Сообщение от Аноним (73), 11-Апр-24, 22:18 
А чем getopt безопаснее? Тем более что у него только определённое применение. Разве возможно с помощью getopt обработать данные с одинаковыми названиями? Ну или если вдруг последовательность имеет значение. Более того, обрабатывает ли он в целом аргументы на такие проблемы как специальные символы?
Насколько я вижу исходный код - вроде не похоже.
https://codebrowser.dev/glibc/glibc/posix/getopt.c.html
Ответить | Правка | Наверх | Cообщить модератору

77. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +/
Сообщение от Аноним (74), 11-Апр-24, 22:34 
> А чем getopt безопаснее?

Поищи CVE в getopt, если тебе нужен ответ. Помню пару лет назад было что-то подобное.

> Тем более что у него только определённое применение.

типичное.

> Разве возможно с помощью getopt обработать данные с одинаковыми названиями?

колхоз. отрефакторь интерфейс, используй getsubopt(3).

> Ну или если вдруг последовательность имеет значение.

см. предыдущий ответ.

> Более того, обрабатывает ли он в целом аргументы на такие проблемы как специальные символы?

чойта у тя мисформулировано. "обрабатывает ... аргументы на ... проблемы"?
Там char*, обрабатывай чем хочешь. Вдруг тебе нужно спецсимвол передать, типа $'\n', или обработать  аргумент на соответстие шаблону, getopt(3) и ко это не волнует, он делает для чего предназначен.

> Насколько я вижу исходный код - вроде не похоже.

не вы%бивайся.

Ответить | Правка | Наверх | Cообщить модератору

78. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +/
Сообщение от Аноним (78), 11-Апр-24, 23:19 
Ну вот так: echo hello & \e\c\h\o wo\rld \n
я получу что-то такое:
[2] 15915
world n
[1]   Done                    echo hello
hello
А вот так: echo hello \& \e\c\h\o wo\rld \n
получается такое:
hello & echo world n
[2]+  Done                    echo hello
То есть в консоле символ & почему-то не экранируется а \ экранируется как \\, но самим echo не выводится. Я в целом не С программист, но иногда использую дома и не понимаю почему символ & не экранируется? В целом в Linux та же может быть проблема при вызове system. И вот getopt мне кажется в этой проблеме никак не поможет.
Ответить | Правка | Наверх | Cообщить модератору

79. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  –1 +/
Сообщение от Аноним (74), 11-Апр-24, 23:46 
> Я в целом не С программист

тебе надо не С, а какой-нибудь учебник по юникс-лайк системам для чайников для начала. Шеллы там, пайпы, {fore,back}ground процессы, и т.д. И потом уже С.

Ответить | Правка | Наверх | Cообщить модератору

75. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +/
Сообщение от Аноним (73), 11-Апр-24, 22:08 
Как-то так:
int main(int количествоАргументов, char *аргументы[])
{
    if (аргументы != NULL)
    {
        for (int и=1; и < количествоАргументов; и++)
        {
            if (аргументы[и] != NULL)
            {
                const char * аргумент = аргументы[и];
...
В итоге получается warning: unsafe buffer access [-Wunsafe-buffer-usage]|
Ответить | Правка | К родителю #73 | Наверх | Cообщить модератору

81. "Уязвимость BatBadBut, затрагивающая стандартные библиотеки р..."  +/
Сообщение от n00by (ok), 12-Апр-24, 12:32 
> Как-то так:
> int main(int количествоАргументов, char *аргументы[])
> {
>     if (аргументы != NULL)
>     {
>         for (int и=1; и
> < количествоАргументов; и++)
>         {

А где "аргументы" могут быть NULL? Вот требование стандарта:

If the value of argc is greater than zero, the array members argv[0] through argv[argc-1]
inclusive shall contain pointers to strings, which are given implementation-defined values
by the host environment prior to program startup.

Ответить | Правка | Наверх | Cообщить модератору

87. Скрыто модератором  +/
Сообщение от Bottle (?), 13-Авг-24, 21:40 
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру