Performance de un dirbuster en PHP?

Iniciado por @XSStringManolo, 23 Diciembre 2019, 01:16 AM

0 Miembros y 1 Visitante están viendo este tema.

@XSStringManolo

Estoy mirando de como hacer un dirbuster en PHP en base a un diccionario y a fuerza bruta.

Mi idea es:
Cliente hace request de los dominios a los cuales buscarles directorios y urls de diccionarios al servidor.
POST dominio=https://www.google.com diccionario=https://raw.githubusercontent.com/dustyfresh/dictionaries/master/DirBuster-Lists/directory-list-2.3-big.txt

Las dudas que me surgen son las siguientes en base a performance?
-Cual es la forma más eficiente de leer el diccionario? Lo leo entero y lo guardo en una variable con file_get_contents?

-Cuantas peticiones puedo hacer simultaneamente? file_get_contents es más rápido que Curl, pero por lo que leí por ahí, Curl permite hacer peticiones multihilo. Me renta entonces usar Curl sobre file_get_contents? Cual es la forma más eficiente?

-Cual es el límite de peticiones simultaneas? Puedo attachear timeouts a las peticiones y recibir un callback? Ya que solo me interesa saber si es status 200, y descargarlo en caso de que la respuesta sea de poco tamaño para scrapear las urls que contiene en busca de directorios. Si por ejemplo pesa 4 gigas, no me renta descargar todo el contenido. Es esto posible?

-Debo leer 100 directorios e ir haciendo peticiones de forma que siempre tenga 100 requests simultaneas?

Aclarar que voy a usar hostings gratuitos, entonces no puedo utilizar un cliente C++ en el servidor para hacer las peticiones o utilizar PHP desde cli.

Gracias.



AlbertoBSD

Pues lo ideal seria descargar el archivo al servidor local wget o algún otro método, para posteriormente de ahí ir leyendo línea a línea del mismo. Dependiendo del tamaño del archivo y de los límites de memoria del servidor lo ideal seria leer solo linea por linea he ir guardadlo los offset de cada linea o en su defecto irlos guardando en una base de datos.

Todo depende de lo que necesites si necesitas mas performance, sacrificas memoria y si quieres ahorrar memoria sacrificas performance.

Eso si, el archivo tiene que estar localmente, si no ni perfermance ni memoria.

Saludos!
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

@XSStringManolo

Cita de: AlbertoBSD en 23 Diciembre 2019, 01:31 AM
Pues lo ideal seria descargar el archivo al servidor local wget o algún otro método, para posteriormente de ahí ir leyendo línea a línea del mismo. Dependiendo del tamaño del archivo y de los límites de memoria del servidor lo ideal seria leer solo linea por linea he ir guardadlo los offset de cada linea o en su defecto irlos guardando en una base de datos.

Todo depende de lo que necesites si necesitas mas performance, sacrificas memoria y si quieres ahorrar memoria sacrificas performance.

Eso si, el archivo tiene que estar localmente, si no ni perfermance ni memoria.

Saludos!

Del tema de las requests sabes algo?