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

Báo cáo môn học an ninh Ứng dụng web lab 3 cross site scripting

13 0 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 đề Lab 3: Cross-Site Scripting
Tác giả Nguyễn Đức Thắng
Người hướng dẫn ThS. Bùi Duy Cương
Trường học Trường Đại Học Văn Lang
Chuyên ngành An Ninh Ứng Dụng Web
Thể loại Báo cáo
Năm xuất bản 2024
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 13
Dung lượng 3,45 MB

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

Nội dung

Khái niệm Reflected XSS - Reflected XSS xảy ra khi dữ liệu đầu vào do người dùng cung cấp được phản hồi lại trong cửa sổ trình duyệt hoặc bên trong mã nguồn của trang web.. - Các bước th

Trang 1

TRƯỜNG ĐẠI HỌC VĂN LANG KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO MÔN HỌC

AN NINH ỨNG DỤNG WEB

Lab 3 :

CROSS-SITE SCRIPTING

Tên: Nguyễn Đức Thắng MSSV: 2174802010646 GVHD: ThS Bùi Duy Cương

TP Hồ Chí Minh – năm 2024

Trang 2

MỤC LỤC

CHƯƠNG 1: CÁC HÌNH THỨC TẤN XSS ĐỂ KHAI THÁC LỖ HỔNG TRÊN DVWA 3

1 Khái niệm Reflected XSS 3

2 Tấn công Reflected XSS ở cấp độ bảo mật cao (High Level) 3

CHƯƠNG 2: STORED XSS 6

1 Khái niệm về Stored XSS 6

2 Tấn công Stored XSS ở cấp độ bảo mật cao (High Level) 7

CHƯƠNG 3: DOM-Based XSS 10

1 Khái niệm DOM-Based XSS 10

2 Tấn công DOM XSS cấp độ bảo mật trung bình ( Medium Level) 10

3 Tấn công DOM XSS cấp độ bảo mật cao ( High Level) 12

Trang 3

CHƯƠNG 1: CÁC HÌNH THỨC TẤN XSS ĐỂ KHAI THÁC LỖ HỔNG TRÊN

DVWA

1 Khái niệm Reflected XSS

- Reflected XSS xảy ra khi dữ liệu đầu vào do người dùng cung cấp được phản hồi lại trong cửa sổ trình duyệt hoặc bên trong mã nguồn của trang web

- Các bước thực hiện mỗi khi kiểm tra Reflected XSS:

+ Nhập một chuỗi duy nhất vào trường nhập liệu (input field) và gửi

+ Mở mã nguồn của trang bằng cách nhấp chuột phải hoặc nhấn CTRL+U, sau đó tìm kiếm chuỗi duy nhất trong mã nguồn trang

+ Sử dụng CTRL+F để tìm chuỗi duy nhất mà bạn đã nhập ở bước một Nếu chuỗi duy nhất phản hồi lại trên màn hình trình duyệt hoặc trong mã nguồn trang, thì trang web có thể dễ bị tấn công XSS phản chiếu

+ Cuối cùng, nhập payload cơ bản của XSS, ví dụ:<script>alert()</script> và gửi nó để nhận phản hồi trên trình duyệt Nếu trang web dễ bị tấn công, bạn sẽ nhận được một hộp thông báo (alert box)

2 Tấn công Reflected XSS ở cấp độ bảo mật cao (High Level)

- Đầu tiên mức độ bảo mật chọn High

- Nhập chuỗi “hackme” vào trường nhập liệu để kiểm tra cách mà dữ liệu đầu vào được

xử lý bởi ứng dụng

Trang 4

- Kiểm tra mã nguồn bằng cách nhấn CTRL+U và tìm kiếm chuỗi chuỗi "hackme" → thấy rằng chuỗi đang được phản hồi → trang có thể dễ bị tấn công Reflected XSS

- Sử dụng payload <image src/onerror=alert(‘vluhacked’)> để khai thác:

