Trang chủLập trìnhXSS là gì? Sự nguy hiểm của XSS và cách kiến thức bạn cần biết về XSS

XSS là gì? Sự nguy hiểm của XSS và cách kiến thức bạn cần biết về XSS

Thứ Hai, 5/29/2023, 10:01:35 PMlike 679
Lỗ hổng XSS là gì mà khiến nhiều dân IT có kinh nghiệm lâu năm đều khá "rén" khi nhắc đến nó? XSS có thể coi là một hình thức tấn công bằng mã độc rất phổ biến hiện nay. Vậy có cách nào để khắc phục lỗ hổng này hay không? Hãy cùng tìm hiểu với Gofiber thông qua bài viết dưới đây nhé!

Lỗ hổng xss là gì?

Nếu bạn nhắc đến XSS trước dân IT, có thể họ sẽ cảm thấy khá "ám ảnh" bởi cơ bản đây là một lỗ hổng bảo mật khá nghiêm trọng. Vậy XSS thực sự nghiêm trọng như thế nào?

XSS là gì?

XSS là gì? - XSS được viết tắt từ cụm Cross Site Scripting. XSS là một dạng tấn công vào tính bảo mật của website khá phổ biến và rất hay gặp. Người thực hiện các cuộc tấn công XSS là các hacker nhằm đánh cắp dữ liệu, làm ảnh hưởng đến tính an toàn của website. Các tester có kinh nghiệm đều biết đến lỗi này và nếu họ không khắc phục, hậu quả có thể nghiêm trọng đối với hệ thống dữ liệu thông tin.

Ảnh hưởng của lỗ hổng XSS

Bạn có thể hiểu cơ bản, các hacker sẽ gửi một đoạn mã độc vào hệ thống website của doanh nghiệp. Cách thức thực hiện là hacker sẽ sử dụng các đoạn Script và ăn cắp thông tin từ phía Client.

Mục đích chính của việc tấn công này là đánh cắp dữ liệu của người dùng. Các dữ liệu "có giá trị" này thường là Cookies, Session Tokens... Đặc biệt là Cookies - giúp người dùng đăng nhập tự động. Nếu Cookies bị đánh cắp, điều này cho thấy nguy cơ hacker có thể đăng nhập vào hệ thống bằng thông tin nhận dạng.

Chính vì thế, lỗ hổng bảo mật XSS có thể coi là nguy hiểm hiện nay. Những hậu quả nghiêm trọng của việc hacker đánh cắp được thông tin người dùng như:

  • Mạo danh tính người dùng thực, xâm phạm dữ liệu nhạy cảm của người dùng trên chính website đó.
  • Đọc DOM và tự tạo chỉnh sửa tùy ý.
  • Truy cập vào vị trí người dùng, các webcam hay microphone.
  • Thêm các phương án như Social Engineering và đánh cắp các thông tin riêng tư hơn.
Ảnh hưởng của lỗ hỗng XSS
Ảnh hưởng của lỗ hỗng XSS

Những xu hướng tấn công XSS thường gặp nhất

Thông thường, cách hacker sẽ thực hiện 3 xu hướng tấn công nhất như: Reflected XSS, DOM Based XSS và Stored XSS. Vậy các hình thức tấn công XSS là gì?

Xu hướng tấn công Reflected XSS

Nhiều hacker lựa chọn chiếm phiên làm việc (session) của người dùng. Thông qua đó, họ có thể truy cập và dữ liệu và chiếm quyền của người dùng trên website. Quá trình tấn công Reflected XSS được cơ bản bằng sơ đồ sau:

  1. Người dùng đăng nhập vào web và (giả sử) được hacker gán session.
  2. Hacker sẽ gửi được cho người dùng URL bằng cách nào đó.
  3. Nạn nhân vào URL mà hacker gửi.
  4. Server phản hồi cho nạn nhân và kèm các dữ liệu có trong request (một đoạn javascript từ hacker).
  5. Trình duyệt của nạn nhân phản hồi và thực thi đoạn Javascript.
  6. Hacker tạo ra một đoạn Javascript và dùng lệnh đó để thực hiện request đến site của hacker với tham số là cookie của nạn nhân.
  7. Từ phía site của hacker, họ sẽ bắt được nội dung request và coi như session của nạn nhân bị chiếm.
  8. Hacker có thể thực hiện mọi quyền trên website mà nạn nhân sở hữu.
     Reflected XSS
     Reflected XSS

Tấn công DOM Based XSS

Bản chất của lỗ hoonge DOM Based XSS là gì? DOM Based XSS sẽ khai thác XSS dựa trên quá trình đổi cấu trúc DOM của HTML. DOM Based XSS là nơi mà lỗ hổng bảo mật tồn tại trong mã client chứ không phải từ server và thay đổi cấu trúc DOM.

Giả sử, nếu bạn có một website có đường dẫn đăng ký và truy cập vào, bạn thấy một form bình thường. Tất nhiên người dùng sẽ không có nghi ngờ, nhưng lập tức Script sẽ thực thi vào cơ sở dữ liệu > hệ thống bị hack.

