Pinned Tweet
None => Critical (10/10)
Second Order Account Takeover :
(attacker's VERIFIED email attached to attacker's UNVERIFIED email merged can takeover vicitm's VERIFIED account)
H1 : Closing as Self Account Takeover (none).
Me : Should I Takeover your Account?
H1 : Sure!
Me : BOOOM
Just submitted my first Smart Contract Bug to the DeFi Protocol, big thanks to Owen, @pashov & @gogotheauditor for their public audits.
Started testing program of 2017, out of 200 subdomains I chose the main app (which I always do) as it communicate with current API .
After 2 days of testing after office for 3 hours a day, I was able to find 5 Crtx, 3 High, 8 mediums.
All were related to API's I shared before
P1 in 1 minute for 4*$:
user can invite members with “org-member” role only
tried “org-xyz” = 400
Read JS files:
tried “org-super-admin” & “org-owner” = 401
Bypassed: “org-owner<space>“ = 200 BOOOM
API Leaked all Users Secrets:
/v1/org/users=403
/v1/org/admin/users=401
/v1.1/org/admin_id/users=200 (blank response)
/v1.1/org/admin_id/users?FUZZ=FUZZ
/v1.1/org/admin_id/users?Withrole=true 401(body unauthorised)
/v1.1/org/admin_id/users?With[mail,credit_card,apikey]=true BOOM
Organisation Users Complete Data leaked:
/api/users => 403
/api/users/all => 403 (json)
/api/users/all/name,email,data => 404
/api/users/all?FUZZ=FUZZ
/api/users/all?fields=name => 200 ( LOW ) only name was queryable
/api/users/all?access=all => BOOOM (email, credit_card etc)
ATO, collaboration with Support team:
Signed up => got 2 verification emails => used one => Account Activated
Email can’t be changed in the app, generate automated ticket to support team for changing email=> email changed to [email protected] and link only sent to victim
1/2
Tried to Login as [email protected] + old pass => both are correct but => “verify your email to log in”
(I don’t have access to victim’s email but the verification email, I didn’t use at start was game changer)
clicked on old verification email => got victim's verified Account
In February what ever I submitted was loss, I have been removed from my University Final Year Project due to low maintenance of Credit Hours of our so called reputed HEC bcz I was busy with bounties.
So far I would ( maybe ) repeat one more semester of degree👏.
Quick Account Takeover in a minute:
Auth Implementation:
After signup ,user change email to unsigned user, session refreshes ,email changed/confirmed to unsigned user.
change to [email protected] =>user exists
change to "[email protected]<SPACE>" or %20 =>200 ok
victim id got 2 passwords
Able to access Million+ emails $:
API Implementation:
/organization/:id => only org name shown
/organization/:id/users => 403 typical response
/organization/:id/users?get=newfolder => 403 with response & error msg (auth)
/organization/:id/users?get=users::metadata => BOOM
( chained "blocked user + Region based Authentication + Pass Reset Flaw to SECOND ORDER ATO")
And Triager thought
"Attacker would need access to victim's gmail account
to perform Second Order Account Takeover." haha
Closed N/A
Reopened
Critical 10
writeup coming Inshallah
Alhamdullilah, I was awarded x*$ bounty
got API call which leaked tons of email
appended "ACCESSTOPASS=true" => got pass
marked as HIGH :/ bcz the company is very POPULAR and have strong 2FA which couldn't be bypassed, so I couldn't login as victim nor can take it over
BUT
Alhamdullilah, I was awarded 4x$ bounty.
Single API call could leak 1MILLION+ users private data
I use these %03 %08 %10 %83 etc when I get 403 along with "403 in Api response".
means we are beyond WAF but some regex/restrictions/auth-checks are stopping us to get Users data.
weird ATO ..;
3 steps at signup: username, email, pass
email: [email protected]
username: [email protected]
verify email
login via email/pass = 200 ok
login via username/pass = it loads but never authenticates
( I could not log in as victim but the TRICKY part was
1/4
victim requests ticket from support.org.com/issues
support replied after 2 hours and sent long url to victim via email
victim clicks on it , there exists new/confirm password
after confirming, victim gets SUCCESS mail to log in, as his account is unlocked now
3/4
victim uses Email-or-Username/pass = 200 ok
attacker uses attacker-Username/pass = ATO
P.S support.org.com was out of scope but I just unintentionally used it and it could lead ATO of 600k users.
4/4