Trang 5

- Đây là kết quả sau khi hack thành công

Trang 6

CHƯƠNG 2: STORED XSS

1 Khái niệm về Stored XSS

- Stored XSS là lỗ hổng XSS nguy hiểm xuất hiện khi một ứng dụng web lưu trữ dữ liệu do người dùng cung cấp để sử dụng sau (web application stores user-supplied data for later use) mà không thực hiện bất kỳ bộ lọc hoặc xử lý dữ liệu nào, kẻ tấn công có thể chèn mã độc vào trường nhập liệu (Mã độc này cũng có thể là một payload XSS hợp lệ) Khi một người truy cập trang web bị lỗ hổng Stored XSS nơi mã độc đã được chèn vào, họ có thể nhận được một cửa sổ popup trên trình duyệt của mình

- Ví dụ: Bạn đang đọc một bài viết trên một trang web nhưhttps://abc.com/article.php và ở cuối bài có một phần bình luận đểbạn chia sẻ trải nghiệm hoặc đặt câu hỏi Khi bạn nhập bình luận,bình luận đó sẽ được công khai hiển thị Sau đó, nếu người dùng khác truy cập trang tương tự, ví dụ: https://abc.com/article.php, họ có thể xem bình luận của bạn ở cuối trang Đây là một tình huống bình thường

+ Nếu trang web không xác thực dữ liệu trước khi lưu vào cscl, thì hacker sẽ tạo ra tình huống bất thường Thay vì bình luận hợp lệ, kẻ tấn công nhập vào một payload XSS và lưu

nó vĩnh viễn trong csdl cho đến khi nào quản trị viên tìm được và xóa nó Trang web lúc này

đã bị tấn công Stored XSS, khi bất kỳ ai truy cập trang https://abc.com/article.php đều sẽ nhận được một cửa sổ popup

+Stored XSS thường xuất hiện:

• Diễn đàn hoặc bảng tin nhắn (Message Board)

• Phần bình luận (Blog comments) của blog

• Giỏ hàng (Shopping cart) trên các trang thương mại điện tử

• Trang hồ sơ người dùng (User Profiles Page): ứng dụng cho phép người dùng chỉnh sửa/thay đổi thông tin hồ sơ như tên, họ, biệt danh, hình đại diện, ảnh, địa chỉ, v.v

• Trình quản lý tập tin (File Manager): ứng dụng cho phép tải lên các tập tin

• Cài đặt hoặc tuỳ chọn ứng dụng (Application settings or preferences): ứng dụng cho phép người dùng thiết lập các tuỳ chọn cá nhân

• Nhật ký (log): nếu ứng dụng lưu trữ một số dữ liệu nhập từ người dùng trong các tệp log

Trang 7

+ Các bước tấn công:

• Đầu tiên, nhập một chuỗi ký tự độc nhất (unique string) vào các trường nhập liệu trên trang web và gửi đi

• Mở mã nguồn trang web bằng cách nhấp chuột phải hoặc nhấn tổ hợp phím CTRL+U và tìm chuỗi ký tự độc nhất trong mã nguồn trang

• Sử dụng tổ hợp phím CTRL+F để tìm chuỗi ký tự mà bạn đã nhập ở bước một Nếu chuỗi này được phản hồi lại trong cửa sổ trình duyệt hoặc trong mã nguồn trang, thì trang web có thể bị lỗ hổng Stored XSS

• Cuối cùng, gửi payload XSS, ví dụ: <script>alert()</script>, và gửi nó để nhận phản hồi trên trình duyệt Nếu trang web bị lỗ hổng, bạn chắc chắn sẽ nhận được một hộp thoại cảnh báo (alert box)

2 Tấn công Stored XSS ở cấp độ bảo mật cao (High Level)

- Đầu tiên, chỉnh DVWA Security về mức độ bảo mật High

