Information Gatheringhttpftphttpstransferdownloaduploadproxyssl

curl

Command line tool for transferring data with URL syntax. Supports multiple protocols including HTTP, HTTPS, FTP, and more.

Description

curl is a versatile command line tool for transferring data using URL syntax. It supports a wide range of protocols such as DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET, and TFTP. Key features include SSL certificates, HTTP POST and PUT, FTP uploading, HTTP form-based upload, proxies, cookies, various authentication methods (Basic, Digest, NTLM, Negotiate, Kerberos), file transfer resume, and proxy tunneling.

Common use cases involve downloading files, sending HTTP requests, interacting with web services, and testing network connectivity. It is widely used in scripting, automation, and penetration testing for banner grabbing and web enumeration.

The package includes wcurl, a simple wrapper for easy file downloads, and related libraries like libcurl4t64 for OpenSSL flavour and libcurl3t64-gnutls for GnuTLS flavour, along with development files and documentation.

How It Works

curl operates by parsing URL syntax and initiating data transfers over supported protocols. It handles connections, authentication, SSL/TLS encryption via certificates, proxy tunneling, and resume capabilities. Features like HTTP POST/PUT send data payloads, while options control output, headers, silence, and error handling. Underlying libcurl library manages low-level protocol implementations, IPv6 compatibility, threading, and features like HTTP/2, HTTP/3 via nghttp2/nghttp3 and ngtcp2.

Installation

bash
sudo apt install curl

Flags

-d, --data <data>HTTP POST data
-f, --failFail fast with no output on HTTP errors
-h, --help <subject>Get help for commands
-o, --output <file>Write to file instead of stdout
-O, --remote-nameWrite output to file named as remote file
-i, --show-headersShow response headers in output
-s, --silentSilent mode
-T, --upload-file <file>Transfer local FILE to destination

Examples

Display help menu with usage and available options
curl -h
Transfer a URL with specified options
curl [options...] <url>
List all options available
curl --help all
Get overview of HTTP category options
curl --help http
Download file(s) using wcurl wrapper
wcurl <URL>
Download URL to specified output path
wcurl -o <PATH> <URL>
Print curl command without executing
wcurl --dry-run <URL>
Updated 2026-04-16kali.org ↗