Punycode Email IDN Homograph Attack For Account Takeover
1
Register Normal Account Go to target signup page and create account with normal email like security@gmail.com Use Burp Collaborator domain as callback: security@gmail.com.bcrkly6yl8ke552nzjt7jtu52w8nwdk2.oastify.co Log in to validate account works, then logout
2
Generate Punycode Email Use Punycode generator (punycoder.com or custom script) to replace domain chars, "a" with "à" in gmail.com Result: security@gmàil.com → security@xn--gml-hoa.com.bcrkly6yl8ke552nzjt7jtu52w8nwdk2.oastify.com
3
Intercept Signup with Punycode Turn on Burp interception Attempt signup with Punycode email, intercept request and manually replace email field with Punycode version (browsers auto-encode, so modify manually) Forward request Check response for "Email already exists" (indicates normalization treats both as same, confirming vuln)
4
Trigger Password Reset with Punycode Go to forgot password page Intercept request, enter Punycode email: security@gmàil.com.bcrkly6yl8ke552nzjt7jtu52w8nwdk2.oastify.comForward and monitor Burp Collaborator for SMTP callback with reset link
5
Reset and Takeover Copy reset link from Collaborator, open in browser and set new password Logout, then login with original normal email (security@gmail.com) and new password Access confirmed: account hijacked Advanced: Punycode in Username (Local-Part) Repeat steps but modify username part: signup with ṡecurity@gmail.com (Punycode: xn--security-7ca@gmail.com) Intercept/modify as before For reset, use normal username: security@gmail.com If callback received, reset and login with original full email for zero-click takeover Bonus: If 2FA enabled, register Punycode variant, setup attacker's 2FA, then use it to access victim's original email account via normalization flaw
A Punycode Path to Account Takeover
1
Navigate to the target website’s sign-up page
2
Register a new account using an email address you control, for example via Burp Collaborator
XYZ@gmail.com.<collaborator-domain>
3
Complete the registration process successfully
4
Log out of the account
5
Go to the Forgot Password / password reset page
6
Intercept the password reset request using Burp Suite
7
Modify the email domain in the request by replacing the ASCII character with a visually similar Unicode character (IDN homograph), for example
@gmail.com
to
@gmàil.com
8
Forward the modified request
9
Observe that the password reset email is sent to the attacker-controlled inbox (Burp Collaborator)
10
Open the password reset link received in the attacker inbox
11
Set a new password for the account
12
Log in using the new password
13
Confirm that full access to the victim account is obtained, resulting in account takeover