{"id":46,"date":"2025-06-14T09:28:41","date_gmt":"2025-06-14T09:28:41","guid":{"rendered":"https:\/\/pare.sh\/blog\/?p=46"},"modified":"2025-06-15T15:43:25","modified_gmt":"2025-06-15T15:43:25","slug":"subdomain-takeover-on-ngrok-now-fixed-by-ngrok","status":"publish","type":"post","link":"https:\/\/pare.sh\/blog\/subdomain-takeover-on-ngrok-now-fixed-by-ngrok\/","title":{"rendered":"Subdomain Takeover on Ngrok (Now Fixed by Ngrok)"},"content":{"rendered":"\n<h4 class=\"wp-block-heading\"><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Subdomain Takeovers<\/strong> are a common but often overlooked vulnerability that can have serious consequences. They occur when a subdomain points to an external service (like GitHub Pages, Heroku, or Ngrok) that is no longer in use, but the DNS record is still active. This opens the door for an attacker to claim that resource and serve content under your domain, potentially leading to phishing, brand abuse, or worse.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><br>When visiting a vulnerable subdomain like:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>http:\/\/subdomain.example.com<br><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">You\u2019d see this error:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>Tunnel subdomain.example.com not found<br><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This usually means the subdomain has a dangling CNAME, pointing to a service that\u2019s no longer active.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you inspect the DNS records, you might find a CNAME entry like:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>xxxxxxxx.cname.us.ngrok.io<br><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This indicates that the domain was using Ngrok\u2019s custom subdomain feature\u2014which becomes exploitable when the tunnel is no longer active.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\">Exploiting the Takeover (Prior to Fix)<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">To exploit this (when it was still open), you&#8217;d need a paid Ngrok account, since custom subdomains are only available for premium users:<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\">\u2705Step-by-Step Exploitation<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Create a Ngrok account<\/strong><br>\u2192 <a class=\"\" href=\"https:\/\/ngrok.com\/\">Sign up at ngrok.com<\/a><\/li>\n\n\n\n<li><strong>Set up Ngrok locally<\/strong><br>\u2192 Follow the guide: <a class=\"\" href=\"https:\/\/dashboard.ngrok.com\/get-started\">https:\/\/dashboard.ngrok.com\/get-started<\/a><\/li>\n\n\n\n<li><strong>Reserve the subdomain<\/strong><br>\u2192 Go to <a class=\"\" href=\"https:\/\/dashboard.ngrok.com\/reserved\">Ngrok Reserved Domains<\/a><br>\u2192 Enter the vulnerable subdomain (e.g., <code>subdomain.example.com<\/code>) and click <strong>Reserve<\/strong><br><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"51\" class=\"wp-image-47\" style=\"width: 150px;\" src=\"https:\/\/pare.sh\/blog\/wp-content\/uploads\/2025\/06\/56417056-5ddc5e00-62b0-11e9-9ebc-39acf7254a2b.png\" alt=\"\" srcset=\"https:\/\/pare.sh\/blog\/wp-content\/uploads\/2025\/06\/56417056-5ddc5e00-62b0-11e9-9ebc-39acf7254a2b.png 806w, https:\/\/pare.sh\/blog\/wp-content\/uploads\/2025\/06\/56417056-5ddc5e00-62b0-11e9-9ebc-39acf7254a2b-300x102.png 300w, https:\/\/pare.sh\/blog\/wp-content\/uploads\/2025\/06\/56417056-5ddc5e00-62b0-11e9-9ebc-39acf7254a2b-768x262.png 768w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><br><\/li>\n\n\n\n<li><strong>Run the tunnel<\/strong> on your local machine: <br><code>ngrok http -region=us -hostname=subdomain.example.com 80<\/code> <\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"749\" height=\"287\" src=\"https:\/\/pare.sh\/blog\/wp-content\/uploads\/2025\/06\/image-2.png\" alt=\"\" class=\"wp-image-49\" srcset=\"https:\/\/pare.sh\/blog\/wp-content\/uploads\/2025\/06\/image-2.png 749w, https:\/\/pare.sh\/blog\/wp-content\/uploads\/2025\/06\/image-2-300x115.png 300w\" sizes=\"auto, (max-width: 749px) 100vw, 749px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><br>Now, the subdomain is yours. Any request to <code>subdomain.example.com<\/code> would be routed to your local server via Ngrok.<br><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"665\" height=\"77\" src=\"https:\/\/pare.sh\/blog\/wp-content\/uploads\/2025\/06\/image-3.png\" alt=\"\" class=\"wp-image-50\" srcset=\"https:\/\/pare.sh\/blog\/wp-content\/uploads\/2025\/06\/image-3.png 665w, https:\/\/pare.sh\/blog\/wp-content\/uploads\/2025\/06\/image-3-300x35.png 300w\" sizes=\"auto, (max-width: 665px) 100vw, 665px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><br><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\">Official References<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a class=\"\" href=\"https:\/\/ngrok.com\/docs\">Ngrok Docs<\/a><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Current Status<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This issue has now been <strong>resolved by Ngrok<\/strong>. Attempting to reserve a subdomain that previously belonged to another user or domain now results in an error or restriction.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Disclaimer:<\/strong><br>This post is purely educational. Subdomain takeover testing should always be conducted on systems you own or have explicit permission to test.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Subdomain Takeovers are a common but often overlooked vulnerability that can have serious consequences. They occur when a subdomain points [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[10],"tags":[],"class_list":["post-46","post","type-post","status-publish","format-standard","hentry","category-web"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Subdomain Takeovers are a common but often overlooked vulnerability that can have serious consequences. They occur when a subdomain points to an external service (like GitHub Pages, Heroku, or Ngrok) that is no longer in use, but the DNS record is still active. This opens the door for an attacker to claim that resource and\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"pparmar\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/pare.sh\/blog\/subdomain-takeover-on-ngrok-now-fixed-by-ngrok\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Writeups - My WordPress Blog\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Subdomain Takeover on Ngrok (Now Fixed by Ngrok) - Writeups\" \/>\n\t\t<meta property=\"og:description\" content=\"Subdomain Takeovers are a common but often overlooked vulnerability that can have serious consequences. They occur when a subdomain points to an external service (like GitHub Pages, Heroku, or Ngrok) that is no longer in use, but the DNS record is still active. This opens the door for an attacker to claim that resource and\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/pare.sh\/blog\/subdomain-takeover-on-ngrok-now-fixed-by-ngrok\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/pare.sh\/blog\/wp-content\/uploads\/2025\/06\/ext-custom-logo-1749892156167.webp\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/pare.sh\/blog\/wp-content\/uploads\/2025\/06\/ext-custom-logo-1749892156167.webp\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2025-06-14T09:28:41+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2025-06-15T15:43:25+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Subdomain Takeover on Ngrok (Now Fixed by Ngrok) - Writeups\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Subdomain Takeovers are a common but often overlooked vulnerability that can have serious consequences. They occur when a subdomain points to an external service (like GitHub Pages, Heroku, or Ngrok) that is no longer in use, but the DNS record is still active. This opens the door for an attacker to claim that resource and\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/pare.sh\/blog\/wp-content\/uploads\/2025\/06\/ext-custom-logo-1749892156167.webp\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/pare.sh\\\/blog\\\/subdomain-takeover-on-ngrok-now-fixed-by-ngrok\\\/#blogposting\",\"name\":\"Subdomain Takeover on Ngrok (Now Fixed by Ngrok) - Writeups\",\"headline\":\"Subdomain Takeover on Ngrok (Now Fixed by Ngrok)\",\"author\":{\"@id\":\"https:\\\/\\\/pare.sh\\\/blog\\\/author\\\/pparmar\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/pare.sh\\\/blog\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/pare.sh\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/56417056-5ddc5e00-62b0-11e9-9ebc-39acf7254a2b.png\",\"@id\":\"https:\\\/\\\/pare.sh\\\/blog\\\/subdomain-takeover-on-ngrok-now-fixed-by-ngrok\\\/#articleImage\",\"width\":806,\"height\":275},\"datePublished\":\"2025-06-14T09:28:41+00:00\",\"dateModified\":\"2025-06-15T15:43:25+00:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/pare.sh\\\/blog\\\/subdomain-takeover-on-ngrok-now-fixed-by-ngrok\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/pare.sh\\\/blog\\\/subdomain-takeover-on-ngrok-now-fixed-by-ngrok\\\/#webpage\"},\"articleSection\":\"Web\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/pare.sh\\\/blog\\\/subdomain-takeover-on-ngrok-now-fixed-by-ngrok\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/pare.sh\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/pare.sh\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/pare.sh\\\/blog\\\/category\\\/web\\\/#listItem\",\"name\":\"Web\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/pare.sh\\\/blog\\\/category\\\/web\\\/#listItem\",\"position\":2,\"name\":\"Web\",\"item\":\"https:\\\/\\\/pare.sh\\\/blog\\\/category\\\/web\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/pare.sh\\\/blog\\\/subdomain-takeover-on-ngrok-now-fixed-by-ngrok\\\/#listItem\",\"name\":\"Subdomain Takeover on Ngrok (Now Fixed by Ngrok)\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/pare.sh\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/pare.sh\\\/blog\\\/subdomain-takeover-on-ngrok-now-fixed-by-ngrok\\\/#listItem\",\"position\":3,\"name\":\"Subdomain Takeover on Ngrok (Now Fixed by Ngrok)\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/pare.sh\\\/blog\\\/category\\\/web\\\/#listItem\",\"name\":\"Web\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/pare.sh\\\/blog\\\/#organization\",\"name\":\"Writeups\",\"description\":\"My WordPress Blog\",\"url\":\"https:\\\/\\\/pare.sh\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/pare.sh\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/ext-custom-logo-1749892156167.webp\",\"@id\":\"https:\\\/\\\/pare.sh\\\/blog\\\/subdomain-takeover-on-ngrok-now-fixed-by-ngrok\\\/#organizationLogo\",\"width\":256,\"height\":256},\"image\":{\"@id\":\"https:\\\/\\\/pare.sh\\\/blog\\\/subdomain-takeover-on-ngrok-now-fixed-by-ngrok\\\/#organizationLogo\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/pare.sh\\\/blog\\\/author\\\/pparmar\\\/#author\",\"url\":\"https:\\\/\\\/pare.sh\\\/blog\\\/author\\\/pparmar\\\/\",\"name\":\"pparmar\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/pare.sh\\\/blog\\\/subdomain-takeover-on-ngrok-now-fixed-by-ngrok\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2d67a8573bea169cb0b6c421c4c1d46c7bc3222911154183b49c87d6c0d0bb08?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"pparmar\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/pare.sh\\\/blog\\\/subdomain-takeover-on-ngrok-now-fixed-by-ngrok\\\/#webpage\",\"url\":\"https:\\\/\\\/pare.sh\\\/blog\\\/subdomain-takeover-on-ngrok-now-fixed-by-ngrok\\\/\",\"name\":\"Subdomain Takeover on Ngrok (Now Fixed by Ngrok) - Writeups\",\"description\":\"Subdomain Takeovers are a common but often overlooked vulnerability that can have serious consequences. They occur when a subdomain points to an external service (like GitHub Pages, Heroku, or Ngrok) that is no longer in use, but the DNS record is still active. This opens the door for an attacker to claim that resource and\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/pare.sh\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/pare.sh\\\/blog\\\/subdomain-takeover-on-ngrok-now-fixed-by-ngrok\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/pare.sh\\\/blog\\\/author\\\/pparmar\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/pare.sh\\\/blog\\\/author\\\/pparmar\\\/#author\"},\"datePublished\":\"2025-06-14T09:28:41+00:00\",\"dateModified\":\"2025-06-15T15:43:25+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/pare.sh\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/pare.sh\\\/blog\\\/\",\"name\":\"Writeups\",\"description\":\"My WordPress Blog\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/pare.sh\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Subdomain Takeover on Ngrok (Now Fixed by Ngrok) - Writeups","description":"Subdomain Takeovers are a common but often overlooked vulnerability that can have serious consequences. They occur when a subdomain points to an external service (like GitHub Pages, Heroku, or Ngrok) that is no longer in use, but the DNS record is still active. This opens the door for an attacker to claim that resource and","canonical_url":"https:\/\/pare.sh\/blog\/subdomain-takeover-on-ngrok-now-fixed-by-ngrok\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/pare.sh\/blog\/subdomain-takeover-on-ngrok-now-fixed-by-ngrok\/#blogposting","name":"Subdomain Takeover on Ngrok (Now Fixed by Ngrok) - Writeups","headline":"Subdomain Takeover on Ngrok (Now Fixed by Ngrok)","author":{"@id":"https:\/\/pare.sh\/blog\/author\/pparmar\/#author"},"publisher":{"@id":"https:\/\/pare.sh\/blog\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/pare.sh\/blog\/wp-content\/uploads\/2025\/06\/56417056-5ddc5e00-62b0-11e9-9ebc-39acf7254a2b.png","@id":"https:\/\/pare.sh\/blog\/subdomain-takeover-on-ngrok-now-fixed-by-ngrok\/#articleImage","width":806,"height":275},"datePublished":"2025-06-14T09:28:41+00:00","dateModified":"2025-06-15T15:43:25+00:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/pare.sh\/blog\/subdomain-takeover-on-ngrok-now-fixed-by-ngrok\/#webpage"},"isPartOf":{"@id":"https:\/\/pare.sh\/blog\/subdomain-takeover-on-ngrok-now-fixed-by-ngrok\/#webpage"},"articleSection":"Web"},{"@type":"BreadcrumbList","@id":"https:\/\/pare.sh\/blog\/subdomain-takeover-on-ngrok-now-fixed-by-ngrok\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/pare.sh\/blog#listItem","position":1,"name":"Home","item":"https:\/\/pare.sh\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/pare.sh\/blog\/category\/web\/#listItem","name":"Web"}},{"@type":"ListItem","@id":"https:\/\/pare.sh\/blog\/category\/web\/#listItem","position":2,"name":"Web","item":"https:\/\/pare.sh\/blog\/category\/web\/","nextItem":{"@type":"ListItem","@id":"https:\/\/pare.sh\/blog\/subdomain-takeover-on-ngrok-now-fixed-by-ngrok\/#listItem","name":"Subdomain Takeover on Ngrok (Now Fixed by Ngrok)"},"previousItem":{"@type":"ListItem","@id":"https:\/\/pare.sh\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/pare.sh\/blog\/subdomain-takeover-on-ngrok-now-fixed-by-ngrok\/#listItem","position":3,"name":"Subdomain Takeover on Ngrok (Now Fixed by Ngrok)","previousItem":{"@type":"ListItem","@id":"https:\/\/pare.sh\/blog\/category\/web\/#listItem","name":"Web"}}]},{"@type":"Organization","@id":"https:\/\/pare.sh\/blog\/#organization","name":"Writeups","description":"My WordPress Blog","url":"https:\/\/pare.sh\/blog\/","logo":{"@type":"ImageObject","url":"https:\/\/pare.sh\/blog\/wp-content\/uploads\/2025\/06\/ext-custom-logo-1749892156167.webp","@id":"https:\/\/pare.sh\/blog\/subdomain-takeover-on-ngrok-now-fixed-by-ngrok\/#organizationLogo","width":256,"height":256},"image":{"@id":"https:\/\/pare.sh\/blog\/subdomain-takeover-on-ngrok-now-fixed-by-ngrok\/#organizationLogo"}},{"@type":"Person","@id":"https:\/\/pare.sh\/blog\/author\/pparmar\/#author","url":"https:\/\/pare.sh\/blog\/author\/pparmar\/","name":"pparmar","image":{"@type":"ImageObject","@id":"https:\/\/pare.sh\/blog\/subdomain-takeover-on-ngrok-now-fixed-by-ngrok\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/2d67a8573bea169cb0b6c421c4c1d46c7bc3222911154183b49c87d6c0d0bb08?s=96&d=mm&r=g","width":96,"height":96,"caption":"pparmar"}},{"@type":"WebPage","@id":"https:\/\/pare.sh\/blog\/subdomain-takeover-on-ngrok-now-fixed-by-ngrok\/#webpage","url":"https:\/\/pare.sh\/blog\/subdomain-takeover-on-ngrok-now-fixed-by-ngrok\/","name":"Subdomain Takeover on Ngrok (Now Fixed by Ngrok) - Writeups","description":"Subdomain Takeovers are a common but often overlooked vulnerability that can have serious consequences. They occur when a subdomain points to an external service (like GitHub Pages, Heroku, or Ngrok) that is no longer in use, but the DNS record is still active. This opens the door for an attacker to claim that resource and","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/pare.sh\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/pare.sh\/blog\/subdomain-takeover-on-ngrok-now-fixed-by-ngrok\/#breadcrumblist"},"author":{"@id":"https:\/\/pare.sh\/blog\/author\/pparmar\/#author"},"creator":{"@id":"https:\/\/pare.sh\/blog\/author\/pparmar\/#author"},"datePublished":"2025-06-14T09:28:41+00:00","dateModified":"2025-06-15T15:43:25+00:00"},{"@type":"WebSite","@id":"https:\/\/pare.sh\/blog\/#website","url":"https:\/\/pare.sh\/blog\/","name":"Writeups","description":"My WordPress Blog","inLanguage":"en-US","publisher":{"@id":"https:\/\/pare.sh\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"Writeups - My WordPress Blog","og:type":"article","og:title":"Subdomain Takeover on Ngrok (Now Fixed by Ngrok) - Writeups","og:description":"Subdomain Takeovers are a common but often overlooked vulnerability that can have serious consequences. They occur when a subdomain points to an external service (like GitHub Pages, Heroku, or Ngrok) that is no longer in use, but the DNS record is still active. This opens the door for an attacker to claim that resource and","og:url":"https:\/\/pare.sh\/blog\/subdomain-takeover-on-ngrok-now-fixed-by-ngrok\/","og:image":"https:\/\/pare.sh\/blog\/wp-content\/uploads\/2025\/06\/ext-custom-logo-1749892156167.webp","og:image:secure_url":"https:\/\/pare.sh\/blog\/wp-content\/uploads\/2025\/06\/ext-custom-logo-1749892156167.webp","article:published_time":"2025-06-14T09:28:41+00:00","article:modified_time":"2025-06-15T15:43:25+00:00","twitter:card":"summary_large_image","twitter:title":"Subdomain Takeover on Ngrok (Now Fixed by Ngrok) - Writeups","twitter:description":"Subdomain Takeovers are a common but often overlooked vulnerability that can have serious consequences. They occur when a subdomain points to an external service (like GitHub Pages, Heroku, or Ngrok) that is no longer in use, but the DNS record is still active. This opens the door for an attacker to claim that resource and","twitter:image":"https:\/\/pare.sh\/blog\/wp-content\/uploads\/2025\/06\/ext-custom-logo-1749892156167.webp"},"aioseo_meta_data":{"post_id":"46","title":null,"description":null,"keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"BlogPosting","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2025-06-14 09:28:42","updated":"2025-06-15 15:50:47","seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/pare.sh\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/pare.sh\/blog\/category\/web\/\" title=\"Web\">Web<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tSubdomain Takeover on Ngrok (Now Fixed by Ngrok)\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/pare.sh\/blog"},{"label":"Web","link":"https:\/\/pare.sh\/blog\/category\/web\/"},{"label":"Subdomain Takeover on Ngrok (Now Fixed by Ngrok)","link":"https:\/\/pare.sh\/blog\/subdomain-takeover-on-ngrok-now-fixed-by-ngrok\/"}],"_links":{"self":[{"href":"https:\/\/pare.sh\/blog\/wp-json\/wp\/v2\/posts\/46","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pare.sh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pare.sh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pare.sh\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pare.sh\/blog\/wp-json\/wp\/v2\/comments?post=46"}],"version-history":[{"count":2,"href":"https:\/\/pare.sh\/blog\/wp-json\/wp\/v2\/posts\/46\/revisions"}],"predecessor-version":[{"id":78,"href":"https:\/\/pare.sh\/blog\/wp-json\/wp\/v2\/posts\/46\/revisions\/78"}],"wp:attachment":[{"href":"https:\/\/pare.sh\/blog\/wp-json\/wp\/v2\/media?parent=46"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pare.sh\/blog\/wp-json\/wp\/v2\/categories?post=46"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pare.sh\/blog\/wp-json\/wp\/v2\/tags?post=46"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}