用於透過網路接收和傳送資料的實用程式的新版本 — ,它提供了透過指定 cookie、user_agent、referer 和任何其他標頭等參數來靈活形成請求的能力。 cURL支援HTTP、HTTPS、HTTP/2.0、HTTP/3、SMTP、IMAP、POP3、Telnet、FTP、LDAP、RTSP、RTMP等網路協定。同時,並行開發的libcurl函式庫也發布了更新,該函式庫提供了在C、Perl、PHP、Python等語言的程式中使用所有curl函數的API。
新版本新增了「--retry-all-errors」選項,以便在發生任何錯誤時重試操作,並修復了兩個漏洞:
- 允許您在存取攻擊者控制的伺服器時覆蓋系統中的本機檔案。只有同時使用“-J”(“--remote-header-name”)和“-i”(“--head”)選項時才會出現此問題。 “-J”選項可讓您使用標題中指定的名稱儲存檔案。
「內容-處置」。如果已經存在同名文件,curl 程式通常會拒絕覆蓋,但如果存在「-i」選項,則會違反驗證邏輯並覆蓋文件(驗證是在接收回應主體的階段進行的,但使用「-i」選項時,會先輸出 HTTP 標頭,並且在處理回應主體之前有時間保存它們)。僅將 HTTP 標頭寫入文件,但伺服器可以傳回任意資料而不是標頭,並且它們將寫入。 - 可能會導致一些網站存取密碼(Basic、Digest、NTLM等)洩漏給DNS伺服器。當在密碼中使用「@」符號(該符號也用作 URL 中的密碼分隔符號)時,當觸發 HTTP 重定向時,curl 會將「@」符號後的密碼部分與網域一起傳送以解析名稱。例如,如果指定密碼為“passw@rd123”,使用者名稱為“dan”,curl 將產生 URL“https://dan:passw@rd123@example.com/path”而不是“https://dan:passw%40rd123@example.com/path”,並發送請求以解析主機“exrd123@exle.comrdXNUMX”。
當啟用對相對 HTTP 重定向器的支援(透過 CURLOPT_FOLLOWLOCATION 停用)時會出現此問題。在使用傳統 DNS 的情況下,DNS 提供者和能夠攔截傳輸網路流量的攻擊者可以找到部分密碼的資訊(即使原始請求是透過 HTTPS 發送的,因為 DNS 流量未加密)。當使用 DNS-over-HTTPS (DoH) 時,洩漏受到 DoH 業者的限制。
來源: opennet.ru