Vì trường đã được làm sạch để loại trừ các ký tự đặc biệt, cho nên payload của chúng ta trong đó không bao gồm thẻ <script> vẫn có thể có hiệu quả Chúng ta hãy tiến hành bằng cách đưa payload vào trường tên và nhập văn bản tùy ý vào trường tin nhắn Sau đó, hãy gửi biểu mẫu để quan sát kết quả

- Chúng ta sẽ sử dụng payload thuộc tính onclick có nội dung như sau:

Trang 8

<a onclick="alert('hacked')" style=display:block>test</a>

- Sau đó, chúng ta sẽ được Name và Massage như sau:

- Đây là kết quả sau khi tấn công bằng Stored XSS bằng payload trên ở mức độ high level sau khi click vào Name: ‘Test’

Trang 10

CHƯƠNG 3: DOM-Based XSS

1 Khái niệm DOM-Based XSS

- DOM-Based XSS là loại lỗ hổng xảy ra khi JavaScript phía client nhận đầu vào từ nguồn

do kẻ tấn công kiểm soát mà không thực hiện kiểm tra, rồi chuyển nó vào một "sink" (điểm thực thi mã) mà sau đó thực thi mã độc Các nguồn phổ biến là location.search, location.href, document.referrer và document.URL Các sink thường gặp là document.write(), element.innerHTML, và element.outerHTML

- Lỗ hổng này khác với Reflected và Stored XSS vì đầu vào không hiển thịtrong mã nguồn trang mà được phản ánh trong HTML DOM DOM là cấu trúc nơi các thẻ HTML và mã JavaScript được sắp xếp theo thứ tự phân cấp Khai thác thành công sẽ biến đầu vào của người dùng thành một phần của DOM HTML, có thể xem bằng công cụ dành cho nhà phát triển trình duyệt

- DOM-Based XSS phụ thuộc vào việc JavaScript phía client có khả năng thay đổi đối tượng DOM HTML, như các thẻ iframe, anchor, và các đối tượng khác trong DOM

- Cách thức khai thác lỗ hổng XSS dựa trên DOM thực hiện theo các bước:

• Nhập một chuỗi vào source (như location.search hoặc bất kỳ tham số đầu vào nào chấp nhận dữ liệu từ người dùng) và gửi nó

• Mở công cụ dành cho nhà phát triển trình duyệt và tìm chuỗi bạn vừa nhập trong HTML DOM → sử dụng phím tắt CTRL+F để tìm kiếm chuỗi Kiểm tra HTML và tìm vị trí chuỗi xuất hiện - - Lưu ý: Tùy chọn “View source” của trình duyệt không hữu ích trong việc kiểm tra DOM-based XSS vì nó không hiển thị các thay đổi do JavaScript thực hiện trong HTML

• Đối với mỗi vị trí mà chuỗi xuất hiện trong DOM, hãy thử chènpayload XSS vào đó Nếu payload được chuyển vào "sink" thực thi mà không qua kiểm tra hoặc chỉnh sửa → sẽ thấy thông báo XSS xuất hiện

2 Tấn công DOM XSS cấp độ bảo mật trung bình ( Medium Level)

- Đầu tiên, chỉnh DVWA Security về mức độ bảo mật Medium

Trang 11

- Ở đây ta chọn ngôn ngữ mặc định là English và chèn payload sau vào trong URL

</select><image src/onerror=alert('hacked')>

- Sau khi enter ta đã tấn công thành công như sau:

Trang 12

3 Tấn công DOM XSS cấp độ bảo mật cao ( High Level)

- Đầu tiên, chỉnh DVWA Security về mức độ bảo mật High

- Ta sử dụng payload như sau: #?default=<script>alert(document.cookie)</script>

Trang 13

- Sau đó cookie sẽ xuất hiện như trên và ta có thể xem nội dung cookie với sự trợ giúp của burf suite

Ngày đăng: 05/05/2025, 14:50

w