The OpenNET Project / Index page

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

Уязвимость конфигураций Nginx с некорректными настройками блока alias

05.07.2023 19:38

Некоторые серверы с nginx остаются уязвимы для техники Nginx Alias Traversal, которая была предложена на конференции Blackhat ещё в 2018 году и позволяет получить доступ к файлам и каталогам, размещённым вне корневого каталога, заданного в директиве "alias". Проблема проявляется только в конфигурациях с директивой "alias", размещённой внутри блока "location", параметр которой не завершается на символ "/", в то время как "alias" завершается на "/".

Суть проблемы в том, что файлы для блоков с директивой alias отдаются через прикрепление запрошенного пути, после его сопоставления с маской из директивы location и вырезания заданной в этой маске части пути. Для показанного выше примера уязвимой конфигурации атакующий может запросить файл "/img../test.txt" и этот запрос подпадёт под указанную в location маску "/img", после чего остающийся хвост "../test.txt" будет прикреплён к пути из директивы alias "/var/images/" и в итоге будет запрошен файл "/var/images/../test.txt". Таким образом, атакующим может получить доступ к любым файлам в каталоге "/var", а не только к файлам в "/var/images/", например, для загрузки лога nginx можно отправить запрос "/img../log/nginx/access.log".

В конфигурациях, в которых значение директивы alias не завершается символом "/" (например, "alias /var/images;"), атакующий не может перейти в родительский каталог, но имеет возможность запросить другой каталог в /var, начало имени которого совпадает с указанным в конфигурации. Например, запросив "/img.old/test.txt" можно получить доступ к каталогу "var/images.old/test.txt".

Анализ репозиториев на GitHub показал, что приводящие к проблеме ошибки в настройке nginx до сих пор встречаются в реальных проектах. Например, наличие проблемы было выявлено в серверной части менеджера паролей Bitwarden и могло использоваться для доступа ко всем файлам в каталоге /etc/bitwarden (запросы /attachments отдавались из /etc/bitwarden/attachments/), включая хранимую там БД с паролями "vault.db", сертификат и логи, для получения которых достаточно было отправить запросы "/attachments../vault.db", "/attachments../identity.pfx", "/attachments../logs/api.log" и т.п.

Метод также сработал с Google HPC Toolkit, в котором запросы /static перенаправлялись в каталог "../hpc-toolkit/community/front-end/website/static/". Для получения БД с закрытым ключом и учётными данными атакующий мог отправить запросы "/static../.secret_key" и "/static../db.sqlite3".



  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: Обновление nginx 1.22.1 и 1.23.2 с устранением уязвимостей
  3. OpenNews: Выпуски nginx 1.21.0 и 1.20.1 с устранением уязвимости
  4. OpenNews: Обновление nginx 1.14.1 и 1.15.6 с устранением трёх уязвимостей
  5. OpenNews: Критическая уязвимость в http-сервере Nginx
  6. OpenNews: Root-уязвимость из-за некорректных настроек в пакете nginx для Debian и Ubuntu
