notes
What is authentication?
process of verifying the identity of a given user or client
making sure that they really are who they claim to be
Three authentication factors
Knowledge factors - something you
know
such as password or the answer to a security questionPossession factors - something you
have
, a physical object such as mobile phone, or security tokenInherence factors - something you
are
or do, such as biometrics or patterns of behavior
Authentication Vs Authorization
authentication - process of verifying that a user really is
who they claim to be
authorization - verifying whether a user is
allowed to do something
How do authentication vulnerabilities arise?
authentication mechanisms are weak as they fail to adequately protect against brute-force attacks
logic flaws or poor coding allow the authentication mechanisms to be bypassed (broken authentication)
Vulnerabilities in password-based login
Brute-force attacks
brute-force usernames
brute-force passwords
username enumeration
attempting to brute-force a login page, pay particular attention to any differences in
Status Code
Error Messages
Response times
flawed brute-force protection
locking the account if they make too many failed login attempts
blocking remote user's IP if they make too many login attempts in quick succession
Vulnerabilities in multi-factor authentication
bypassing two-factor authentication
if the user is first prompted to enter a password, and then prompted to enter a verification code on a separate page, the user is effectively in a logged in state before they have entered the verification code
test whether you can directly skip to 'logged-in only' pages after completing the first authentication step
flawed two-factore verification logic
sometimes, after a user has completed the initial login step, the website doesn't adequately verify that the same user is completing the second step
eg - user logins with normal credentials in first step
assigned a cookie that relates to their account, before being taken to the second step of the login process
when submitting the verification code, the request uses this cookie to determine which account the user is trying to access
attacker could log in using their own credentials but then change the value of the account cookie to any arbitary username when submitting the verification code
Vulnerabilities in other authentication mechanism
Keeping users logged in
this functionality is often implemented by genrating a 'remember me' token of some kind, which is then stroed in a persistent cookie
processing this cookie may allows you to bypass the entire login process
so, it is best practice for this cookie to be impractical to guess
Resetting user passwords
Sending passwords by email
Resetting passwords using a URL
Changing user passwords
sometimes, if the username is provided in a hidden field, an attacker might be able to edit this value in the request to target arbitary users and can be exploited to enumerate usernames, and brute-force passwords
Last updated