Stored XSS

Nếu như Reflected XSS tấn công trực tiếp vào một vài nạn nhân mà hacker nhắm đến thì Stored XSS nhắm đến nhiều nạn nhân hơn. Thông thường, lỗi XSS này xảy ra khi ứng dụng web không kiểm tra kỹ dữ liệu đầu vào trước khi lưu vào cơ sở dữ liệu. Thông qua Stored XSS, hacker sẽ phải thực hiện tối thiểu qua hai bước như sau:

  1. Hacker thông qua các điểm đầu vào như input, form, textarea... không được kiểm tra kỹ và chèn vào phần CSDL những đoạn mã độc.
  2. Khi có người dùng truy cập vào ứng dụng web và thực hiện các thao tác liên quan đến dữ liệu thì đoạn mã độc của hacker sẽ thực thi trên trình duyệt của người dùng.

Nhìn chung, Stored XSS nguy hiểm hơn Reflected XSS vì đối tượng bị ảnh hưởng có thể là tất cả người dùng của website đó. Và nếu nạn nhân có vai trò quản trị web thì nguy cơ quyền điều khiển web bị chiếm là rất cao.

Stored XSS
Stored XSS

Một số xu hướng tấn công XSS thường gặp khác

Vậy những lỗi XSS khác như thế nào? Một số xu hướng tấn công XSS có thể "hiếm gặp" hơn nhưng cũng nguy hiểm không kém. Điển hình như:

Tấn công DOM Clobbering

Khi người dùng tạo một phần trong HTML (ví dụ: <input id = username>) và sau đó tham chiếu nó từ JavaScript thì người dùng sẽ có một hàm như document.getEuityById(‘username’). Thông qua một thuộc tính của đối tượng cửa sổ toàn cầu, người dùng có thể truy cập vào.

Vì thế, window.username sẽ tương tự như document.getEuityById(‘username’). Tất cả quá trình này gọi là DOM Clobbering. Kết quả lỗ hổng sẽ xuất hiện nếu ứng dụng đưa ra quyết định dựa vào sự có mặt của một vài biến nhất định.

Tấn công mở rộng Protocol Handler

