Một số công cụ kiểm thử lỗ hổng XSS tự động

Lỗ hổng Cross-site Scripting (XSS) có thật và thực sự nguy hiểm, nó không còn là vấn đề gây tranh cãi như trước nữa. Hãy cùng điểm qua một vài nét về lỗ hổng XSS cũng như mức độ nguy hiểm của nó và cùng xem xét một số công cụ kiểm thử lỗ hổng XSS tự động.

Lỗ hổng XSS là gì?

Kỹ thuật XSS được thực hiện dựa trên việc chèn các đoạn script nguy hiểm vào trong source code ứng dụng web. Nhằm thực thi các đoạn mã độc Javascript để chiếm phiên đăng nhập của người dùng. Để hiểu rõ hơn, chúng ta xét ví dụ sau. Một ứng dụng web cho phép in ra giá trị mà chúng ta truyền vào thông qua URL, giả sử truyền vào biến name giá trị Ping. Mọi chuyện đến giờ vẫn ổn, chúng ta xem lại source code html:

Welcome Ping<br> 

Điều dễ nhận thấy là giá trị tên mà chúng ta nhập vào đã được chèn vào source code. Vậy thì có khả năng là cái gì nhập vào cũng có thể được chèn vào. Vấn đề sẽ trở nên nghiêm trọng nếu như giá trị được nhập vào không phải là một chuỗi bình thường như trên mà là một đoạn mã lệnh có khả năng gây nguy hiểm, đại loại như thế này:

<script>alert(document.cookie)</script>

Thử lại với giá trị trên: Từ ví dụ này có thể kết luận 2 điều. Thứ nhất biến name có thể nhận giá trị đầu vào bất kỳ và truyền lên server xử lý. Thứ 2, server đã không kiểm soát giá trị đầu vào này trước khi trả về cho trình duyệt. Dẫn đến việc đoạn mã javascript đã bị chèn vào trong source code. XSS nói chung được chia làm 3 loại chính là Reflected, Stored và DOM based. Trong bài viết này tôi sẽ đề cập chính đến kỹ thuật Reflected XSS. Có đến 75% kỹ thuật XSS dựa trên Reflected XSS. Gọi là reflected(phản xạ) bởi vì trong kịch bản khai thác loại này, hacker phải gửi cho nạn nhân một URL có chứa đoạn mã nguy hiểm(thường là javascript). Nạn nhân chỉ cần request đến URL này thì ngay lập tức hacker sẽ nhận được respond chứa kết quả mong muốn(tính phản xạ thể hiện ở đây). Ngoài ra nó còn được biết đến với tên gọi first-order XSS.

Lỗ hổng XSS nghiêm trọng như thế nào?

Kẻ tấn công có thể sử dụng lỗ hổng XSS để ăn cắp cookie, chiếm đoạt tài khoản, thực hiện ActiveX, thực thi Flash content, lừa người dùng tải phần mềm… Các vụ tấn công lừa đảo thường khai thác lỗ hổng XSS để giả mạo là các website hợp pháp. Nếu kẻ tấn công thực sự khôn ngoan, chúng có thể thực hiện một cuộc tấn công XSS nhắm mục tiêu tới các quản trị viên. Có thể bằng cách gửi thư có tiêu đề “Trợ giúp! URL website này tiếp tục báo lỗi cho tôi!”. Sau khi quản trị viên mở URL, kẻ tấn công có thể gây ra nhiều thiệt hại như ăn cắp thông tin của họ và chiếm đoạt quyền quản trị viên.

Kiểm thử tự động lỗ hổng XSS

Một công cụ quét lỗ hổng bảo mật thông thường sẽ kết nối với ứng dụng web thông qua giao diện web để có thể tìm ra các lỗ hổng tiềm tàng và những điểm yếu về cấu tạo của web. Công cụ này sẽ không truy cập vào mã nguồn mà chỉ thực hiện kiểm tra chức năng để tìm ra các lỗ hổng bảo mật. Hiện nay trên thị trường có rất nhiều công cụ quét lỗ hổng bảo mật ứng dụng web, có thể miễn phí hoặc cần trả phí mới sử dụng được. Dưới đây, chúng tôi sẽ liệt kê một số công cụ quét lỗ hổng bảo mật ứng dụng web hàng đầu có thể giúp bạn đánh giá ứng dụng web để loại bỏ các rủi ro về bảo mật.

1. CyStack Platform – A Web Security Platform

CyStack là một nền tảng nền tảng an ninh mạng đầu tiên tại Việt Nam, CyStack Platform đã bao gồm 04 apps, cung cấp các tính năng bảo vệ cho website của bạn bao gồm: các công cụ quét lỗ hổng bảo mật ứng dụng web, công cụ giám sát an ninh liên tục, tưởng lửa ứng dụng web và truy tìm mã độc.

  • CyStack Scanning: tự động phát hiện các lỗ hổng và đưa ra phương án khắc phục cho bạn.
  • CyStack Monitoring: giúp bạn phát hiện sớm các vấn đề trên website của mình để có biện pháp khắc phục sớm nhất.
  • CyStack Protecting: là một giải pháp tường lửa (Cloud web application firewall) đứng giữa website và người truy cập để chủ động ngăn chặn tất cả các cuộc tấn công từ bên ngoài.
  • CyStack Responding: được xây dựng như một phần mềm diệt virus giúp bạn nhanh chóng phát hiện các dữ liệu độc hại và làm sạch website của mình.

2. Burp Suite

Burp Suite là một bộ công cụ quét lỗ hổng bảo mật cho ứng dụng web. Người dùng có thể trải nghiệm phiên bản miễn phí với các tính năng giới hạn hoặc trả phí với đầy đủ tính năng. Burpsuite là một nền tảng tích hợp cho việc kiểm tra an ninh các ứng dụng web. Các công cụ đa dạng làm việc hoàn hảo với nhau để hỗ trợ toàn bộ quá trình thử nghiệm, từ lập bản đồ ban đầu đến việc tìm kiếm và khai thác lỗ hổng bảo mật.

3. Netsparker

Được thiết kể để hỗ trợ cho cả việc phát hiện và khai thác các lỗ hổng. Mục tiêu Netsparker hướng tới là cho người dùng một kết quả chính xác nhất. Để đảm bảo tính xác thực của kết quả, thì công cụ này chỉ báo cáo về các lỗ hổng đã xác định được sau khi khai thác thành công hoặc thử nghiệm chúng. Netsparker sẽ phát hiện và báo cáo về các lỗ hổng như SQL Injection và Cross-site Scripting (XSS) trong tất cả các loại ứng dụng web, dựa trên bất kể nền tảng và công nghệ nào mà web được xây dựng.

4. Arachni

Arachni là một Ruby framework với đầy đủ tính năng, modular và hiệu suất cao nhằm mục đích giúp các nhà kiểm tra và quản trị viên thâm nhập đánh giá tính bảo mật của ứng dụng web. Arachni thể hiện sự thông minh qua việc có thể tự đào tạo bản thân bằng cách kiểm tra và học hỏi từ các hành động của ứng dụng web trong quá trình scan. Không chỉ vậy Arachni còn thực hiện phân tích meta bằng một số yếu tố để đánh giá độ tin cậy của kết quả tìm được để tránh cho ra các kết quả sai.

5. W3af

W3af (Web Application Attack and Audit Framework) là một web scanner mã nguồn mở. Web scanner này cung cấp một công cụ quét và khai thác lỗ hổng cho các ứng dụng web. W3af được viết bằng ngôn ngữ Python và có sẵn cho nhiều hệ điều hành phổ biến khác như Microsoft Windows, Linux, Mac OS X, FreeBSD và OpenBSD. W3af được chia thành hai phần chính, đó là core và các plug-in. Bộ quét lỗ hổng xác định hầu hết các lỗ hổng trong ứng dụng web bằng cách sử dụng hơn 130 plug-in. Phần core kết hợp với các quy trình và đưa ra các tính năng dựa trên plug-in. Để từ đó tìm ra các lỗ hổng và khai thác chúng.

Kết luận

Kiểm thử lỗ hổng XSS thường chỉ là một phần nhỏ trong quá trình kiểm thử nhưng nó lại rất quan trọng và không thể bỏ qua. Nếu hệ thống web có lỗ hổng XSS mà tester lại bỏ sót việc kiểm thử trường hợp này thì hậu quả sẽ rất nghiêm trọng. Vì vậy, người tester phải có kiến thức và đánh giá được mức độ rủi ro đến từ các cuộc tấn công XSS có thể xảy ra. Bài viết đã giới thiệu một số công cụ kiểm thử XSS tự động, hi vọng đây sẽ là gợi ý nhỏ giúp công việc của tester dễ dàng và tiện lợi hơn.

Tài liệu tham khảo

https://viblo.asia/p/ky-thuat-tan-cong-xss-va-cach-ngan-chan-YWOZr0Py5Q0 https://cystack.net/vi/resource/kiem-thu-lo-hong-xss-tren-cac-website/