You are on page 1of 17

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

KHOA AN TOÀN THÔNG TIN

MÔN HỌC AN TOÀN ỨNG DỤNG WEB VÀ CƠ SỞ DỮ LIỆU

GIẢNG VIÊN: VŨ MINH MẠNH

TÊN SINH VIÊN: TRẦN ĐĂNG TRỌNG

MÃ SINH VIÊN: B20DCAT191

1
Cross-site scripting
Lab: Reflected XSS into attribute with angle brackets HTML-encoded
Để giải quyết bài lab này thực hiện một cuộc tấn công kịch bản chéo trang web tiêm một thuộc tính và gọi
hàm “alert”

- Tìm kiếm một từ ngẫu nhiên

2
- Khi chúng ta tìm kiếm, nếu chúng ta nhìn vào đây, một số điều sẽ xảy ra:
- Trong trường hợp này không có kết quả, nhưng đó là ít nhất.
- Trong URL, chúng tôi thêm tham số Tìm kiếm.
- Có tính đến hai điểm cuối cùng, chúng ta có thể tạo một payload tạo ra một thuộc tính mới trong
phần tử input để chúng ta thực thi một cảnh báo. Trong trường hợp này, tải trọng là:
"onmouseover="alert(1)

Authentication
Lab: Password reset broken logic

- Để giải quyết bài lab này đặt lại mật khẩu của Carlos sau đó đăng nhập và truy cập trang "My
account"
o Your credentials: wiener:peter
o Victim's username: carlos

- Với Burp đang chạy, nhấp vào liên kết Quên mật khẩu của bạn? và nhập tên người dùng của riêng
bạn.

3
- Nhấp vào nút Ứng dụng email để xem email đặt lại mật khẩu đã được gửi. Nhấp vào liên kết trong
email và đặt lại mật khẩu của bạn thành bất cứ thứ gì bạn muốn.

4
- Trong Burp, đi tới Proxy > lịch sử HTTP và nghiên cứu các yêu cầu và phản hồi cho chức năng
đặt lại mật khẩu. Quan sát rằng mã đặt lại được cung cấp dưới dạng tham số truy vấn URL trong
email đặt lại. Lưu ý rằng khi bạn gửi mật khẩu mới, yêu cầu sẽ chứa tên người dùng dưới dạng
đầu vào ẩn. Gửi yêu cầu này đến Burp Repeater. POST /forgot-password?temp-forgot-password-
token

5
- Trong Burp Repeater, quan sát rằng chức năng đặt lại mật khẩu vẫn hoạt động ngay cả khi bạn
xóa giá trị của tham số trong cả URL và nội dung yêu cầu. Điều này xác nhận rằng mã thông báo
không được kiểm tra khi bạn gửi mật khẩu mới. temp-forgot-password-token
- Trong trình duyệt, yêu cầu đặt lại mật khẩu mới và thay đổi lại mật khẩu của bạn. Gửi yêu cầu đến
Burp Repeater một lần nữa. POST /forgot-password?temp-forgot-password-token
- Trong Burp Repeater, xóa giá trị của tham số trong cả URL và nội dung yêu cầu. Thay đổi tham
số thành . Đặt mật khẩu mới thành bất cứ thứ gì bạn muốn và gửi yêu cầu. temp-forgot-password-
tokenusernamecarlos
- Trong trình duyệt, đăng nhập vào tài khoản của Carlos bằng mật khẩu mới mà bạn vừa đặt. Nhấp
vào Tài khoản của tôi để giải quyết phòng thí nghiệm.

6
7
Lab: 2FA bypass using a brute-force attack

- Xác thực hai yếu tố của phòng thí nghiệm này dễ bị vũ phu. Bạn đã có được tên người dùng và
mật khẩu hợp lệ, nhưng không có quyền truy cập vào mã xác minh 2FA của người dùng. Để giải
quyết phòng thí nghiệm, hãy brute-force mã 2FA và truy cập trang tài khoản của Carlos.
Thông tin đăng nhập của nạn nhân: carlos:montoya

