# Lab: 2FA broken logic

## Mô tả

Xác thực hai yếu tố của phòng thí nghiệm này dễ bị tấn công do logic sai sót. Để giải quyết phòng thí nghiệm, hãy&#x20;

* Thông tin đăng nhập của bạn:`wiener:peter`
* Tên người dùng của nạn nhân:`carlos`

**Mục tiêu: Truy cập trang tài khoản của Carlos.**

## Phân tích

Đăng nhập vào tài khoản đã có và nhập security code

Không còn lỗ hổng trên URL khi ta thay đổi id&#x20;

<figure><img src="https://2733582939-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnePar6ARbmno0NDI8DDU%2Fuploads%2FTu7skhmdcUdWAGToz8fa%2Fimage.png?alt=media&#x26;token=5923117c-eb6b-4204-af86-4ef64867f7c2" alt=""><figcaption></figcaption></figure>

Sẽ tự chuyển hướng sang trang login

<figure><img src="https://2733582939-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnePar6ARbmno0NDI8DDU%2Fuploads%2F2EJKjHoUytiNU6NQj0j8%2Fimage.png?alt=media&#x26;token=00d75b3c-78c9-4961-b89b-10b75efd9840" alt=""><figcaption></figcaption></figure>

Kiểm tra Proxy bằng Burp Suite, ta thấy có một request GET /login2 dùng để yêu cầu gửi mail chứa security code sau khi đã xác thực user. Gửi request này đến Repeater. Thử thay đổi tên người dùng t

<figure><img src="https://2733582939-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnePar6ARbmno0NDI8DDU%2Fuploads%2FVQDW6aA9K16es0MNDRzv%2Fimage.png?alt=media&#x26;token=45c6e387-170d-4148-89b1-e91f9b499e05" alt=""><figcaption></figcaption></figure>

Ứng dụng trả về Incorrect security code, đây là một lỗ hổng

## Giải pháp

Gửi `GET /login2`đến Burp Repeater. Thay đổi giá trị của tham số `verify` thành `carlos`và gửi yêu cầu. Điều này đảm bảo rằng mã 2FA tạm thời được tạo cho Carlos.

Mở response trong trình duyệt và gửi một mã xác thực sai. Gửi `POST /login2` request tới Intruder để , tiếp tục thay đổi giá trị của tham số `verify` thành `carlos` để brute force mfa-code của người dùng carlos (xóa phần session)

<figure><img src="https://2733582939-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnePar6ARbmno0NDI8DDU%2Fuploads%2FWsYFbVzWg4kp0rr7E2Gq%2Fimage.png?alt=media&#x26;token=a970f5c7-4b7f-4752-a7fc-38da43786d26" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2733582939-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnePar6ARbmno0NDI8DDU%2Fuploads%2FXnkKr8YxHBQRhnMwyumP%2Fimage.png?alt=media&#x26;token=997ed3c1-f59c-40d8-ba6a-8c01da29d729" alt=""><figcaption></figcaption></figure>

Tìm phản hồi cho status code 302

Ở đây để nhanh chóng có thể sử dụng Turbo Intruder

<figure><img src="https://2733582939-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnePar6ARbmno0NDI8DDU%2Fuploads%2F3lMo71sfhIizX2v00QNS%2Fimage.png?alt=media&#x26;token=c59b1705-a664-42b2-9690-ceeffe5b0af0" alt=""><figcaption></figcaption></figure>

Payload có thể tạo bằng <https://numbergenerator.org/>

<figure><img src="https://2733582939-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnePar6ARbmno0NDI8DDU%2Fuploads%2FNdp1ckVt5m2Ru40Nx1pZ%2Fimage.png?alt=media&#x26;token=3fbbe5dc-beaa-426b-8671-d83ab98bcc77" alt=""><figcaption></figcaption></figure>

Tìm phản hồi có Status code 302

<figure><img src="https://2733582939-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnePar6ARbmno0NDI8DDU%2Fuploads%2Fwx1x5IzsjAlMOlphf857%2Fimage.png?alt=media&#x26;token=60eb85bf-195e-4c56-b7bd-8286f45d4f72" alt=""><figcaption></figcaption></figure>

Mở phản hồi trong trình duyệt

<figure><img src="https://2733582939-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnePar6ARbmno0NDI8DDU%2Fuploads%2F2LMFtsaOQX4xKEyPIhty%2Fimage.png?alt=media&#x26;token=179b5821-fcc1-4a8b-a8dd-ff74c5603ee8" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2733582939-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnePar6ARbmno0NDI8DDU%2Fuploads%2FgA4HNwjnYGnlmHcRUbHl%2Fimage.png?alt=media&#x26;token=b7a05450-f933-4114-b43a-902f7642d25e" alt=""><figcaption></figcaption></figure>
