Bird
Raised Fist0
Testing Fundamentalstesting~10 mins

Authentication vulnerability testing in Testing Fundamentals - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to check if the login function correctly rejects empty passwords.

Testing Fundamentals
def test_empty_password():
    result = login(username='user1', password=[1])
    assert result == False
Drag options to blanks, or click blank then click option'
A''
BNone
C'password'
D' '
Attempts:
3 left
💡 Hint
Common Mistakes
Using None instead of empty string
Using a space character instead of empty string
2fill in blank
medium

Complete the code to test if the system locks the account after 3 failed login attempts.

Testing Fundamentals
def test_account_lock():
    for _ in range(3):
        login(username='user2', password='wrong')
    locked = check_account_locked(username='user2')
    assert locked == [1]
Drag options to blanks, or click blank then click option'
A'locked'
BNone
CFalse
DTrue
Attempts:
3 left
💡 Hint
Common Mistakes
Expecting False instead of True
Using string 'locked' instead of boolean
3fill in blank
hard

Fix the error in the test that checks if password reset tokens expire after 1 hour.

Testing Fundamentals
def test_token_expiry():
    token = generate_reset_token(user_id=5)
    time.sleep([1])
    expired = is_token_expired(token)
    assert expired == True
Drag options to blanks, or click blank then click option'
A60
B1800
C3600
D7200
Attempts:
3 left
💡 Hint
Common Mistakes
Using 60 seconds instead of 3600
Using 1800 or 7200 seconds incorrectly
4fill in blank
hard

Fill both blanks to create a test that verifies the system rejects SQL injection attempts in the username field.

Testing Fundamentals
def test_sql_injection():
    malicious_input = "admin' OR 1=1 --"
    result = login(username=malicious_input, password=[1])
    assert result == [2]
Drag options to blanks, or click blank then click option'
A'any_password'
BTrue
CFalse
D''
Attempts:
3 left
💡 Hint
Common Mistakes
Expecting True instead of False
Using empty string as password causing confusion
5fill in blank
hard

Fill all three blanks to write a test that checks if multi-factor authentication (MFA) is required after login.

Testing Fundamentals
def test_mfa_required():
    user = login(username='user3', password=[1])
    mfa_status = check_mfa_status(user_id=[2])
    assert mfa_status == [3]
Drag options to blanks, or click blank then click option'
A'securePass123'
B3
CTrue
DFalse
Attempts:
3 left
💡 Hint
Common Mistakes
Using incorrect user ID
Expecting MFA status False when it should be True

Practice

(1/5)
1. What is the main goal of authentication vulnerability testing?
easy
A. To ensure only authorized users can access the system
B. To check the system's speed under heavy load
C. To verify the user interface design
D. To test database backup procedures

Solution

  1. Step 1: Understand authentication testing purpose

    Authentication testing focuses on verifying that only real, authorized users can access the system.
  2. Step 2: Eliminate unrelated options

    Options about speed, UI, or backups do not relate to authentication vulnerabilities.
  3. Final Answer:

    To ensure only authorized users can access the system -> Option A
  4. Quick Check:

    Authentication goal = authorized access [OK]
Hint: Authentication testing checks who can enter the system [OK]
Common Mistakes:
  • Confusing authentication with performance testing
  • Thinking authentication tests UI elements
  • Mixing authentication with data backup checks
2. Which of the following is a correct way to test for weak password acceptance during authentication?
easy
A. Try logging in with a password like 12345
B. Check if the system allows SQL queries in the username field
C. Test if the login page loads within 2 seconds
D. Verify if the password reset email is sent

Solution

  1. Step 1: Identify weak password test

    Testing weak passwords means trying simple, common passwords like '12345' to see if the system accepts them.
  2. Step 2: Differentiate from other tests

    Options about SQL injection, performance, or email sending are different security or functionality tests.
  3. Final Answer:

    Try logging in with a password like 12345 -> Option A
  4. Quick Check:

    Weak password test = simple password try [OK]
Hint: Use simple passwords to check weak password acceptance [OK]
Common Mistakes:
  • Confusing weak password test with SQL injection test
  • Testing page speed instead of authentication strength
  • Mixing password reset with password strength testing
3. Consider this pseudocode for testing login lockout:
attempts = 0
while attempts < 5:
    login('user', 'wrongpass')
    attempts += 1
result = login('user', 'correctpass')

What should result be if the system locks the account after 5 failed attempts?
medium
A. Login successful
B. Account locked error
C. Password reset prompt
D. System crash

Solution

  1. Step 1: Understand lockout after failed attempts

    After 5 wrong tries, the system should lock the account to prevent further access.
  2. Step 2: Analyze final login attempt

    Even with the correct password, the account is locked, so login should fail with an account locked error.
  3. Final Answer:

    Account locked error -> Option B
  4. Quick Check:

    Lockout after 5 fails = account locked error [OK]
Hint: After 5 fails, login should block even correct passwords [OK]
Common Mistakes:
  • Expecting login success after lockout
  • Confusing reset prompt with lockout error
  • Assuming system crashes on failed login
4. You wrote this test to check multi-factor authentication (MFA):
login('user', 'correctpass')
// skip MFA step
access = check_access()

Why might this test fail to detect an authentication vulnerability?
medium
A. It uses the wrong username format
B. It checks access before login
C. It tests password reset instead of login
D. It skips the MFA step, so it doesn't test full authentication

Solution

  1. Step 1: Identify skipped MFA step

    The test logs in with correct password but skips the MFA step, missing a critical security check.
  2. Step 2: Understand impact on vulnerability detection

    Skipping MFA means the test won't catch if MFA is bypassed, leaving a vulnerability undetected.
  3. Final Answer:

    It skips the MFA step, so it doesn't test full authentication -> Option D
  4. Quick Check:

    Skipping MFA = incomplete authentication test [OK]
Hint: Always include MFA step to test full authentication [OK]
Common Mistakes:
  • Ignoring MFA step importance
  • Confusing username format with MFA issues
  • Mixing login and password reset tests
5. You want to test if the system properly prevents session fixation attacks after login. Which test approach is best?
hard
A. Verify if password reset emails are sent promptly
B. Try logging in with an invalid password multiple times
C. Check if session ID changes after successful login
D. Test if the login page uses HTTPS

Solution

  1. Step 1: Understand session fixation attack

    Session fixation means attacker forces a known session ID before login to hijack session.
  2. Step 2: Identify test to prevent session fixation

    The system should assign a new session ID after login to prevent fixation.
  3. Final Answer:

    Check if session ID changes after successful login -> Option C
  4. Quick Check:

    Session fixation test = session ID change after login [OK]
Hint: Session ID must change after login to stop fixation [OK]
Common Mistakes:
  • Confusing session fixation with password errors
  • Testing unrelated password reset or HTTPS only
  • Ignoring session ID behavior after login
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard