Công ty TNHH TMĐT Công nghệ LP

4.0/5 (913 Reviews)

Nếu là một nhà quản trị website hoặc một tester thì ắt hẳn thuật ngữ XSS đã không còn quá xa lạ với bạn phải không? Đây là một lỗ hổng bảo mật điển hình trong cơ sở dữ liệu và các hacker thường nhắm đến lỗ hổng này để chiếm quyền điều hướng website. Một khi website hoặc ứng dụng bị tấn công thông qua XSS sẽ gây nên rất nhiều rủi ro về thông tin, dữ liệu của người dùng. Vậy thực chất XSS là gì? Làm sao để truy vết và phòng chống chúng xâm nhập vào website? Cùng LPTech tìm hiểu ở bài viết dưới đây nhé!

XSS là gì?

XSS (Cross Site Scripting) là một trong những hình thức tấn công mạng mà các Tester có lẽ quen thuộc nhất. Tấn công XSS xảy ra khi có lỗ hổng trong việc bảo mật website mà hacker sẽ lợi dụng lỗ hổng này để ngụy trang các mã độc dưới dạng script và tiến hành vượt qua truy cập từ phía Client. 

Các hacker lợi dụng hình thức XSS này đa phần để ăn cắp dữ liệu nhận dạng của người dùng như nhận diện session tokens, cookies và một vài thông tin khác. Một khi hacker đã đăng nhập vào những tài khoản nhận diện này, chúng sẽ chiếm quyền kiểm soát tất cả tính năng và dữ liệu sẵn có của ứng dụng.

XSS mặc dù được đánh giá là hình thức tấn công web đơn giản, tuy nhiên nó lại cực kỳ nguy hiểm và được nhiều hacker sử dụng nhất hiện nay.

XSS là gì?

XSS tấn công như thế nào?

Đúng như tên gọi Cross Site Scripting, XSS sẽ tấn công bằng cách gửi và chèn một số lệnh script độc hại được viết bằng các ngôn ngữ lập trình quen thuộc như JavaScript, HTML, VBScript hay Flash,... Tuy nhiên JavaScript và HTML là hai ngôn ngữ được sử dụng nhiều hơn cả.

Khi hacker đã xác định được website bảo mật kém và dễ dàng tấn công, chúng sẽ tiến hành cài mã độc để trả về JavaScript độc hại cho người dùng. Khi mã độc đã thực thi bên trong trình duyệt, hacker sẽ có thể toàn quyền xâm nhập và sử dụng dữ liệu trong ứng dụng của người dùng.

XSS khi tạo được lỗ hổng, hacker sẽ xâm nhập website và có thể:

  1. Mạo danh danh tính của nạn nhân để thực hiện các thao tác hoặc giao dịch thông qua ứng dụng.
  2. Truy cập và đọc được các dữ liệu được lưu trữ trong website.
  3. Biết được thông tin đăng nhập của người dùng.
  4. Chèn mã độc Trojan vào website.

Một số cách thức tấn công phố biến nhất của XSS:

  1. Hacker tạo các form thông tin hoặc website giả mạo để dẫn dụ nạn nhân điền thông tin vào.
  2. Một số website được cài đặt quảng cáo, khi người dùng nhấn vào có thể bị cài mã độc XSS.
  3. Thông quan các email chứa mã nguồn độc hại. Khi hacker tìm được những lỗ hổng về bảo mật của website, chúng sẽ gửi từng mã lệnh đến người dùng cuối và ngay khi người dùng nhấn vào, website sẽ bị xâm nhập.

Cách thức tấn công của XSS

Cách thức tấn công XSS phổ biến

Hiện nay, XSS được chia ra làm 3 loại phổ biến nhất bao gồm:

Reflected XSS

Reflected XSS xảy ra khi một ứng dụng nhận dữ liệu trong HTTP request và đưa dữ liệu đó vào phản hồi ngay lập tức theo cách không an toàn. Hình thức này được xem là loại XSS được các hacker sử dụng nhiều nhất. Từ mã độc này, hacker sẽ đánh cắp dữ liệu và thông tin người dùng, sau đó chiếm quyền kiểm soát của họ trên website. Tuy nhiên hình thức này chỉ có thể nhắm đến ít nạn nhân. 

Stored XSS

Stored XSS là hình thức tấn công nhắm vào nhiều nạn nhân cùng một lúc bằng cách cài trực tiếp mã độc vào cơ sở dữ liệu của website, thông thường là từ các dữ liệu đầu vào như input, form thông tin,... Ngay khi người dùng thực hiện thao tác liên quan đến các dữ liệu đã bị cài mã độc thì hacker sẽ chiếm được quyền kiểm soát và truy cập website.

