
Notas de estudo estruturadas cobrindo fundamentos de hacking web, vulnerabilidades comuns, técnicas de teste de penetração e segurança defensiva, com listas selecionadas de ferramentas e recursos.
Durante o estudo de segurança web, o autor sentiu profundamente que o conhecimento relacionado é vasto e uma grande parte dos pontos de conhecimento são relativamente dispersos. Sem um panorama relativamente claro como referência, isso pode trazer alguns encargos desnecessários ao aprendizado. Portanto, após obter um entendimento superficial da segurança web, tentei organizar e registrar alguns conhecimentos e ideias, resultando nestas notas. Espero que possam ajudar os entusiastas de segurança cibernética que estão começando.
Antes de começar, uma questão que precisa ser esclarecida é: o que é segurança web? Uma definição mais direta é que segurança web abrange uma série de conteúdos de segurança relacionados a sites, aplicações web e serviços web. Em outras palavras, segurança web se preocupa com a segurança da camada de aplicação, especialmente no que diz respeito a conteúdo relacionado a redes. O que precisa ser estudado em segurança web inclui principalmente o próprio protocolo de rede, as características das aplicações web e os problemas de segurança correspondentes, e o uso de várias ferramentas. Na verdade, esses conteúdos são bastante fragmentados e complexos. Tentamos desmembrar e reorganizar o conteúdo relevante com a seguinte lógica.
A história serve como espelho; para entender o presente, precisamos conhecer o desenvolvimento. O que deve ser compreendido primeiro é a história da área. Para entender melhor por que a segurança web é como é hoje e para onde as várias pesquisas estão evoluindo, é necessário ter conhecimento da evolução das tecnologias de aplicação web e das técnicas de ataque e defesa em redes. Esta é a primeira parte das notas, que aborda o desenvolvimento e evolução da tecnologia web e os conceitos básicos na área de segurança.
Depois de ter uma compreensão geral da história da segurança web, pode-se começar a estudar os fundamentos das redes de computadores. Esta é a segunda parte do texto, que introduz alguns conhecimentos básicos sobre redes de computadores. Considerando que as tecnologias de bancos de dados em rede, servidores web, etc., têm muitos ramos e evoluem rapidamente, este texto apresenta apenas os protocolos de rede, omitindo a parte de aplicações de rede. Na verdade, seria desejável ter conhecimento sobre várias linguagens de programação, frameworks de aplicação web, serviços de rede e características de sistemas operacionais.
Com uma base sólida, podemos focar em conteúdos mais específicos de ataque e defesa, como o estudo de um tipo específico de vulnerabilidade, as características de uma determinada linguagem ou aplicação e seus problemas de segurança correspondentes. Esta é a terceira parte do texto. Seguindo a ordem comum de um teste de intrusão, esta parte aborda de forma simples a coleta de informações, vulnerabilidades web comuns, linguagens e frameworks comuns, e técnicas de penetração em redes internas. Geralmente, entra-se em contato com esses conteúdos ao começar a aprender testes de intrusão. Além disso, como a nuvem está se tornando uma parte importante do mundo web, seja usando nuvens públicas para construir serviços leves ou nuvens privadas, tecnologias como contêineres estão se tornando cada vez mais importantes.
A quarta parte retorna à perspectiva de defesa, descrevendo a construção de equipes de segurança, inteligência de ameaças e controle de riscos, e também aborda tecnologias mais detalhadas como honeypots e rastreamento de origem.
Finalmente, a parte mais aplicada, focada na introdução e uso de ferramentas. Esta parte do texto recomenda algumas listas de ferramentas e recursos, e também arquiva alguns conteúdos que ainda não foram classificados.
Acima está a organização geral do conteúdo. Na verdade, ao estudar, pode-se começar por um ponto específico e aprender em espiral. Pode ser tratado tanto como um todo quanto como um manual.
O autor tem conhecimento limitado e energia restrita; é inevitável que haja alguns erros ou partes incompletas na organização das notas, que estão sendo gradualmente corrigidas e complementadas. Se houver omissões ou erros, os leitores são bem-vindos a apontá-los por meio de Issue ou PR. Fico muito grato.
Durante a compilação das notas, muitos materiais foram consultados e citados, com links deixados no final. Agradeço muito aos autores dos artigos por compartilharem. A versão online das notas pode ser visualizada clicando aqui.
git clone https://github.com/LyleMi/Learn-Web-Hacking.git
cd Learn-Web-Hacking
pip install sphinx sphinx-rtd-theme
make html
Se houver qualquer pergunta, opinião ou sugestão, sinta-se à vontade para abrir uma Issue ou PR. Fico muito grato.
Agradeço a todos os contribuidores.
O projeto é publicado sob a licença CC0 1.0. O texto completo pode ser visualizado clicando aqui.
O conteúdo das notas foi coletado e organizado a partir de informações de código aberto. As técnicas mencionadas são apenas para uso em cenários legais, como aprendizado e testes autorizados. Por razões de segurança pública, alguns conteúdos não foram incluídos. Os leitores devem cumprir as leis e regulamentos, como a "Lei de Segurança Cibernética da República Popular da China" e o "Regulamento de Proteção de Software de Computador da República Popular da China", e não realizar qualquer forma de teste em alvos não autorizados.