Bypassing "You've requested your data the maximum number of times today." + "Please Verify an email address with snapchat to continue"
S
Snapchat
Submitted None
Actions:
Reported by
marwan
Vulnerability Details
Technical details and impact analysis
Hello Again , I found an 2 issues in `accounts.snapchat.com/accounts/downloadmydata`
- The first one : Bypassing The maximum number of Data Requests per day and download the Account Data any time the Attacker wants.
- The Second : Download The Account Data without any Email verification.
____
Requirements :
====================
- Snapchat Account.
- Software to intercept the request.
____
Summary: [First_Issue]
====================
According to This note in `Download My Data` Page
`Note: There is a limit to the number of times per day you can download your data. ` and when the user do more than 2 requests Per day another massage appear saying `" You've requested your data the maximum number of times today. Please try again tomorrow.` . By Using this Infected POST Method `POST /accounts/downloadmydata HTTP/1.1` the Attacker can Make Unlimited Data requests Per day at any time he want without any restriction and every time he do it the site creates new download link + send a massage to his email, He even Can run intruder Attack Without any TIMEOUT.
____
Steps To Produce[First_Issue][Text_vresion]
====================
// Note : The first three steps If the Attacker Doesn't Have the Request Yet. //
1- Login to Activated Account throw https://accounts.snapchat.com/accounts/login
2- Browse to https://accounts.snapchat.com/accounts/downloadmydata
3- Trun on Intercept and click on `Submit Request` Button now send the request to The Repeater, and Go back to the page and click the button again to reach the maximum times per day.
4- Now when you refresh the page a massage appears saying `"You've requested your data the maximum number of times today."`
5- Now go back to the repeater and repeat the request and every time the attacker repeat it a new download link generates + an email sent to his email.
{F124019}
____
Summary: [Second_Issue]
====================
According to [This Support page ](https://support.snapchat.com/en-US/article/download-my-data)
`"We take the security of your data very seriously, so you [must] have a verified email address to download your data."` , Well Using The Same POST Method The Attacker can replace The Cookie and the xsrf_token too his own then repeat the request and the download link will pop-up after refreshing the page., Even when the page have a massage says "Please Verify an email address with snapchat to continue".
____
Steps To Produce[Second_Issue][Text_vresion]
====================
1- The Attacker will use the same POST Method that already saved in the repeater / Used in Issue one /
```
POST /accounts/unlock HTTP/1.1
Host: accounts.snapchat.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://accounts.snapchat.com/
Cookie: xsrf_token=qGtjuAOo2-wbMhSh5pSleQ; sc-a-session=MDAxOjAwMTrcu9aIg5J6CABp9Jgq2spVOpj0cpFQFvfTGYYk8x1lEB6EK9Ii4_-ThiXAIwaPuGx0zNKyVJNVWpF5lV7ouGvH; sc-cookies-popup-dismissed=true; sc-a-nonce=a0979ef3-d7e0-4f53-8514-cc7984ebb8fa
DNT: 1
Connection: close
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Content-Length: 38
xsrf_token=AoaRT596SUeoTsWqXjzNPQvsZko
```
2- The Attacker will change The ` xsrf_token=kB5hC3JiO-au9yaO83iOTMqCvM4` & `cookie` But How he will get the New xsrf_token of the session ? Simply By logging in to his account then Browse to https://accounts.snapchat.com/accounts/unlock and turn on intercept then click The "Unblock" Button. Now the New cookie and the xsrf_token Will show up in the request Like This :
```
POST /accounts/unlock HTTP/1.1
Host: accounts.snapchat.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://accounts.snapchat.com/
Cookie: xsrf_token=9a8P2IH9ehlGqcMEoMdYhQ; sc-a-session=MDAxOjAwMTrSJkcOKBemtdP07Rus9rErOnjN2IzGZfERcnmbHdGfXAMoxOocWkm0VbnVJ-FopWhFYdiLF__mnp1BBrE; _ga=GA1.2.1347861360.1475026774; sc-cookies-popup-dismissed=true; sc-language=en-US; sc-a-nonce=d15d9f88-6fd0-4aeb-9ebe-d878f7eea3e0
Connection: close
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Content-Length: 38
xsrf_token=YdA7InrMTUVKsPDtuNtUB1HZHdI <=======
```
3- Now The will Attacker go Back to the First request and replace the xsrf_token and the cookie of the session with the right one.
4- Now Repeat The Request and refresh `Download My Data` Page you will see The `Zip` file link at the top Section / "Your Data is Ready " / and in the bottom you will see This Massage "Please Verify an email address with snapchat to continue".
{F124016}
____
POC Shows The two Issues With Full_Steps [Video]:
====================
https://youtu.be/fzHxL8QZ9AE
____
Other stuff|:
====================
So what if the Attacker Logout After Doing issue one , When he login again in a different day and use the same method the server will response with 302 Found , To fix this he will use the same Trick that he used in issue 2, By browsing to `accounts/unlock` etc etc." and do unlimited requests again.
____
Thank you for your patience
Best regards,
@Marwan
Report Details
Additional information and metadata
State
Closed
Substate
Resolved
Submitted
Weakness
Improper Authentication - Generic