Thông thường hình thức tấn công này sẽ xảy ra khi người dùng không kiểm tra kỹ dữ liệu đầu vào, ví dụ như các comment, form thông tin,... Với Stored XSS, hacker phải thực hiện thông qua 2 bước để có thể đánh cắp được dữ liệu của người dùng: 

Đầu tiên, hacker sẽ thông qua các dữ liệu đầu vào mà người dùng đã điền để chèn vào CSDL các đoạn mã độc. Sau đó, khi người dùng truy cập vào website/ ứng dụng và thực hiện thao tác liên quan đến các dữ liệu đã được chèn mã độc này, đoạn mã script được chèn sẽ thực thi ngay lập tức trên thiết bị của nạn nhân.

DOM-based XSS

DOM-based XSS là một loại lỗ hổng xuất hiện khi JavaScript lấy dữ liệu từ nguồn do kẻ tấn công kiểm soát, chẳng hạn như URL và chuyển nó đến một bộ đệm hỗ trợ thực thi mã động, chẳng hạn như eval() hoặc innerHTML. Điều này cho phép kẻ tấn công thực thi JavaScript độc hại, thường cho phép chúng chiếm đoạt tài khoản của người dùng khác.

DOM-based XSS đến từ phía máy khách chứ không phải máy chủ. Hình thức XSS này xâm nhập dữ liệu dựa vào sự thay đổi địa chỉ HTML, cụ thể hơn chính là thay đổi cấu trúc DOM.

XSS có các loại nào?

Các bài kiểm tra XSS

Để kiểm tra và truy vết sớm các lỗ hổng truy cập XSS, người dùng có thể thực hiện bài kiểm tra cho website thông qua hộp đen hoặc qua các đoạn code.

Kiểm tra thông qua hộp đen

Black-box testing hay kiểm tra tấn công XSS qua hộp đen nghĩa là bạn không cần phải kiểm tra code. Khi bắt đầu, bạn cần kiểm tra xem phần nào của website dễ bị tấn công XSS nhất và liệt kê đầy đủ để chắc rằng không một khía cạnh nào trên web bị bỏ sót. Sau đó, bạn hãy có kế hoạch kiểm tra hộp đen của những trường khía cạnh đã liệt kê và kết quả sẽ cho bạn biết rằng ứng dụng/ website đó có dễ bị tấn công hay không.

Kiểm tra qua các đoạn code

Cũng tương tự như cách kiểm tra hộp đen kia, sau khi đã liệt kê được những khía cạnh dễ bị tấn công nhất, bạn cần tiến hành kiểm tra code của chúng. Để kiểm tra khả năng bị tấn công, bạn cần xem xét các script đã nhập phản hồi thế nào và có thực thi theo lệnh hay không.

Ví dụ: Khi bạn nhập đoạn script <script>alert(document.cookie)</script>. Nếu lúc này script được thực thi thì khả năng cao website của bạn đã bị tấn công bởi mã độc XSS.

Các bài kiểm tra XSS

Cách ngăn chặn XSS như thế nào?

XSS vẫn là một mối nguy hại đáng lo của các nhà quản trị web vì chúng mang đến rất nhiều rủi ro. Do đó, việc chuẩn bị một số kế hoạch ngăn chặn sự tấn công của XSS là điều cần thiết.

Hiện nay, thông thường các nhà quản trị website sẽ sử dụng 3 phương pháp sau đây để ngăn chặn XSS:

Data validation

Dù với phương pháp nào đi chăng nữa, bước đầu tiên để ngăn chặn xâm nhập XSS đó là người dùng cần xác thực dữ liệu đầu vào (Input validation). Mọi thông tin khi bạn nhập vào cần phải được xác thực vì tất cả thông tin này cần phải dẫn đến dữ liệu đầu ra. Do đó, data validation được xem là cơ sở, nền tảng quan trọng nhất để đảm bảo tính bảo mật của hệ thống website ứng dụng.

Filtering

Mặc dù xác thực dữ liệu đầu vào có thể phần nào ngăn chặn tấn công XSS, tuy nhiên chúng không đủ hiệu quả nếu mã độc XSS được code tinh vi.

Lúc này, phương pháp Filtering (Lọc thông tin đầu vào) được đánh giá là có khả năng ngăn chặn tốt hơn. Bộ lọc này tìm kiếm các từ khóa có khả năng gây nên rủi ro trong thông tin input của người dùng và xóa hoặc thay thế chúng bằng những chuỗi ký tự trống.

