Теперь доступно новая версия обновления dи «cURL 7.71.0», в котором они сосредоточились на решении двух серьезных ошибок. которые позволяют пароли доступа, а также возможность перезаписывать файлы. Поэтому делается приглашение перейти на новую версию.
Для тех, кто не знает эта утилита, они должны знать, что служит для приема и отправки данных по сети, предоставляет возможность гибко формировать запрос, задавая такие параметры, как cookie, user_agent, referer и любой другой заголовок.
завить поддерживает HTTP, HTTPS, HTTP / 2.0, HTTP / 3, SMTP, IMAP, POP3, Telnet, FTP, LDAP, RTSP, RTMP и другие сетевые протоколы. В то же время было выпущено параллельное обновление для библиотеки libcurl, которая предоставляет API для использования всех функций curl в программах на таких языках, как C, Perl, PHP, Python.
Основные изменения в cURL 7.71.0
Эта новая версия является обновлением и, как упоминалось в начале, решает две ошибки, а именно:
- Уязвимость CVE-2020-8177- Это позволяет злоумышленнику перезаписать локальный файл в системе при доступе к контролируемому серверу атаки. Проблема проявляется только при одновременном использовании параметров «-J» («–remote-header-name») и «-i» («–head»).
Выбор "-J" позволяет сохранить файл с указанным именем в заголовке «Content-Disposition». Sу меня уже есть файл с таким именемпрограмма curl обычно отказывается перезаписывать, но если вариант "-I" присутствует, логика проверки нарушена и перезаписана файл (проверка выполняется на этапе приема тела ответа, но с опцией «-i» заголовки HTTP отправляются первыми и успевают сохраниться до обработки тела ответа). В файл записываются только заголовки HTTP.
- Уязвимость CVE-2020-8169: это могло вызвать утечку на DNS-сервере некоторых паролей для доступа к сайту (Basic, Digest, NTLM и т. д.).
При использовании символа «@» в пароле, который также используется в качестве разделителя пароля в URL-адресе, когда запускается перенаправление HTTP, curl отправит часть пароля после символа «@» вместе с доменом для определения название.
Например, если вы укажете пароль «passw @ passw» и имя пользователя «user», curl сгенерирует URL «https: // user: passw @ passw @ example.com / path» вместо «https: user: passw. % 40passw@example.com/path "и отправьте запрос на разрешение хоста" pasww@example.com "вместо" example.com ".
Проблема проявляется при включении поддержки перенаправителей HTTP. Относительный (отключен через CURLOPT_FOLLOWLOCATION).
В случае использования традиционного DNS, провайдер DNS и злоумышленник могут найти информацию о части пароля, который может перехватывать транзитный сетевой трафик (даже если исходный запрос был сделан по HTTPS, так как DNS-трафик не зашифрован). При использовании DNS через HTTPS (DoH) утечка ограничивается заявлением DoH.
Наконец, еще одно из изменений, интегрированных в новую версию, - это добавление опции «–retry-all-errors» для повторных попыток выполнения операций при возникновении ошибки.
Как установить cURL в Linux?
Для тех, кто заинтересован в возможности установить эту новую версию cURL Они могут сделать это, загрузив исходный код и скомпилировав его.
Для этого первое, что мы собираемся сделать, это загрузить последний пакет cURL с помощью терминала, в нем напечатайте:
wget https://curl.haxx.se/download/curl-7.71.0.tar.xz
Затем мы собираемся распаковать загруженный пакет с помощью:
tar -xzvf curl-7.71.0.tar.xz
Входим во вновь созданную папку с:
cd curl-7.71.0
Входим как root с помощью:
sudo su
И набираем следующее:
./configure --prefix=/usr \ --disable-static \ --enable-threaded-resolver \ --with-ca-path=/etc/ssl/certs &&
make make install && rm -rf docs/examples/.deps &&
find docs \( -name Makefile\* -o -name \*.1 -o -name \*.3 \) -exec rm {} \; &&
install -v -d -m755 /usr/share/doc/curl-7.71.0 && cp -v -R docs/* /usr/share/doc/curl-7.71.0
Наконец, мы можем проверить версию с помощью:
curl --version
Если вы хотите узнать об этом больше, вы можете проконсультироваться по следующей ссылке.
Будьте первым, чтобы комментировать