Việc tấn công mở rộng Protocol Handler sẽ gây cạn kiệt hoặc đánh cắp tài nguyên của máy chủ ( các thiết bị hạ tầng mạng như firewalls, máy chủ application hay load-balancers. Kỹ thuật tấn công thường là SYN flood, Fragmentation attack hay ACK flood.

Protocol Handler
Protocol Handler

Tấn công tương tác qua Ajax

Ajax - Asynchronous JavaScript and XML là công nghệ tạo ra web động mà không reload lại trang nên rất đẹp và mượt. Ajax được đánh giá là tập hợp công nghệ mạnh nhất nhưng cũng không tránh khỏi các nguy cơ bị tấn công XSS.

Chức năng phát biểu nên các website nền tảng Ajax có cùng kiểu lỗ hổng và có thể bị phá theo phương thức của các ứng dụng phổ thông khác. Ngoài ra, Ajax là chương trình công thức hóa yêu cầu server. Cơ chế hoạt động của nó là dùng JavaScript nên hacker có thể dễ dàng dùng các hàm Ajax để tấn công người dùng.

Cách nhận biết và ngăn chặn tấn công XSS

Vậy làm cách nào để nhận biết và ngăn chặn các đợt tấn công XSS hiệu quả?

Kiểm tra thử tấn công XSS

Công cụ quét lỗ hổng sẽ kết nối với ứng dụng web và tìm ra các lỗi tiềm ẩn và những điểm yếu của cấu tạo web. Những công cụ có thể giúp bạn kiểm tra thử có tấn công XSS không như:

  • CyStack Platform – A Web Security Platform: là nền tảng an ninh mạng đầu tiên tại Việt Nam, nó bao gồm 4 apps và cung cấp các tính năng như quét lỗ hổng bảo mật ứng dụng web, giám sát an ninh liên tục, tường lửa và truy tìm mã độc.
  • Burp Suite: bộ công cụ quét lỗ hổng, bạn có thể trải nghiệm phiên bản miễn phí trước nhằm trải nghiệm khả năng lập bản đồ đến khai thác lỗ hổng bảo mật.
  • Netsparker: chỉ báo cáo về các lỗ hổng đã xác định được sau khi thử nghiệm hay khai thác thành công.
  • Arachni: kiểm tra và học hỏi từ hành động của ứng dụng qua quá trình scan, phân tích meta để đánh giá độ tin cậy.
  • W3af: được chia làm 2 phần chính gồm core và plug-in.
    Kiểm tra thử tấn công XSS
    Kiểm tra thử tấn công XSS

Cách ngăn chặn XSS là gì?

Mặc dù lỗ hổng XSS được xếp vào loại tấn công nguy hiểm nhưng bạn vẫn có thể phòng nó bằng một số cách phổ biến như:

  • Data validation: luôn đảm bảo dữ liệu đầu vào chính xác - cách này giúp giảm thiểu khả năng rủi ro và tránh được dạng tấn công Stored XSS. 

  • Filtering: tìm kiếm những keyword nguy hiểm có trong phần nhập của người dùng và thay thế (hoặc xóa bỏ nó.

  • Escaping: thay đổi các ký tự bằng mã đặc biệt. Lưu ý là nên tìm kiếm thư viện Excape phù hợp.

  • Thiết lập HTTP header đúng: thiết lập "X-XSS-Protection" giúp chống cá mã độc như request.

  • Định kỳ kiểm tra và thử tấn công XSS: giúp phòng ngừa phần nào các đợt tấn công XSS và giảm mức độ nguy hiểm của nó.

  • Giảm thiểu sử dụng JavaScript inline: nhằm giúp dễ dàng hơn khi code và bảo trì hệ thống, giảm nguy cơ gặp XSS.

Các câu hỏi thường gặp liên quan đến tấn công XSS

Khi tìm hiểu về tấn công XSS là gì, ắt hẳn nhiều bạn cũng đang thắc mắc về các khái niệm khác xoay quanh XSS. Dưới đây Gofiber đã tổng hợp và giải đáp cho bạn:

File upload XSS là gì? Trước hết, File upload là diễn đàn cho phép bạn upload hình ảnh trong phần bình luận, bài viết mới hay văn bản mới. Nếu như webserver không kiểm tra kỹ dữ liệu đầu vào của nó thì một lỗ hổng XSS lớn có thể tồn tại trên webserver thông qua tính năng File upload.

Kích hoạt lỗ hổng XSS với File upload
Kích hoạt lỗ hổng XSS với File upload

2. Sql Injection là gì?

Sql Injection là kỹ thuật lợi dụng các lỗ hổng về truy vấn trên ứng dụng. Hacker có thể thực hiện bằng cách chèn một đoạn mã SQL để thực hiện sai lệch câu truy vấn ban đầu. Từ đó, họ có thể khai thác dữ liệu từ cơ sở dữ liệu gốc. Nhìn chung, Sql Injection sẽ cho phép kẻ tấn công thực hiện những thao tác tương tự với quản trị viên thông qua cơ sở dữ liệu của ứng dụng.

Đối với XSS, lỗ hổng này sẽ xuất hiện từ phía máy khách tấn công vào người dùng của ứng dụng. Còn SQL injection là lỗ hổng xuất phát từ phía máy chủ tấn công vào cơ sở dữ liệu của ứng dụng.

Gofiber hy vọng bạn đã hiểu rõ XSS là gì và biết cách phòng ngừa, giảm nguy cơ website của mình gặp phải nó. Hãy trang bị kiến thức để sẵn sàng ứng phó với các đợt tấn công XSS nhé!

5/5 - (0 bình chọn)

Xin chào! Tôi là Bảo Duyên, một tác giả sáng tạo nội dung chất lượng và là thành viên đội ngũ tại Gofiber. Tôi có sự đam mê và thế mạnh trong việc viết về các chủ đề như công nghệ, SEO và marketing. Với khả năng sáng tạo, tôi luôn tìm cách đưa ra các ý tưởng mới mẻ và độc đáo trong việc viết nội dung. Tôi đảm bảo rằng mỗi bài viết của mình được trình bày một cách chuyên nghiệp, thông tin và hấp dẫn. Tôi nỗ lực để mang đến cho độc giả những thông tin hữu ích và giải pháp thực tế để giúp họ tiến bộ và thành công trong lĩnh vực công nghệ, SEO và marketing. Với kiến thức và kinh nghiệm trong lĩnh vực này, tôi luôn cập nhật các xu hướng mới nhất và áp dụng những kỹ thuật tiên tiến để tối ưu hóa nội dung. Tôi hiểu rõ về cách xây dựng chiến lược marketing hiệu quả, cách tăng cường hiệu suất trang web và cách thu hút đối tượng khách hàng mục tiêu. Là một tác giả tại Gofiber, tôi cam kết mang đến nội dung chất lượng và giá trị cho độc giả. Tôi tập trung vào việc tạo ra các bài viết sáng tạo và tối ưu hóa để giúp doanh nghiệp và cá nhân nâng cao hiệu quả tiếp cận và tăng cường thương hiệu của họ trên mạng. Nếu bạn đang tìm kiếm nội dung chất lượng với các chủ đề về công nghệ, SEO và marketing, hãy đồng hành cùng tôi trên Gofiber. Tôi rất mong được gặp gỡ và làm việc cùng bạn để mang lại thành công và tăng cường sự hiện diện trực tuyến cho bạn. Cảm ơn bạn đã đọc bio giới thiệu của tôi. Nếu bạn có bất kỳ yêu cầu hoặc câu hỏi nào, xin hãy liên hệ với tôi. Tôi rất sẵn lòng hỗ trợ và cùng bạn xây dựng nội dung tuyệt vời.


Tags: #Hướng dẫn Cơ sở dữ liệu

CÓ THỂ BẠN QUAN TÂM

Xem nhiều nhất

thuê VPS giá rẻ