Một số từ khóa tiềm ẩn rủi ro tấn công XSS có thể là:

  1. <script></script> tags.
  2. Javascript commands.
  3. HTML markup.

Escaping

Đây là một phương pháp ngăn chặn XSS khá đặc biệt. Với phương pháp này, các ký tự thích hợp, sẽ được thay thế bằng một số đoạn code đặc biệt, ví dụ: ký tự ‘escaping’ có thể được thay thế bằng ‘&#60’.

Cách ngăn chặn XSS như thế nào?

Qua bài viết trên đây, LPTech đã giải đáp cho bạn thắc mắc về khái niệm tấn công XSS là gì và các mối nguy hại khi website bị chúng tấn công. XSS là một hình thức tấn công mạng rất phổ biến hiện nay và ảnh hưởng nặng nề đến trang web của bạn. Do đó, hãy chuẩn bị cho mình các kiếm thức kiểm tra và ngăn chặn tấn công từ XSS nhé. Hy vọng bài viết hôm nay đã mang đến cho bạn thật nhiều thông tin bổ ích.

Liên hệ tư vấn - LPTech

Thông tin liên hệ

Nếu bạn có thắc mắc gì, có thể gửi yêu cầu cho chúng tôi, và chúng tôi sẽ liên lạc lại với bạn sớm nhất có thể .

Công ty TNHH TMĐT Công nghệ LP

Giấy phép kinh doanh số 0315561312/GP bởi Sở Kế Hoạch và Đầu Tư TP. Hồ Chí Minh.

Văn phòng: Lầu 4, Toà nhà Lê Trí, 164 Phan Văn Trị, Phường 12,Quận Bình Thạnh, HCMC

Hotline: 0338 586 864

Mail: sales@lptech.asia

Zalo OA:LP Tech Zalo Official

Zalo Sales:033 85 86 86 64 (Sales)


Bài viết cùng chuyên mục

Tấn công brute-force là gì? Cách phòng chống tấn công vét cạn

Tấn công brute-force là gì? Cách phòng chống tấn...

Brute force là một hình thức tấn công mà các hacker thường sử dụng. Chúng thực hiện bằng các phần mềm tự động để thử mật khẩu tài khoản...

Trojan là gì? Cách nhận biết và phòng chống virus trojan xâm nhập

Trojan là gì? Cách nhận biết và phòng chống virus...

Trojan là gì? Đây là một loại virus độc hại được tạo ra để xâm nhập máy tính trái phép. Một khi đã xâm nhập vào, chúng sẽ phá hoại, làm...

Phishing là gì? Cách phòng chống lừa đảo bằng hình thức giả mạo

Phishing là gì? Cách phòng chống lừa đảo bằng...

Phishing là một hình thức lừa đảo, giả mạo các tổ chức uy tín, người quen của nạn nhân để đánh cắp thông tin cá nhân như mật khẩu tài...

Cyber security là gì? Phân loại và vai trò của cyber security

Cyber security là gì? Phân loại và vai trò của...

Cyber security là một thuật ngữ chuyên dùng trong công nghệ thông tin và là một hệ thống bảo mật cao cấp, bảo vệ máy tính khỏi các cuộc...

Cookie là gì? Cách xóa và quản lý bật/tắt cookie trên trình duyệt

Cookie là gì? Cách xóa và quản lý bật/tắt cookie...

Cookie là gì? Cookie là một thuật ngữ quen thuộc với người dùng công nghệ. Nó có thể được xem là nơi để lưu trữ tất cả dữ liệu từ các...

Cách sửa lỗi err_ssl_version_or_cipher_mismatch khi truy cập internet

Cách sửa lỗi err_ssl_version_or_cipher_mismatch...

Lỗi err_ssl_version_or_cipher_mismatch xảy ra khi trình duyệt web của bạn không thể thiết lập kết nối an toàn với website do có sự không...

Sứ mệnh của LPTech ?

LPTech luôn đặt mình vào khách hàng để hiểu được bạn đang gặp khó khăn gì? Các doanh nghiệp hiện nay đang gặp khó khăn về việc quản lý vận hành website của mình. Chưa tìm được đối tác ưng ý và an toàn để giao trọn trọng trách quản lý website cho của bạn.

Thiết kế website nhưng lại không thể tăng thu nhập cũng như chưa có đối tác làm Dịch vụ SEO uy tín tin cậy. Chúng tôi hiểu được điều đó nên dành cả tâm huyết của mình để có thể hỗ trợ các doanh nghiệp một cách tốt nhất.