
Notas de estudio estructuradas que cubren fundamentos de hacking web, vulnerabilidades comunes, técnicas de pruebas de penetración y seguridad defensiva, con listas seleccionadas de herramientas y recursos.
Durante el proceso de aprendizaje de la seguridad web, el autor sintió profundamente que el conocimiento relacionado es vasto y, en gran medida, disperso. Sin una referencia relativamente clara como guía, puede generar cargas innecesarias en el aprendizaje. Por lo tanto, después de obtener una comprensión superficial de la seguridad web, intenté organizar y registrar algunos conocimientos e ideas, formando finalmente estas notas, con la esperanza de ayudar a los entusiastas de la seguridad cibernética que están comenzando.
Antes de empezar, es necesario aclarar qué es la seguridad web. Una definición bastante directa es que la seguridad web abarca una serie de contenidos de seguridad que incluyen sitios web, aplicaciones web y servicios web; es decir, la seguridad web se centra en la seguridad de la capa de aplicación, especialmente en lo relacionado con la seguridad del contenido vinculado a la red. Los contenidos que se deben aprender en seguridad web incluyen principalmente: el protocolo de red en sí, las características de las aplicaciones web y los problemas de seguridad correspondientes, y el uso de diversas herramientas. En realidad, estos bloques de contenido son bastante fragmentados y complejos, por lo que se intenta desglosarlos y reorganizarlos bajo la siguiente lógica.
Tomando la historia como espejo, se puede conocer el auge y la caída; lo primero que se debe entender es la historia de desarrollo del campo. Para comprender mejor por qué el ámbito de la seguridad web es como es hoy y hacia dónde se dirigen las distintas investigaciones, es necesario conocer la historia de desarrollo y evolución de las tecnologías de aplicaciones web y de ataque y defensa en red. Esta es la primera parte de las notas, que explica el desarrollo y la evolución de la tecnología web, así como los conocimientos básicos en el campo de la seguridad.
Después de tener una comprensión general de la historia de la seguridad web, se puede comenzar a estudiar los fundamentos de las redes de computadoras, que es la segunda parte de este documento, donde se presentan algunos conocimientos básicos sobre redes de computadoras. Considerando que las bases de datos de red, los servidores web y otras tecnologías tienen muchas ramas y evolucionan rápidamente, este documento solo introduce los protocolos de red y omite las aplicaciones de red. En realidad, se debería tener algún conocimiento sobre diversos lenguajes de programación, marcos de aplicaciones web, servicios web y características de sistemas operativos.
Con una base establecida, se puede prestar atención a contenidos de ataque y defensa más detallados, como el estudio de un tipo de vulnerabilidad específica, las características de un lenguaje o aplicación y sus problemas de seguridad correspondientes. Esta es la tercera parte del documento. Siguiendo el orden común de las pruebas de penetración, esta parte aborda brevemente la recopilación de información, las vulnerabilidades web comunes, los lenguajes y marcos comunes, y las técnicas de penetración en redes internas. Normalmente, al comenzar a aprender pruebas de penetración, se entra en contacto con estos contenidos.
Al mismo tiempo, dado que la nube se ha convertido gradualmente en una parte importante del mundo web, ya sea utilizando nubes públicas para construir servicios ligeros o nubes privadas, tecnologías como los contenedores se han vuelto cada vez más importantes.
La cuarta parte regresa a la perspectiva de la defensa, describiendo aspectos como la construcción de equipos de seguridad, inteligencia de amenazas y control de riesgos, y también explica tecnologías más detalladas como honeypots y trazabilidad.
Finalmente, se presentan aplicaciones más concretas, principalmente la introducción y uso de herramientas. En esta parte del documento se recomiendan algunas herramientas y listas de recursos, y también se archivan algunos contenidos que aún no se han clasificado.
Lo anterior es la estructura general del contenido. En realidad, durante el estudio también se puede comenzar desde un punto específico y aprender en espiral. Puede servir tanto como un todo como un manual de consulta.
Debido a los conocimientos limitados y la energía restringida del autor, es inevitable que haya errores o partes incompletas en la organización de las notas, las cuales se están corrigiendo y complementando gradualmente. Si hay omisiones o errores, se agradece que los lectores los señalen mediante Issue o PR. Estaré muy agradecido.
Durante la redacción de las notas, se han consultado y extraído muchos materiales, dejando los enlaces correspondientes al final. Muchas gracias a los autores de los artículos por su intercambio. La versión en línea de las notas se puede consultar haciendo clic aquí.
git clone https://github.com/LyleMi/Learn-Web-Hacking.git
cd Learn-Web-Hacking
pip install sphinx sphinx-rtd-theme
make html
Si tiene algún problema, opinión o sugerencia, no dude en plantearlo a través de Issues o PRs. Se lo agradeceré enormemente.
Agradezco a todos los contribuyentes.
El proyecto se publica bajo la licencia CC0 1.0. Puede consultar el texto completo aquí.
El contenido de las notas se ha recopilado y organizado a partir de información de código abierto. Las técnicas mencionadas son solo para fines legítimos, como aprendizaje o pruebas autorizadas. Por razones de seguridad pública, no se ha incluido parte del contenido. Se ruega a los lectores que cumplan con la "Ley de Seguridad Cibernética de la República Popular China", la "Ley de Protección de Software de Computadoras de la República Popular China" y otras disposiciones legales, y no realicen ningún tipo de prueba sobre objetivos no autorizados.