Лицензия: CC BY 3.0
Наводку на новость прислал smolindm
Короткая ссылка: https://opennet.ru/59383-nginx
Ключевые слова: nginx, alias
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (125) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.3, Аноним (3), 19:50, 05/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Сишники и их классическая неспособность защититься от ../../../etc/passwd. Кто-нибудь познакомьте их с такой революционной по их меркам концепцией, как "библиотека по работе с путями".
     
     
  • 2.5, Аноним (5), 19:53, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Она называется leftpad мы помним.
     
     
  • 3.9, Аноним (3), 20:06, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    лефтпад в исполнении сишников как пить дать будет содержать парочку уязвимостей.
     
     
  • 4.17, Аноним (5), 21:47, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ничего удивительного если ты начнёшь писать на си ты ещё ногу себе отстрелишь.
     
     
  • 5.58, Аноним (58), 09:46, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Сишка для программистов с профильным образованием и серьезным фундаментом в плане того как работает ЭВМ. Смузихлебам Си противопоказан, для вас есть чатжпт, джабаскрипт и питон.
     
     
  • 6.59, arisu (ok), 09:58, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Сишка для программистов с профильным образованием и серьезным фундаментом в плане того
    > как работает ЭВМ.

    бедный Дейкстра. куда уж ему, недоучке, до Великих Сишников с Профильным Образованием…

     
     
  • 7.123, Аноним (-), 16:01, 07/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > бедный Дейкстра. куда уж ему, недоучке, до Великих Сишников с Профильным Образованием…

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

     
  • 6.60, arisu (ok), 09:59, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Сишка для программистов с профильным образованием и серьезным фундаментом в плане того
    > как работает ЭВМ.

    а, забыл: ещё Вирт. тоже недоучка, не смог сишечку выучить, пришлось писать свою ось на какой-то ерунде.

     
     
  • 7.120, Тот_Самый_Анонимус__ (?), 15:37, 07/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Видать в лагерь в первую смену попал, раз активность только в июле, да?
     
  • 6.69, Бывалый смузихлёб (?), 12:15, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    а что, на сишников целенаправленно учат ?
    это ведь вроде первого курса профильного ВУЗа...
     
     
  • 7.82, Аноним (-), 13:51, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Много знаешь айтишников кто закончил профильный ВУЗ? Сейчас среднестатистический джун = вайтишник с средним или гуманитарным образованием коммерческого ВУЗа.
     
     
  • 8.84, Аноним (-), 13:54, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Двачую адеквата В IT сегодня вкатывается каждый второй после ютуб курса питон з... текст свёрнут, показать
     
     
  • 9.87, arisu (ok), 14:10, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    денег предлагать не пробовали ну так, нормально денег говорят, помогает потом... текст свёрнут, показать
     
  • 9.111, Тот_ещё_аноним (ok), 23:04, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    На релокацию не все согласны... текст свёрнут, показать
     
  • 9.124, Аноним (-), 16:02, 07/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А какого плана специалисты вам нужны и что за компания Сайт у нее есть ... текст свёрнут, показать
     
  • 8.94, Аноним (94), 17:20, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    А в профильных вузах сейчас где-то есть толковый Computer Science уровня MIT В ... текст свёрнут, показать
     
     
  • 9.125, Аноним (125), 16:08, 07/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да В российском вузе даже не расскажут как применить вон того ридсоломона к ... большой текст свёрнут, показать
     
     
  • 10.140, пох. (?), 18:20, 08/07/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Дружище, не хочу тебя огорчать, но в роиськом вузе не расскажут что вообще такое... большой текст свёрнут, показать
     
     
  • 11.142, Аноним (142), 13:18, 10/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да, пожалуй Как-то так В российских вузах как максимум дадут грузню обшего ... большой текст свёрнут, показать
     
     
  • 12.143, пох. (?), 13:25, 10/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    да вот это как раз максимум и есть Только реееедкий российский вуз дойдет до об... большой текст свёрнут, показать
     
     
  • 13.146, Аноним (146), 17:20, 10/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    У россиян те вузы которые до Галуа доберутся - будут страшно далеки от рассказов... большой текст свёрнут, показать
     
  • 3.114, Аноним (-), 11:55, 07/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Она называется leftpad мы помним.

    Вон там пример вообще байды на дотнете в новости :). Манагер паролей, рассылающий базы всему миру - прикольно.

     
  • 2.14, Аноним (14), 20:38, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • –6 +/
    В ручной обработке путей можно накосячить независимо от языка. Но да, C сразу подразумевает низкий уровень разработчика и большую вероятность в том числе логических ошибок.
     
     
  • 3.26, Тот_ещё_аноним (ok), 22:37, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Нет там никаких косяков
    Есть спецификация на конфиг
     
     
  • 4.121, Аноньимъ (ok), 15:39, 07/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Что говорит спецификация конкретно по случаю из новости?
     
     
  • 5.141, пох. (?), 18:22, 08/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Что отвалите от нас с вашим частным случаем, мы тут глобальные проблемы решаем.

     
  • 2.19, OpenEcho (?), 22:03, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > "библиотека по работе с путями"

    А своей то башкой вообще думать слабо ?
    А то как посмотришь на твоих соратников, так на строчку хело-ворлд сотня импортов
    Причем 100% уникально "чистейших библиотек", "без грамма дерьма". И думать не надо и в случае чего свалить есть на кого

     
  • 2.25, Тот_ещё_аноним (ok), 22:36, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вы готовы предложить альтернативы?
    Языка и вебсервера
     
     
  • 3.51, Брат Анон (ok), 08:33, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нет проблем. Учитывая, что речь идёт про веб-сервер: oberon, modula-2, golang, freepascal, freebasic, rust.
     
     
  • 4.61, Аноним (61), 10:25, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    И на чем тут кроме go есть вакансия хотя бы в Москве ?
     
  • 4.76, Тот_ещё_аноним (ok), 13:17, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ага, языков ещё можно пару добавить

    А вот вебсерверов из хотя бы топ5 на них написанных, что-то не видно
    Может потребности в железе на одного клиента сказываются и потребляемых киловаттах?

     
     
  • 5.78, arisu (ok), 13:32, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    «известное и на слуху» == «самое хорошее»? окай.
     
  • 5.107, Аноним (107), 22:03, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +6 +/
    > А вот вебсерверов из хотя бы топ5 на них написанных

    Cloudflare использует свой веб-сервер (reverse proxy), написанный на Rust, под названием Pingora. Они покрывают больше 10% всего трафика в мире. Значит в топ-5 он точно входит.

     
     
  • 6.110, Тот_ещё_аноним (ok), 22:49, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да, достойная замена, спасибо
     
  • 3.54, Аноним (58), 09:37, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Сервер можно написать хоть на nodejs и он будет прекрасно работать.
     
     
  • 4.65, YetAnotherOnanym (ok), 11:20, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > прекрасно

    Какие у Вас своеобразные представления о прекрасном...

     
  • 2.64, YetAnotherOnanym (ok), 11:06, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Сишники

    Ещё один страдающий от существования Си.
    Здесь, вообще-то, логическая ошибка, которую может допустить программист на любом языке.

     

  • 1.4, Аноним (5), 19:53, 05/07/2023 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +2 +/
     

     ....ответы скрыты (7)

  • 1.13, Аноним (13), 20:23, 05/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    По идее, такое должны отлавливать статические анализаторы типа яндексовского gixy.
     
     
  • 2.18, Аноним (5), 21:48, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Код открыт если бы мог найти тогда бы нашёл.
     
  • 2.52, Брат Анон (ok), 08:36, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    1) Если языку нужен статический анализатор (правила, не определены в самом языке) -- это плохой язык.
    2) При чём тут статический анализатор, если это дело ТЕСТОВ?! На весь возможный код на языке N статических анализаторов не напасёшься.
     
     
  • 3.109, Tron is Whistling (?), 22:16, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И как ты собрался тестами покрыть все возможные входные условия?
    Даже фаззер может ряд проблем не выявить.
     
  • 3.144, Аноним (-), 14:09, 10/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > 1) Если языку нужен статический анализатор (правила, не определены в самом языке)
    > -- это плохой язык.

    Ну конечно! Давайте вон тем раздолбайским апликушникам вкатим набор правил уровня MISRA или каких-нибудь авиаторов, посмотреть как им такое программирование вообще будет и насколько их хватит. One size fits all же, да? :)

     
  • 2.115, Аноним (-), 11:58, 07/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > По идее, такое должны отлавливать статические анализаторы типа яндексовского gixy.

    Для синтаксиса URL который навязан стандартами вот этого самого - vs типовые апи файлух - это не слишком пресное начинание. Мягко говоря. В урлах например есть способы кодировать символы как какой-нибудь %3f - и на этом тоже регулярно налетают.

     

  • 1.16, Аноньимъ (ok), 21:21, 05/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    Вообще отдавать файлы из директорий в интернет по шттп запросам немного маразматичная идея...
    Как и сервера почты хранящие сообщения в файлах.
    Но это юникс технологии...
     
     
  • 2.21, OpenEcho (?), 22:10, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Вообще отдавать файлы из директорий в интернет по шттп запросам

    И в чем теперь принято отдавать файлы по интернету если хттп?

    > немного маразматичная идея...

    Приехали... Ысчо один судья и непризнанный гений?

    > Как и сервера почты хранящие сообщения в файлах.

    А, ну да, надо в облачных бакетах, точно, - всех в одно стойло
    Или там что то новое нарисовалось?

     
     
  • 3.23, Аноньимъ (ok), 22:19, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Речь шла конечно же о примитивном сопоставлении путей из запроса с путями файловой системы, что бред небезопасно и тупо.
    Сама по себе концепция идиотская.

    >И в чем теперь принято отдавать файлы по интернету если хттп?

    FTP

    >Или там что то новое нарисовалось?

    Базы данных изобрели много много десятилетий назад. Но когда вместо мозгов юникс и сишка, то все на свете сразу файлом становится.

     
     
  • 4.28, Аноним (28), 22:48, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >>И в чем теперь принято отдавать файлы по интернету если хттп?
    > FTP

    Нет, спасибо. Мёртворождённые протоколы не нужны. FTP был большой ошибкой, и ещё большей ошибкой оказались все попытки его починить.

     
  • 4.30, OpenEcho (?), 23:31, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Сама по себе концепция идиотская.

    Настолько "идиотская", что до сих пор доминирует

    > FTP

    Да, я смотрю у вас "очень высокий" концептуальный уровень

    > Базы данных изобрели много много десятилетий назад.

    Здается мне, что вы застряли на Вордпресс девелопенге?

     
     
  • 5.41, Аноньимъ (ok), 01:29, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну да, как и идея херачить текст полученный из интернета в командную строку, как... большой текст свёрнут, показать
     
  • 4.68, YetAnotherOnanym (ok), 12:06, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Сама по себе концепция вполне здравая Для статичных html-страниц, лежащих на ди... большой текст свёрнут, показать
     
     
  • 5.71, YetAnotherOnanym (ok), 12:17, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Гы... автоформаттер опеннета тоже конвертит URL в https://sitename.domain/etc/passwd :))
    Вот почему-то у одних хватает мозгов это сделать, а у других - нет.
     
     
  • 6.93, Аноним (94), 17:15, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    https://sitename.domain/prefix..etc/passwd

    Вот же, не сконвертило.

    А именно такой там кейс

     
  • 5.90, Аноньимъ (ok), 14:36, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Урла это уникальный адрес ресурса.
    ФС это системная база данных.
    То что и там и там по случайности есть слэши в имени ресурсов и запросов к БД не означает что можно брать куски юрлы и на прямую херачить их в виде запросов к системной БД.

    Так же как нельзя подобным образом из юрлы куски текста в sql запрос пихать.

     
     
  • 6.97, YetAnotherOnanym (ok), 17:58, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-то, они там не по случайности.
     
     
  • 7.100, Аноньимъ (ok), 18:15, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Вообще-то, они там не по случайности.

    Что ещё хуже.

     
  • 4.116, Аноним (-), 12:00, 07/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > FTP

    Этот протокол вообще должен умереть. Мало того что не работает через половину натов и файрволов без плясок с бубнами - так еще пего перфоманс при заливке например кучи мелочи невероятно позорный, т.к. в пайплайнинг ЭТО насколько я помню не умеет.

    > Базы данных изобрели много много десятилетий назад. Но когда вместо мозгов юникс
    > и сишка, то все на свете сразу файлом становится.

    И бобби тэйблс так то уже не молодой чувак :)

     
  • 3.72, Бывалый смузихлёб (?), 12:23, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Без разницы на чём
    По сути, это просто запрос с конкретным юрл'ом, который далее уже обрабатывается

    Очевидно, вместо прямого проброса на каталог, надо проверить в БД, есть ли запрашиваемый файл
    Есть - выдать по указанному там адресу
    Нет - послать
    А ведь у файлов и каталогов могут быть разные права доступа относительно запрашивающих пользователей. тут нельзя просто взять - и пробросить каталог, в любом случае нужна БД и тонна записей

    Оно уже тыщщу лет так работает. Хз кто в здравом уме в тырнеты пробрасывает доступ к файлам способом, описанным в статье

     
     
  • 4.74, arisu (ok), 13:07, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    эвона как. ты, наверное, программист. оно и неудивительно, что софт жрёг гигабайты памяти, требует гигагерцы цпу, а тормозит при этом покруче, чем дум на 6502.
     
     
  • 5.81, Бывалый смузихлёб (?), 13:49, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > ты, наверное, программист

    А кого ещё можно почти наверняка встретить на опеннете ?)

    Стандарты есть стандарты, а уж если решил открыть дыру - так будь готов что ей воспользуются
    Ну серьёзно

    Это ведь даже не ынтыпрайс
    Просто, кагбэ логично давать пользователям доступ ровно до тех файлов, которые ты для них выгрузил, а не для всей системы просто потому, что один додумался написать несколько точек в адресе, а другой - урод-разработчик - не додумался это отфильтровать и обработать корректно

    Посему, всё доступное строго по записи[в БД]

    Но кстати, мой софт не тормозит даже на старом смартфоне

     
     
  • 6.86, arisu (ok), 14:08, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Просто, кагбэ логично давать пользователям доступ ровно до тех файлов, которые ты
    > для них выгрузил, а не для всей системы

    а может это… того… ну, прочитать про права доступа фс, например? пользоваться серверами, которые умеют открыть себе нужные файлы, а потом имперсонироваться в нужного юзера? вот такое вот? а хотя не, ерунда какая-то, давайте дублировать возможности фс через отдельную базу данных, что может пойти не так…

     
     
  • 7.118, Аноним (-), 12:04, 07/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Фу ты какой немодный кэп, ты еще скажи про чрут, или боже упаси, контейнеры. Представляешь, если у меня в виде ФС для браузера есть только Downloads по сути - ну, окей, попробуй спереть из этого view /etc/passwd какой - при том что его в этом view чисто технически нет. Потому что для работы браузера это не требовалось :)
     
  • 5.117, Аноним (-), 12:01, 07/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > эвона как. ты, наверное, программист. оно и неудивительно, что софт жрёг гигабайты
    > памяти, требует гигагерцы цпу, а тормозит при этом покруче, чем дум
    > на 6502.

    Потом бобби тейблс ему в базу /etc/passwd пропишет, дропнув попутно всякие беспонтовые сайтики. And we're back to square one :)

     
  • 4.98, YetAnotherOnanym (ok), 18:09, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Не, ну чо, маппить URL в путь к файлу через специальную таблицу в БД - один из вариантов.
    Заводить отдельную таблицу, целиком состоящую из записей вида
    /manuals/0123456789.pdf | /var/www/static/manuals/0123456789.pdf
    это, конечно, стильно-модно-молодёжно, да.
     
     
  • 5.101, Аноньимъ (ok), 18:21, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, для статического контента такую таблицу можно генерировать веб сервером автоматически из целевой директории.
    Например.

    Но можно и просто чуть более разумно парсить путь к файлу если уже так хочется прямого отношения части урлы к структуре каталогов.

    Ключевое что не должно быть копипаста данных из урлы в запрос к ФС.

     
     
  • 6.119, Аноним (-), 13:38, 07/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    И как это улучшает вон то состояние дел Типа вот там сервер на бывается, а вот ... большой текст свёрнут, показать
     
     
  • 7.122, Аноньимъ (ok), 15:49, 07/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >По-моему радикально огородить серв в чрут а лучше контейнер (т.к. чрут имеет ряд проблем) так то эффективнее решает задачу с меньшей возней.

    Эффективнее как у эффективных менеджеров.

    >спецсимволов

    Проверка валидности запроса из неконтролируемой среды есть обязанность сервера, точка.

    >Ну да, давайте в базу отправим.

    ФС тоже база данных.
    Ни в какую базу данных, тем более скульную, ненужно копипастить текст из запроса.

     
     
  • 8.127, Аноним (-), 19:26, 07/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Решает проблему - быстро, сердито, даже без правки кода - и хитов в перфоманс Е... большой текст свёрнут, показать
     
     
  • 9.130, Аноньимъ (ok), 20:22, 07/07/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Дальше можно не читать Шиза настоящая Секономить пару тактов процессора на про... текст свёрнут, показать
     
     
  • 10.131, Аноним (131), 21:03, 07/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Всего лишь практическая и практичная эксплуатация реально существующего софта в ... большой текст свёрнут, показать
     
     
  • 11.133, Аноньимъ (ok), 22:19, 07/07/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    gt оверквотинг удален Предохраняться конечно же нужно Что не отменяет безумно... большой текст свёрнут, показать
     
     
  • 12.134, Аноним (134), 22:55, 07/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А я то думал что надо уповать на сферический софт в вакууме, в котором багов не ... большой текст свёрнут, показать
     

  • 1.20, Аноним (20), 22:04, 05/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Теоретически конечно пользователь "сам дурак", ибо все работает так, как описано в документации. А практически - та еще дыра.
     
  • 1.22, Тот_ещё_аноним (ok), 22:13, 05/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Прям проникся с каментов Си-хейтеров

    Новость: "При неправильно написанной конфигурации вебсервера будет дырка"

    Виноваты язык Си и те кто сервер написал
    Написавшим дырявый конфиг и не исправившим с 2018 года - почет и уважение

    Логика)

     
     
  • 2.24, Аноньимъ (ok), 22:23, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Обычно принято конфиги на вилидность проверять прежде чем применять.

    Но сишники такой простой идеи не понимают, ведь С/С++ компиляторы любой бред шизофреника маньяка готовы компилировать и это у них ФИЧА такая.

     
     
  • 3.27, Тот_ещё_аноним (ok), 22:39, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Так все эти конфиги - валидные
    Если кто-то спек не прочёл - ссзб
     
     
  • 4.31, Аноним (28), 23:36, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Если кто-то спек не прочёл - ссзб

    Есть один важный принцип проектирования софта, называется «principle of least astonishment». Если ты про него не знаешь — ССЗБ.

     
     
  • 5.48, Sw00p aka Jerom (?), 07:04, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >называется

    Даффай по-руцки, "защита от ивана-дурака" :)

     
  • 5.73, Тот_ещё_аноним (ok), 13:03, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Когда-то в инструкции по эксплуатации автомобиля писали, как регулировать зазоры клапанов
    Теперь, что аккумуляторную жидкость пить нельзя

    Ожидаемое поведение в конфиге вебсервера? Это серьёзно?
    Читаем спецификацию и никаких сюрпризов

     
     
  • 6.104, Аноним (28), 18:30, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Когда-то в инструкции по эксплуатации автомобиля писали, как регулировать зазоры клапанов

    Конфиг веб-сервера — это не клапана, а руль и педали.

    > Ожидаемое поведение в конфиге вебсервера? Это серьёзно?

    Абсолютно серьёзно. Особенно в конфиге вебсервера. Вебсервер чаще всего взаимодействует с публичным интернетом и ошибки в его конфигурации могут быть особенно опасны, в чём мы и убедились. Если у админа нет синдрома саванта, ошибки неизбежны, поэтому и конфиг должен быть интуитивно понятным, и цена ошибки должна быть минимальна. Ни то, ни другое нельзя сказать про сабж.

     
  • 6.135, Аноним (-), 00:01, 08/07/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Когда-то в инструкции по эксплуатации автомобиля писали, как регулировать зазоры клапанов

    ЧСХ водители с удовольствием послали эти автомобили туда где не светит солнце при первой же возможности. Потому что если кто хотел водить авто - это совсем не значит что он хотел загорать под жигуленком вместо поездки на шашлыки. Автомобили покупают не для того чтобы с клапанами сношаться.

     
  • 4.43, Аноньимъ (ok), 01:38, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Так все эти конфиги - валидные
    > Если кто-то спек не прочёл - ссзб

    Вот я и говорю, типичный сишный маразм.

    Спек конечно же стоит прочитать, только в спеке будет undefined behaviour через абзац, а double не меньше float который может быть любого размера как боженька пошлёт.
    Ну и конечно же неотлавливаемые переполнения целых чисел.

     
     
  • 5.126, Аноним (-), 19:16, 07/07/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Вот я и говорю, типичный сишный маразм.

    Этот маразм сам по себе ортогонален сям и происходит из API файловых систем. Даже в HTML можно пути указывать как ../img/abc.jpg - и это валидный синтаксис. Сервер должен его отработать. Вот прям так, с вылезанием на уровень вверх - если права на это есть.

    > Спек конечно же стоит прочитать, только в спеке будет undefined behaviour через
    > абзац, а double не меньше float который может быть любого размера

    Казалось бы при чем тут апи файлух с его дурацкостями? Это апи и у остальных такое же. А либы могут взять как эти так и те.

    > Ну и конечно же неотлавливаемые переполнения целых чисел.

    А у кого оно отлавливаемое без жесткого хита в перфоманс? :)

     
     
  • 6.128, Аноним (128), 19:42, 07/07/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Этот маразм сам по себе ортогонален сям и происходит из API файловых систем. Даже в HTML можно пути указывать как ../img/abc.jpg - и это валидный синтаксис. Сервер должен его отработать. Вот прям так, с вылезанием на уровень вверх - если права на это есть.

    Вот только этот путь не имеет отношения к файловой системе сервера. Это исключительно УРЛ-путь и обычно обрабатывается самим браузером, а на сервер приходит уже конечный вариант пути.

     
     
  • 7.136, Аноним (-), 00:02, 08/07/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Вот только этот путь не имеет отношения к файловой системе сервера. Это
    > исключительно УРЛ-путь и обычно обрабатывается самим браузером, а на сервер приходит
    > уже конечный вариант пути.

    Эта семантика взята именно из ФСовских апи. Так что насчет не имеет отношения - булшит однако. Особенно для сервера статики.

     
     
  • 8.139, Аноним (128), 06:12, 08/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Она не взята, она всего лишь может совпадать От того, что сайт переехал на винд... текст свёрнут, показать
     
     
  • 9.145, Аноним (-), 16:24, 10/07/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не просто может - но и совпадает вот И это вполне легитимная конструкция В вин... большой текст свёрнут, показать
     
  • 6.129, Аноньимъ (ok), 20:11, 07/07/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Этот маразм сам по себе ортогонален сям и происходит из API файловых

    Ничего такого в апи файлух нет.

    > Сервер должен его отработать.

    Должен, и если запрос валидный должен отдать ресурс, а если невалидный, должен послать нафиг.

    Так же как ФС пошлет вас если вы сделаете запрос на несуществующий или ограниченный правами файл.

    >Казалось бы при чем тут апи файлух с его дурацкостями?

    Мы тут вообще то говорили о спеках к файлу конфигурации.

    > А у кого оно отлавливаемое без жесткого хита в перфоманс? :)

    Главная страшилка сишников. Прямо жёсткий ужасный хит п е р ф о м а н с а!
    Правда это проверка одного флага ЦП после операции.
    Ну ладно, а опциональную то проверку можно, как в проклятом расте?

     
     
  • 7.137, Аноним (-), 00:12, 08/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А почему тогда синтаксис вида cd dir - работает и без всяких вебсерверов в... большой текст свёрнут, показать
     
  • 3.29, Аноним (29), 23:22, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Так это не баг, а фича. Alias сопоставляет префикс как подстроку, там / - просто символ, как и любой другой.

    Скажем, есть /var/www/images/photo-1.jpg (photo-2.jpg итд), и хочется по /photos/1.jpg отдать /var/www/images/photo-1.jpg итд. С текущей реализацией alias это легко делается безо всяких регулярных выражений. А если "починить" "уязвимость", подобные конфигурации сломаются.

     
     
  • 4.32, Аноним (28), 23:38, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Хорошая фича, и кейс вполне реальный. Но можно при этом не отдавать ../../../etc/passwd?
     
     
  • 5.39, mistiq (ok), 01:13, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    скорее не так, отрезать все что выходит за рамки / веб сервера. тогда ничего левого и не будет отдано.
     
     
  • 6.45, Аноним (20), 03:00, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну здесь идея в том что alias может указывать на любой каталог, независимо от того где расположен корень веб-сервера. Иначе толку от этой директивы немного.
     
     
  • 7.46, mistiq (ok), 03:07, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ну здесь идея в том что alias может указывать на любой каталог,
    > независимо от того где расположен корень веб-сервера. Иначе толку от этой
    > директивы немного.

    Я понимаю идею, но если возникает необходимость перехода где-то внутри ФС вне рута веб сервера это выглядит как недостаток архитектуры веб приложения.
    Как вариант разрешить симлинки из рута веба в другие каталоги, но не более. То есть, альяс ограничен рутом и строго симлинками.

     
     
  • 8.53, 1 (??), 09:30, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну а дальше он по этим симлинкам и вылезет - P S Приплетание С тут по принцип... текст свёрнут, показать
     
  • 7.89, Аноньимъ (ok), 14:34, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ну здесь идея в том что alias может указывать на любой каталог

    Ни на какой каталог он не должен указывать.
    Урла это уникальный адрес ресурса.
    ФС это системная база данных.
    То что и там и там по случайности есть слэши в имени ресурсов и запросов к БД не означает что можно брать куски юрлы и на прямую херачить их в виде запросов к системной БД.

    Так же как нельзя подобным образом из юрлы куски текста в sql запрос пихать.

     
  • 7.92, Аноним (128), 16:29, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ну здесь идея в том что alias может указывать на любой каталог,

    Ну так и пусть указывает, но путь пускай получает уже после обработки УРЛ (т.е. без "..").

     
  • 6.49, Sw00p aka Jerom (?), 07:10, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >тогда ничего левого и не будет отдано

    Ну раз всем разрешено читать файл /етц/пассвд, то в чем проблема , если его прочтет по запросу нгинкс? А нуда ибешники про юзер энум затрубят? Юзайте тогда нормальные пермишен костили вроде селинуксов, фаполисид, аппармоуры и т.д. колясок :)

     
  • 5.88, Аноним (94), 14:27, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Нормализация пути происходит на уровне location, и на его уровне неизвестно, будет внутри alias или что-то еще, это отдельный модуль. Две точки в пути без слеша - вполне валидный кейс. А со слешом там и не пройдёт.

    А alias - это просто конкатенация. Отсутствие слеша в location и присутствие в другом - это выстрел в ногу. Делать же двойную проверку - это зря жечь электричество.

    По хорошему, тут нужен валидатор конфигов, который бы на такую конструкцию выдавал предупреждение.

     
  • 4.44, Аноньимъ (ok), 01:45, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Вот я ровно о том же и говорю.

    Типичный пример плохого инженерного подхода, когда гвозди забивают умеют, но никакого понимания цели и причины нет, важен так сказать процесс.

    Другой пример стандарт С++.

    Третий пример, недавно затонувшая субмарина Титан.

     

  • 1.47, Аноним (47), 05:21, 06/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Это не баг, а фича. Закрывайте каталоги другими доступными средствами. Например, не устанавливая nginx в основную систему или совсем не устанавливая.
     
  • 1.50, arisu (ok), 07:54, 06/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    «кодироваеть умею, для людей не умею.» потому что алиас для не-каталога должен или быть другой командой, или требовать обязательной опции-уточнения.

    вообще, сишников нельзя выпускать из клетки, и уж тем более нельзя позволять им дизайнить что-то для end user'а. потому что у них повальный вывих мозга: «надо сделать так, чтобы вероятность ошибки пользователя была велика, и можно было самого пользователя потом обвинить.»

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

     
  • 1.57, Аноним (58), 09:43, 06/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Зачем сервер запускать без контейнера, лол
     
     
  • 2.91, Аноним (20), 15:42, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да вы без контейнеров скоро сложить два числа не сможете. Понапридумывали дерьма и сделали вид что без него нельзя жить.
     

  • 1.63, Ilya Indigo (ok), 10:30, 06/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Написать location без / на конце, даже без alias, это нужно умудрится как-то сделать, даже не знаю как...
     
     
  • 2.75, Тот_ещё_аноним (ok), 13:07, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Для нескольких персонажей выше - это норма)
     
  • 2.79, Капитан Очевидность (?), 13:37, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    location ~* ^/(?:xmlrpc\.php|wp-links-opml\.php|wp-config\.php|wp-config-sample\.php|wp-comments-post\.php|readme\.html|license\.txt)$ {
            deny all;
    }

    Ты правда думаешь, что тут нужен / в конце?
    Что ты несешь вообще?
    Локейшены бывают ОЧЕНЬ разные, они могут быть с трэйлинг-слэшем и без него, по обстоятельствам
    А вот если это локейшен с алиасом, то должен быть трэйлинг-слэш

     
     
  • 3.80, Ilya Indigo (ok), 13:48, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Имел ввиду, забыл уточнить, локейшены в которых явно подразумевается одна конкретная директория!

    А локейшены и такими бывают, точнее должны быть в нормальных сайтах на фреймвёрках.
    <code>
    location = /index.php
    {
    return 404;
    }
    location ^~ /.
    {
    return 404;
    }
    location /
    {
    try_files $uri @php;
    }
    location @php
    {
    fastcgi_read_timeout 30s;
    fastcgi_param SCRIPT_FILENAME $document_root/index.php;
    include fastcgi_params;
    fastcgi_pass unix:/run/php-fpm.sock;
    }
    </code>
    Где index.php едиинственный скрипт в $document_root а всё остальное статика.
    А весь код лежит за пределами $document_root и недоступен nginx-у.

     
     
  • 4.102, Капитан Очевидность (?), 18:24, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Имел ввиду, забыл уточнить, локейшены в которых явно подразумевается одна конкретная директория!

    А, ну с таким уточнением да, становится твоя фраза более логичной

     
  • 2.99, Аноним (28), 18:11, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Какой-то айти-шаманизм. Как догадаться, что в конце location должен быть /? Правильно, никак. Про важность слэша в конце location можно узнать только прочитав и запомнив документацию. При чём, подход неинтуитивен, т.к. на Юниксе cd directory и cd directory/ приводит к одинаковому рельзультату. Выходит, что дизайн языка конфигурации создавался не для людей, а для ChatGPT и для тех, у кого должностные обязанности состоят из двух слов: настройка Nginx.
     
     
  • 3.103, Ilya Indigo (ok), 18:27, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Документацию конечно же нужно читать, без неё что угодно НЕ понятно будет!
    location без регулярки означает строку начинающуюся с, а не равенство.
    Это удобно и зачастую именно это требуется в кофигурации.
     
     
  • 4.132, Аноним (28), 21:07, 07/07/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если ты когда-либо читал документацию на большие системы типа Nginx, ты бы замет... большой текст свёрнут, показать
     

  • 1.67, Пряник (?), 11:28, 06/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Почему nginx -t не проверяет этого?
     
     
  • 2.77, Ilya Indigo (ok), 13:21, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Почему nginx -t не проверяет этого?

    Потому что /images нормальный допустимый шаблон для обработки запросов вида, например для
    /images-user.html /images-company.html и/или /images-user/ /images-company/.
    Например чтобы установить особые условия кеша.
    Только для них не ставят псевдонимы.

     
     
  • 3.138, пох. (?), 00:47, 08/07/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    "Только для них не ставят псевдонимы."
    Именно.
    Их ставят как раз для прямого доступа к файлам (обычно это что-то большое) лежащим в стороне от вебни.

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

    Но нет. Изобретатель nginx изобретал его под свой локалхост и больше ни под что. А все дальнейшие улучшизмы не смеют затрагивать корней.

    Поэтому пока "if is evil" и тому подобная мерзость не будет заменено на "мы переработали структуру конфига и им снова можно пользоваться без чорной магии" - надо просто выбирать другой софт. И уже много-много лет назад.

     

  • 1.96, targitaj (?), 17:47, 06/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А что будет в случае наоборот? location закрыт знаком /, а alias - нет. Это норм или надо править?
     
     
  • 2.106, Аноним (106), 21:49, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Это наверное не дыра, но будет ли это работать, так как нужно?
     

  • 1.112, Neon (??), 03:58, 07/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Какие то детские ошибки)
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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