Tabla de Contenidos

CURL

curl es una herramienta de línea de comandos que se utiliza para realizar solicitudes de transferencia de datos a través de diversos protocolos de red. Su nombre es una abreviatura de “Client for URLs” (Cliente para URLs). La función principal de curl es transferir datos con URL:

Algunos de los protocolos que curl admite incluyen:

Por ejemplo, este comando realizará una solicitud GET a la URL proporcionada y mostrará la respuesta en la salida estándar:

Descargar archivos con curl

Si queremos descargar un archivo con curl, utilizamos el parámetro -o de la siguiente forma por ejemplo ante un archivo de github donde tengamos visión de raw:

curl https://raw.githubusercontent.com/Maalfer/ReverseShell_Python/main/atacante.py -o atacante.py

Verificar código de estado con curl

Podemos comprobar si una petición se ha llevado correctamente o no, utilizando curl con los siguientes parámetros:

curl -s -o /dev/null -w "%{http_code}\n" https://www.google.com/

Subir archivos con curl

Por ejemplo, si deseas subir un archivo llamado imagen.jpg a la URL http://ejemplo.com/subir, ejecutarías el siguiente comando:

curl -F "file=@/ruta/completa/a/imagen.jpg" http://ejemplo.com/subir

También podemos subir ficheros con curl a través del protocolo FTP de la siguiente manera:

curl -T hola.pdf ftp://192.168.0.20/home/mario/ -u mario:123123

Enviar credenciales con curl / autenticarse con curl

curl -X POST 192.63.12.3/login.php -d 'name=mario&password=123123' -v

Existen varias diferencias importantes entre las peticiones HTTP HEAD, POST y GET:

En resumen, la principal diferencia entre estas peticiones HTTP radica en su objetivo. La petición HEAD se utiliza para obtener información sobre la respuesta HTTP, mientras que las peticiones GET y POST se utilizan para recuperar o enviar información de y hacia un servidor web. La petición GET se utiliza para solicitar información existente, mientras que la petición POST se utiliza para enviar información y crear nuevos recursos en un servidor web.

Parámetro path-as-is de Curl

El parámetro –path-as-is evita que curl modifique la URL original y la utiliza tal como se especificó en la línea de comandos. Esto es útil cuando se necesita acceder a un recurso que tiene una URL compleja o no estándar como en el siguiente caso, donde estamos solicitando un archivo interno de la máquina:

Por ejemplo, si se desea solicitar un recurso con la URLhttp://example.com/my%20path/?query=foo&bar=baz”, pero curl modifica la URL automáticamente para que sea “http://example.com/my%2520path/%3Fquery=foo&bar=baz”, el uso del parámetro –path-as-is asegura que la solicitud se realiza con la URL original sin modificar.