1. 2FA Password Reset
- Chúng ta vào source code của WebGoat ( LINK) và tìm đến File
AccountVerificationHelper.java
. Ta có thể thấy một hàm dùng để kiểm tra là hàmverifyAccount
:
public boolean verifyAccount(Integer userId, HashMap<String, String> submittedQuestions) { // short circuit if no questions are submitted if (submittedQuestions.entrySet().size() != secQuestionStore.get(verifyUserId).size()) { return false; } if (submittedQuestions.containsKey("secQuestion0") && !submittedQuestions .get("secQuestion0") .equals(secQuestionStore.get(verifyUserId).get("secQuestion0"))) { return false; } if (submittedQuestions.containsKey("secQuestion1") && !submittedQuestions .get("secQuestion1") .equals(secQuestionStore.get(verifyUserId).get("secQuestion1"))) { return false; } // else return true; }
Trong hàm này hệ thống sẽ kiểm tra giá trị secQuestion1
và secQuestion0
. Ta chỉ cần đổi tên 2 trường này thì sẽ hoàn thành bài này.
- Khởi động Brup Suite và mở WebGoat trên trình duyệt của Brup Suite:
- Bật Intercept trên Brup Suite, và nhập các thông tin trên WebGoat nhấn Submit. Ta sẽ thấy được một Request trên Brup Suite như sau:
- Thay đổi
secQuestion0
thànhsecQuestion3
,secQuestion1
thànhsecQuestion4
:
- Nhấn Forward. Webgoat tự động cập nhật đã hoàn thành bài này:
Tham khảo:
- Đỗ Tuấn: LINK