Comando curl para hacker
Comando curl para hacker
Comando curl para hacker
curl. Comparte este articulo y síguenos para recibir más capítulos y cursos
gratis.
En esta guía veremos desde cero un tema tan amplio como es Linux y lo
haremos desde el punto de vista del hacking y la ciberseguridad.
Índice
¿Qué es libcurl?
Sintaxis:
Opciones de curl:
Protocolos de curl
Parámetro GET
Parámetros POST
Cookies
Buscando en la web
Descargando archivos
Interacción API
Cookies
curl Script
curl avanzado
Conclusión
Álvaro Chirou
Laprovittera Carlos
Telegram
TikTok
YouTube
¿Qué es libcurl?
libcurl es una biblioteca de transferencia de URL gratuita del lado del cliente.
Admite SMB, SMTP, SCP, RTMP, RTSP, POP3, MQTT, LDAP, Kerberos, IMAP,
HTTPS, túnel de proxy HTTP, HTTP PUT, HTTP POST, HTTP/1, Gopher, FTPS,
FTP, DICT y cookies. La biblioteca también admite autenticación de usuario
más contraseña, servidores proxy, LDAPS, certificados HTTPS, carga basada
en formularios HTTP, carga FTP, reanudación de transferencia de archivos,
TFTP, Telnet, SFTP y esquema de URL de archivo.
1.
De la sintaxis anterior,
URL:
http://site.{uno,dos,tres}.com
1.
Opciones de curl:
–crlfile <archivo>: Se utiliza para especificar (en formato PEM) una Lista de
Revocación de Certificados.
-f, –fail: se utiliza para hacer que curl falle silenciosamente ante errores del
servidor.
-G, –get: Se utiliza para especificar datos con la opción ?-d? que se utilizarán
en una solicitud HTTP GET en lugar de una solicitud POST.
-h, –help: Se utiliza para mostrar el manual de ayuda con una breve
descripción del uso y opciones de soporte.
Protocolos de curl
FTP (S): Curl admite el protocolo FTP mediante una gran cantidad de
herramientas y ajustes, con o sin TLS.
ARCHIVO: Nos permite escribir y leer el archivo local. Curl no permite
acceder remotamente a file://URL, pero funcionará cuando esté activo
en Microsoft Windows con el enfoque UNC nativo.
IMAP (S): Curl descarga los correos electrónicos para nosotros con el
protocolo de lectura de correo. Con o sin TLS.
TELNET: Al informar a curl que traiga una URL de telnet se inicia una
sesión interactiva en la que transfiere lo que lee por stdin y da como
resultado lo que le transfiere el servidor.
1.
curl --version
1.
Parámetro GET
curl http://10.10.10.10/index.php?sessionid=vn0g4d94rs09rgpqga85r9bnia
Parámetros POST
Cookies
cURL tiene un motor de cookies completo que se puede utilizar para
almacenar y cargar las cookies que se le pasan desde un servidor entre
sesiones:
$ curl -b "PHPSESSID=vn0g4d94rs09rgpqga85r9bnia"
http://10.10.10.10/home.php
$ curl -O http://10.10.10.10/payload.zip
curl -L http://10.10.10.10/profile.php
$ curl -i http://10.10.10.10/profile.php
$ curl -v http://10.10.10.10/profile.php
Buscando en la web
curl --list-only
Lista de contenidos del directorio http://s
"http://socialdance.stanford.edu/music/"
Descargando archivos
DOMINIO DESCRIPCIÓN
La abreviatura de curl --
curl -o
antes del parámetro de
Descargue un archivo
de https://core.ac.uk/do
curl -"https://core.ac.uk/download/pdf/71450528.pdf“ --
nombre. notas_hack.pdf
output notas_hack.pdf
Alternativamente, pued
outputcon >. Reemplaz
curl
Descargue archivos des
"https://en.wikipedia.org/wiki/{Linux,Windows,OSX}" --
nombre según el format
output "file_#1.html"
$ curl http://10.10.10.10/index.php?sessionid=vn0g4d94rs09rgpqga85r9bnia
Utilice estos comandos para realizar una solicitud GET mediante curl. Los
comandos curl GET pueden requerir que pases claves de autorización a
través de la bandera --header.
También puede realizar otras solicitudes HTTP como PUT y DELETE usando
curl y los indicadores apropiados.
DOMINIO DESCR
Obten
curl --request GET "https://achirou.com/" URL ht
del ter
curl -X Abrevi
Obten
curl --request GET
la view
'https://us-east-1.aws.data.mongodb-api.com/app/viewdata-kqgls/endpoin
propor
t/view?
parám
secret=ZAEOuvuEVLF5ll3kGP8FFkAj1GMKB8xu1jRx5D7210gXiZHa5agdbS
es un
q8pzbpI8Lo' --header 'Content-Type: application/json'
docum
Obten
la view
el enc
curl --request GET propor
'https://us-east-1.aws.data.mongodb-api.com/app/viewdata-kqgls/endpoin El resu
t/view? Mongo
secret=ZAEOuvuEVLF5ll3kGP8FFkAj1GMKB8xu1jRx5D7210gXiZHa5agdbS app w
q8pzbpI8Lo&id=636b5046e54ce11139fd8b96' --header 'Content-Type: conten
application/json' expect
{“_id”
”Alvar
everyo
Utilice estos comandos para realizar una solicitud POST utilizando curl. Los
comandos curl POST pueden requerir que el --headerindicador pase claves
de autorización.
También puede realizar otras solicitudes HTTP como PUT y DELETE usando
curl y los indicadores apropiados.
DOMINIO DESCRIPCIÓN
Interacción API
DOMINIO D
curl "https://gitlab.com/api/v4/projects" C
P
s
u
curl --header "Auth-Token:$DB_APP_TOKEN"
c
"https://example.com/api/v3/endpoint"
l
e
a
curl -H A
E
curl --data "Alvaro"
U
"https://docs.google.com/forms/d/e/[GoogleFormID]/formResponse"
e
curl -d A
DOMINIO D
E
curl --data "Alvaro" U
"https://docs.google.com/forms/d/e/[GoogleFormID]/formResponse" > e
output.html e
d
E
c
curl --form "[email protected]" --form "submit=Submit"
(
"https://docs.google.com/forms/d/e/[GoogleFormID]/formResponse" >
p
output.html
s
d
curl -F A
E
G
a
m
s
e
d
curl --form "entry.123456789=</Users/user1/Downloads/playlist.m3u" s
"https://docs.google.com/forms/d/e/[GoogleFormID]/formResponse" > d
output.html n
u
E
h
s
I
s
d
A
"[email protected]" c
"https://docs.google.com/forms/d/e/[GoogleFormID]/formResponse" r
e
D
m
curl --data d
"entry.123456789=</Users/user1/Downloads/playlist.m3u&emailAddress=test E
@myemail.com" y
"https://docs.google.com/forms/d/e/[GoogleFormID]/formResponse" <
L
t
E
a
c
d
s
i
curl --form "[email protected]" "https://www.iloveimg.com/resize-image" >
a
output.html
i
curl --form "input=/Users/user1/Downloads/pic1.jpg"
d
"https://www.iloveimg.com/resize-image" > output.html
t
p
d
E
l
i
Cookies
Parece que la sola acción de enviar cookies al sitio web de destino no afecta
el diseño HTML del sitio web. Sin embargo, curl admite los siguientes
métodos:
DOMINIO DESCRIPCIÓN
curl --cookie
Enviar “nombre=Alvaro” y "em
"name=Alvaro;[email protected]"
curl Script
Puede utilizar comandos curl en scripts bash. Aquí hay algunos scripts de
ejemplo que involucran comandos curl:
EJEMPLO DESCRIPCIÓN
curl avanzado
DOMINIO DESCRIPCIÓN
Concluyamos este artículo con un truco de solicitud POST curl. Proceda bajo
su propio riesgo.
DOMINIO DESCRIPCIÓN
curl https://achirou.com
1.
1.
cat alvaro.html
1.
curl -I https://achirou.com
Ahora que hemos cubierto la sintaxis básica y los casos de uso, aquí hay
algunas aplicaciones de hacking prácticas que son muy útiles en Hackthebox
o cajas CTF.
El siguiente script se puede utilizar para crear un servidor web con una URL
larga, realizar un seguimiento de los cambios en la salida y escribir la salida
en un archivo. Está destinado a ser una base para que construya un fuzzer
adecuado para su propósito usando cURL y Bash. Puede modificar la URL
para difuminar un URI o un parámetro GET.
#!/bin/bash
echo "args: <URL> <Start Length #> <End Length #> <Output Filepath>"
echo "---------------------------------"
do
fuzz=""
do
fuzz+="A"
done
#echo "${1}${fuzz}"
done
args: <URL> <Start Length #> <End Length #> <Output Filepath>
---------------------------------
1000 9 31 274 output.txt
...
...
#!/bin/bash
echo "args: <URL> <Start Length #> <End Length #> <Output Filepath>
<Post data: var=value&var2=valuefuzz>"
echo "---------------------------------"
do
fuzz=""
do
fuzz+="A"
done
done
args: <URL> <Start Length #> <End Length #> <Output Filepath>
---------------------------------
...
...
#!/bin/bash
echo $result
if [ "$result" == '0' ]
then
echo 'zero'
else
echo 'NOT zero'
fi
NOT zero
Está destinado a ser una base para que construya un fuzzer adecuado
usando cURL y Bash. Aquí hay un script bash que creé para un CTF para
validar una teoría que tenía sobre el uso del método PHP
mysql_real_escape_string:
#!/bin/bash
password=1234567890123456789012345678901234567890123456789012
345678901234567890123456789
fuzz="뽜’’AA"
name="‘¿’’AA"
ip="10.10.10.10"
echo
"============================================"
echo
"============================================"
curl -i -c 'cookies.txt' -d "email=${email}&password=$
{password}&type=Admin" "http://${ip}/index.php" 2>/dev/null | grep
'location'
echo
"============================================"
echo
"============================================"
echo
"============================================"
echo
"============================================"
rm cookies.txt
echo
"============================================"
echo
"============================================"
curl -i -c 'cookies.txt' -d "email=${email}&password=$
{password}&type=Admin" "http://${ip}/index.php" 2>/dev/null | grep
'location'
rm cookies.txt
curl –help
man curl
Resumen del artículo sobre el comando curl en Linux
Conclusión
curl es una herramienta potente y versátil que permite una amplia gama de
operaciones de red desde la línea de comandos. Su soporte para múltiples
protocolos, junto con su capacidad de integración en scripts Bash, lo hace
invaluable en tareas como administración de sistemas, desarrollo web y
pruebas de seguridad.
2. Realiza una solicitud GET a una URL usando curl y observa el código
HTML de la respuesta.
5. Usa curl para realizar una solicitud GET con una variable en la URL
(parámetro GET).
9. Realiza una solicitud HTTP a una API pública usando curl y obtén una
respuesta en formato JSON.