- Khi Burp đang chạy, hãy đăng nhập dưới dạng và điều tra quy trình xác minh 2FA. Lưu ý rằng
nếu bạn nhập sai mã hai lần, bạn sẽ bị đăng xuất lại. Bạn cần sử dụng các tính năng xử lý phiên
của Burp để đăng nhập lại tự động trước khi gửi mỗi yêu cầu. Carlos

8
9
- Trong Burp, đi tới Tùy chọn dự án > Phiên. Trong bảng Quy tắc Xử lý Phiên, bấm Thêm. Hộp
thoại Trình soạn thảo quy tắc xử lý phiên sẽ mở ra.

- Trong hộp thoại, hãy chuyển đến tab Phạm vi. Trong Phạm vi URL, chọn tùy chọn Bao gồm tất cả
URL.

10
- Quay trở lại tab Chi tiết và dưới Hành động Quy tắc, bấm Thêm > Chạy macro.

- Dưới Chọn macro, bấm Thêm để mở Trình ghi Macro. Chọn 3 yêu cầu sau:
o GET /login
o POST /login
o GET /login2
Sau đó nhấp vào OK. Hộp thoại Trình chỉnh sửa Macro sẽ mở ra.

11
- Bấm Kiểm tra macro và kiểm tra xem phản hồi cuối cùng có chứa trang yêu cầu bạn cung cấp mã
bảo mật gồm 4 chữ số hay không. Điều này xác nhận rằng macro đang hoạt động chính xác.

- Tiếp tục nhấp vào OK để đóng các hộp thoại khác nhau cho đến khi bạn quay lại cửa sổ Burp
chính. Macro bây giờ sẽ tự động đăng nhập lại bạn với tư cách là Carlos trước mỗi yêu cầu được
gửi bởi Burp Intruder.
- Gửi yêu cầu đến Burp Intruder. POST /login2

12
- Trong Burp Intruder, thêm một vị trí payload vào tham số. mfa-code
- Trên tab Payloads, chọn Numbers payload type. Nhập phạm vi 0 - 9999 và đặt bước thành 1. Đặt
các chữ số nguyên min / max thành 4 và các chữ số phân số tối đa thành 0. Điều này sẽ tạo ra một
tải trọng cho mọi số nguyên 4 chữ số có thể.
- Chuyển đến tab Resource pool và thêm tấn công vào nhóm tài nguyên với Maximum concurrent
requests được đặt thành . 1

13
- Bắt đầu tấn công. Cuối cùng, một trong các yêu cầu sẽ trả về mã trạng thái 302. Nhấp chuột phải
vào yêu cầu này và chọn Hiển thị phản hồi trong trình duyệt. Sao chép URL và tải nó trong trình
duyệt.

- Nhấp vào Tài khoản của tôi để giải quyết phòng thí nghiệm.

XML external entity (XXE) injection


Lab: Exploiting XXE using external entities to retrieve files

- Phòng thực hành này có tính năng "Kiểm tra chứng khoán" phân tích cú pháp đầu vào XML và trả
về bất kỳ giá trị không mong muốn nào trong phản hồi.
- Để giải quyết phòng thí nghiệm, hãy tiêm một thực thể bên ngoài XML để truy xuất nội dung của
tệp. /etc/passwd

14
- Truy cập trang sản phẩm, nhấp vào "Kiểm tra hàng tồn kho" và chặn yêu cầu POST kết quả trong
Burp Suite.

- Chèn định nghĩa thực thể bên ngoài sau đây vào giữa khai báo XML và phần tử : stockCheck<!
DOCTYPE test [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]>

15
- Thay thế số bằng tham chiếu đến thực thể bên ngoài: . Phản hồi phải chứa "ID sản phẩm không
hợp lệ:" theo sau là nội dung của tệp. productId&xxe;/etc/passwd

16
17

You might also like