Buenas a todos, hace unos días para llevar a cabo un proyecto necesitaba una herramienta tipo spider que me permitiese recuperar todas las URL de un sitio Web. Para esta tarea como sabéis hay numerosas aplicaciones, pero en este caso lo que necesitaba era averiguar cuales de todas esas URL contenían parámetros pasados por GET en la propia URL, para probar si esos parámetros eran vulnerables a algún tipo de inyección de código (en concreto para este caso SQL Injection).
Para esta tarea decidí desarrollar un pequeño programa en python, el cual os dejo a continuación.
La aplicación se ejecuta como cualquier programa en python, tendréis que pasarle un argumento con la URL del site que se auditará:
La aplicación irá recorriendo todas las páginas que vaya encontrando e irá navegando por ellas recursivamente. Cada vez que encuentra una URL con una "?", la identificará como una posible inyección para que inmediatamente podamos analizar dicha URL de manera manual:
A continuación os dejo el código fuente:
Muyyy buena genio!!! está de lujo esta tool! muchas gracias =D
ResponderEliminarHola, en que version de Python esta escrito el codigo?
ResponderEliminarjuanmar: Hola, en que version de Python esta escrito el codigo?En la 2.7.1saludos
ResponderEliminarok, yo tengo la 2.7.2 y al importarlo me da error en algunas lineas, sera por la version?Me parece interesante el codigo , Felicitaciones :)En lo personal mas adelenate me gustaria hacer algo parecido , que seria automatizar el /robots.txt que se pone en la URL , en algunos casos te da los directorios de dicho sitio web , existen algunos sitios webs que dejan bastante informacion.Saludos.
ResponderEliminar@juanmar si te entendi bien, lo de que quieres hacer ya esta echo por otros, no te dejo el url porque no se si esta permitido dejar url a paginas externas, si te interesa mandame un mensaje privado y te paso el link
ResponderEliminarEl spider solo busca en los hrefs, no las urls que pueden contener parámetros por GET....
ResponderEliminarUna cosa, estoy intentando depurar el script y me siga dando errores en linea 35, creo que te falta ahi algopuedes decirme la solucion?gracias
ResponderEliminardoomed: Una cosa, estoy intentando depurar el script y me siga dando errores en linea 35, creo que te falta ahi algopuedes decirme la solucion?graciasHola, imagino que ya os habréis dado cuenta, ahora lo modifico en el artículo, al copiaros el código fuente en el post se ha convertido el carácter ">" a "& g t;". Modificar esto y os debería funcionar.saludos!
ResponderEliminarok.me interesa.
ResponderEliminarme da error en en "f"f=urllib2.urlopen(page)
ResponderEliminarHola, como teníais algún problema al copiar y pegar el código desde el post, os he dejado mejor el fichero en nuestro servidor. Os lo podéis descargar desde aquí: http://www.fluproject.hol.es/descargasDirectas/codigos/spider.pyHe hecho una mejora al código, sacando los print por pantalla de la función, para que podáis portar el código a otros programas.
ResponderEliminarjuanmar: me da error en en “f”f=urllib2.urlopen(page)Dime qué error te da, a ver si puedo ayudarte.saludos!
ResponderEliminarjuanmar: ok, yo tengo la 2.7.2 y al importarlo me da error en algunas lineas, sera por la version?Me parece interesante el codigo , Felicitaciones En lo personal mas adelenate me gustaria hacer algo parecido , que seria automatizar el /robots.txt que se pone en la URL , en algunos casos te da los directorios de dicho sitio web , existen algunos sitios webs que dejan bastante informacion.Saludos.El error esta porque aparece >Segun vi el codigo, eso lo tenes que cambiar por !Seguramente al publicar el articulo se modificó el simbolo de admiracion.Saludos!
ResponderEliminarPuedes colgar páginas de ayuda externas, lo único que es probable que el filtro anti-spam del blog lo detecte como spam y lo bloquee. En tal caso avísanos con un email y te lo publicamos sin problemas.gracias, saludos!
ResponderEliminarxust4m4n: El spider solo busca en los hrefs, no las urls que pueden contener parámetros por GET….Eso es, era la funcionalidad para la que necesitaba el script, pero puedes modificarlo para añadir esa otra funcionalidad fácilmente cambiándolo en la siguiente expresión regular:re.finditer('href="(.*?)[\'"]', code)saludos
ResponderEliminarJuanan ha trabajado a destajo hoy con los comentarios eso es innegable.el comienzo de python en flu-project no ha dejado indiferencias! buen trabajo Juanan!
ResponderEliminarmuchas gracias! ya tira bien!
ResponderEliminarHaora me funciona el codigocomo introdusco la pagina?ha hacer "http://www.paginaweb.org" no pasa nada
ResponderEliminarjuanmar: Haora me funciona el codigocomo introdusco la pagina?ha hacer “http://www.paginaweb.org” no pasa nadaAsí: spider.py http://www.paginaweb.orgEl programa tarda un rato en analizar todos los links del Sitio Web. Si finaliza y no te aparece nada (y no ha habido algún tipo de problema), es que el Sitio Web no contiene hrefs con parámetros pasados por GET.saludos
ResponderEliminarjuanmar: ok.me interesa.Aquí tienes el enlace que nos ha pasado @Andriy:http://www.securitybydefault.com/2011/08/checkmyrobots-manten-raya-los-robots-y.htmlsaludos!
ResponderEliminar[...] ¿Qué tal se os dan las inyecciones? Buscando SQL Injections: spider para buscar URLs con parámetros por GET [...]
ResponderEliminarHola!Cuando leí tu post me gustó la idea base y comencé a desarrollar una herramienta, GoLISMERO, un spider web con una idea parecida a la de tu script, pero con más posibilidades.Espero que os sirva de ayuda:https://code.google.com/p/golismero/Un saludo
ResponderEliminarDani: Hola!Cuando leí tu post me gustó la idea base y comencé a desarrollar una herramienta, GoLISMERO, un spider web con una idea parecida a la de tu script, pero con más posibilidades.Espero que os sirva de ayuda:https://code.google.com/p/golismero/Un saludoA ver si saco un ratillo para estudiarlo en profundidad, pero echándole un vistazo por encima tiene muy buena pinta, enhorabuena :)Si quieres puedes escribir un post para el blog hablando de golismero y lo publicamos para darle más difusiónsaludos, gracias por compartirlo con nosotros :)
ResponderEliminar[...] con el objetivo de analizar el alcance del sitio con distintas finalidades. Hace varios meses, desarrollamos en Flu Project un spider en python cuyo fin era localizar páginas de una web que utilizasen parámetros de tipo id, que [...]
ResponderEliminar