XSS - Cross Site Scripting, tránh gọi tắt CSS trùng với Cascading Style Sheet. XSS là lỗ hổng của Web Application cho phép hacker chạy client side scripts(đặc biệt Javascript) của họ khi có người khác truy cập trang web.
Trong một cuộc tấn công XSS điển hình, hacker sẽ đưa mã javascript độc hại của mình vào các trang web hợp pháp. Khi người dùng truy cập vào liên kết đặc biệt có chứa phần mã độc, trang web sẽ thực hiện các javascript độc hại đó. Một lỗ hổng XSS nếu khai thác thành công sẽ cho phép kẻ tấn công lừa đảo, ăn cắp tài khoản và thậm chí là cài đặt worms.
Ví dụ: Chúng ta hãy tưởng tượng, một hacker đã phát hiện ra lỗ hổng XSS trong Gmail và tiêm script độc hại vào. Khi người dùng truy cập vào các trang web, nó sẽ thực thi kịch bản độc hại. Mã độc này có thể được sử dụng để chuyển hướng người dùng đến trang gmail giả hoặc đánh cắp cookie. Sử dụng cookie này bị đánh cắp, ông có thể đăng nhập vào tài khoản của bạn và thay đổi mật khẩu.
Sẽ dễ dàng hơn để tìm hiểu về XSS nếu bạn có khả năng:
- Giỏi về HTML,javascript(Xem thêm).
- Biết về HTTP client-Server Architecure.(Xem thêm)
- Biết thêm về một vài server side programming (php, asp, jsp).
Thực hành XSS:
Hacker sẽ dùng google dork để tìm các site có lỗi hổng XSS, bằng các từ khóa dạng như: “?search=” hay “.php?q=”. Sẽ có rất nhiều kết quả để họ làm mục tiêu và thực hiện tấn công.
Các bạn có thể tự viết đoạn mã như sau, lưu thành file php và chạy ở localhost để test.
Bắt đầu khai thác, thử nhập 1 giá trị bất kỳ và nhấn nút GO, trang sẽ hiện kết quả ngay bên dưới.
Như định nghĩa của XSS, vậy ta hãy thử nhập vào một đoạn mã javascript thử xem thế nào. Ví dụ:
Nếu website bị dính lỗ hổng XSS, chúng ta sẽ có kết quả như sau:
Các kiểu XSS cơ bản: Được phân chia thành 2 loại, Non-Persistent XSS và Persistent XSS
Persistent XSS: Chỉ các cuộc tấn công mà mã độc được đưa lên và lưu trữ trong database. Nó hoạt động mọi khi có người truy cập vào trang thể hiện mã. Ví dụ: Khi đăng ký thành viên, phần giới thiệu về bản thân, nếu hacker nhập vào mã XSS, và website không kiểm tra kỹ dữ liệu đầu vào, thì mỗi khi truy cập trang thành viên của hacker đó, bạn sẽ bị khai thác.
Non-Persistent XSS: Chỉ các cuộc tấn công tức thời, mã độc được gắn ngay trên URL, hoặc bằng cách nào đó mà không lưu trữ trong database. Chỉ có tác dụng duy nhất một lần.
Trong một cuộc tấn công XSS điển hình, hacker sẽ đưa mã javascript độc hại của mình vào các trang web hợp pháp. Khi người dùng truy cập vào liên kết đặc biệt có chứa phần mã độc, trang web sẽ thực hiện các javascript độc hại đó. Một lỗ hổng XSS nếu khai thác thành công sẽ cho phép kẻ tấn công lừa đảo, ăn cắp tài khoản và thậm chí là cài đặt worms.
Ví dụ: Chúng ta hãy tưởng tượng, một hacker đã phát hiện ra lỗ hổng XSS trong Gmail và tiêm script độc hại vào. Khi người dùng truy cập vào các trang web, nó sẽ thực thi kịch bản độc hại. Mã độc này có thể được sử dụng để chuyển hướng người dùng đến trang gmail giả hoặc đánh cắp cookie. Sử dụng cookie này bị đánh cắp, ông có thể đăng nhập vào tài khoản của bạn và thay đổi mật khẩu.
Sẽ dễ dàng hơn để tìm hiểu về XSS nếu bạn có khả năng:
- Giỏi về HTML,javascript(Xem thêm).
- Biết về HTTP client-Server Architecure.(Xem thêm)
- Biết thêm về một vài server side programming (php, asp, jsp).
Thực hành XSS:
Hacker sẽ dùng google dork để tìm các site có lỗi hổng XSS, bằng các từ khóa dạng như: “?search=” hay “.php?q=”. Sẽ có rất nhiều kết quả để họ làm mục tiêu và thực hiện tấn công.
Các bạn có thể tự viết đoạn mã như sau, lưu thành file php và chạy ở localhost để test.
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>BASIC XSS TEST</title>
</head>
<body>
<form method="post" action="#">
<input type="text" name="query" value="" />
<input type="submit" value="GO" />
<br />
<?php echo $_POST['query']
;?>
</body>
</html>
Bắt đầu khai thác, thử nhập 1 giá trị bất kỳ và nhấn nút GO, trang sẽ hiện kết quả ngay bên dưới.
Như định nghĩa của XSS, vậy ta hãy thử nhập vào một đoạn mã javascript thử xem thế nào. Ví dụ:
<script>alert('Quyle - VHB Group')</script>
Nếu website bị dính lỗ hổng XSS, chúng ta sẽ có kết quả như sau:
Các kiểu XSS cơ bản: Được phân chia thành 2 loại, Non-Persistent XSS và Persistent XSS
Persistent XSS: Chỉ các cuộc tấn công mà mã độc được đưa lên và lưu trữ trong database. Nó hoạt động mọi khi có người truy cập vào trang thể hiện mã. Ví dụ: Khi đăng ký thành viên, phần giới thiệu về bản thân, nếu hacker nhập vào mã XSS, và website không kiểm tra kỹ dữ liệu đầu vào, thì mỗi khi truy cập trang thành viên của hacker đó, bạn sẽ bị khai thác.
Non-Persistent XSS: Chỉ các cuộc tấn công tức thời, mã độc được gắn ngay trên URL, hoặc bằng cách nào đó mà không lưu trữ trong database. Chỉ có tác dụng duy nhất một lần.
XSS cơ bản
4/
5
Oleh
Unknown