DDos
VIP Members
-
22/10/2013
-
524
-
2.191 bài viết
[Giới thiệu] Cross Site Scripting (XSS)
Cross-SiteScripting là một loại vấn đề tiêm (injection), trong đó các script độc hại được tiêm vào các trang web đáng tin cậy. Cross-site scripting (XSS) xảy ra khi một kẻ tấn công sử dụng một ứng dụng web để gửi mã độc hại,thường tiêm vào link hoặc mã ngồn của một trình duyệt,cho một người dùng cuối khác nhau. Lỗ hổng cho phép các cuộc tấn công thành công là khá phổ biến và xảy ra bất cứ nơi nào.
Một kẻ tấn công có thể sử dụng XSS để gửi một kịch bản độc hại cho người sử dụng mà không làm họ không nghi ngờ. Trình duyệt của người dùng cuối không có cách nào để biết rằng trường hợp nào là nên hay không nên tin tưởng, và XSS sẽ thực thi kịch bản. Vì nó nghĩ rằng kịch bản đến từ một nguồn đáng tin cậy, kịch bản độc hại có thể truy cập bất kỳ tập tin cookie, session tokens, hoặc các thông tin nhạy cảm khác được giữ lại bởi trình duyệt của bạn và sử dụng với trang web đó. Các kịch bản thậm chí có thể ghi lạ icác nội dung của trang HTML.
Cross-SiteScripting (XSS) xảy ra khi :
Dữ liệu vào một ứng dụng Web thông qua một nguồn không đáng tin cậy , thường xuyên nhất là một yêu cầu truy cập tới web nào đó .
Dữ liệu được bao gồm trong nội dung động được gửi tới một người sử dụng web mà không được xác nhận như một mã độc .
Nội dung độc hại gửi đến trình duyệt web thường có dạng của một đoạn của JavaScript, nhưng cũng có thể bao gồm HTML , Flash hoặc bất kỳ loại mã mà trình duyệt có thể thực hiện . Sự đa dạng của các cuộc tấn công dựa trên XSS là gần như vô hạn , nhưng họ thường bao gồm việc lấy dữ liệu cá nhân như cookie hoặc các thông tin về session, chuyển hướng nạn nhân đến nội dung trang web được kiểm soát bởi những kẻ tấn công ,hoặc thực hiện các hoạt động độc hại khác trên máy tính của người dùng dưới chiêu bài của các trang web dễ bị tổn thương.
Storedand Reflected
Các cuộc tấn công XSS thường có thể được phân loại thành hai loại: Stored và Reflected. Có một thứ ba, loại này ít nhiều được biết đến là một loại củaXSS được gọi là DOM.
+Stored XSS
Stored XSS là những nơi mà script thường được lưu trữ trêncác máy chủ mục tiêu, chẳng hạn như trong một cơ sở dữ liệu , trong một tin nhắn của diễn đàn, nhật ký truy cập, nạn nhân sau đó truy cập tới mã độc từ máy chủ khi nó yêu cầu lưu trữ thông tin . Stored XSS cũng đôi khi được gọi là Persistent hoặc Type-I XSS.
+Reflected XSS
ReflectedXSS là những nơi mà script độc hại được tiêm vào web phản ánh ra khỏi máy chủ web, chẳng hạn như trong một thông báo lỗi , kết quả tìm kiếm , hoặc bất kỳ phản ứng khác bao gồm một số hoặc tất cả các đầu vào gửi đến máy chủ như một phần của yêu cầu. ReflectedXSS được cung cấp cho các nạn nhân thông qua một đường link , chẳng hạn như trong một thông báo e -mail, hoặc trên một số trang web khác . Khi một người dùng bị lừa click vào một liên kết độc hại , một mẫu thiết kế đặc biệt , hoặc thậm chí chỉ cần truy cập vào một trang web độc hại, mã tiêm chuyển đi đến trang web dễ bị tổn thương , Reflected XSS trở lại trình duyệt của người dùng. Các trình duyệt sau đó thực thi script vì nó đến từ một " đáng tin cậy " của máy chủ. Reflected XSS đôi khi được gọi là Non-Persistent hoặc Type-II XSS.
Hậuquả của XSS
Hậu quả của một cuộc tấn công XSS là như nhau bất kể nó là Reflected hoặc Stored (hoặc DOM Based) . Sự khác biệt là làm thế nào để chuyển payload đến lúc máy chủ . Đừng để bị lừa vào suy nghĩ rằng một trang web "chỉ đọc " (read-only) không phải là nạn nhân của XSS. XSS có thể gây ra một loạt các vấn đề cho người dùng cuối có độ mức độ nghiêm trọng từ một ít phiền toái để có thể thâm nhập tài khoản người dùng. Các cuộc tấn công nghiêm trọng nhất liên quan đến XSS tiết lộ cookie phiên của người sử dụng , cho phép kẻ tấn công chiếm quyền điều khiển phiên làm việc của người dùng và nhận tài khoản. Các cuộc tấn công gây hại khác bao gồm việc công bố các tập tin người dùng cuối, cài đặt các chương trình Trojan horse , chuyển hướng người dùng đến một số trang hoặc trang web khác, hoặc sửa đổi trình bày nội dung. Một lỗ hổng XSS cho phép kẻ tấn công để sửa đổi một thông cáo báo chí hoặc mục tin tức có thể ảnh hưởng đến giá cổ phiếu của một công ty hoặc làm giảm sự tự tin của người tiêu dùng . Một lỗ hổng XSS trên một trang web dược phẩm có thể cho phép kẻ tấn công để sửa đổi thông tin liều lượng dẫn đến quá liều .
Làm thế nào để Xác định: Nếu bạn là dễ bị tổn thương
Lỗi XSS rất khó khăn để xác định và loại bỏ từ một ứng dụng web . Cách tốt nhất để tìm sai sót là để thực hiện một đánh giá bảo mật của code trên web. Lưu ý rằng một loạt các thẻ HTML khác nhau có thể được sử dụng để truyền tải một JavaScript độc hại. Nessus , Nikto , và một số công cụ có sẵn khác có thể giúp quét một trang web cho những lỗi XSS có thể,nhưng chỉ có thể làm sơ qua. Nếu một phần của một trang web là dễ bị tổn thương , có một khả năng cao rằng có những vấn đề khác nữa .
Để hình dung rõ hơn các bạn có thể tham khảo video sau:
Source: OWASP
Một kẻ tấn công có thể sử dụng XSS để gửi một kịch bản độc hại cho người sử dụng mà không làm họ không nghi ngờ. Trình duyệt của người dùng cuối không có cách nào để biết rằng trường hợp nào là nên hay không nên tin tưởng, và XSS sẽ thực thi kịch bản. Vì nó nghĩ rằng kịch bản đến từ một nguồn đáng tin cậy, kịch bản độc hại có thể truy cập bất kỳ tập tin cookie, session tokens, hoặc các thông tin nhạy cảm khác được giữ lại bởi trình duyệt của bạn và sử dụng với trang web đó. Các kịch bản thậm chí có thể ghi lạ icác nội dung của trang HTML.
Cross-SiteScripting (XSS) xảy ra khi :
Dữ liệu vào một ứng dụng Web thông qua một nguồn không đáng tin cậy , thường xuyên nhất là một yêu cầu truy cập tới web nào đó .
Dữ liệu được bao gồm trong nội dung động được gửi tới một người sử dụng web mà không được xác nhận như một mã độc .
Nội dung độc hại gửi đến trình duyệt web thường có dạng của một đoạn của JavaScript, nhưng cũng có thể bao gồm HTML , Flash hoặc bất kỳ loại mã mà trình duyệt có thể thực hiện . Sự đa dạng của các cuộc tấn công dựa trên XSS là gần như vô hạn , nhưng họ thường bao gồm việc lấy dữ liệu cá nhân như cookie hoặc các thông tin về session, chuyển hướng nạn nhân đến nội dung trang web được kiểm soát bởi những kẻ tấn công ,hoặc thực hiện các hoạt động độc hại khác trên máy tính của người dùng dưới chiêu bài của các trang web dễ bị tổn thương.
Storedand Reflected
Các cuộc tấn công XSS thường có thể được phân loại thành hai loại: Stored và Reflected. Có một thứ ba, loại này ít nhiều được biết đến là một loại củaXSS được gọi là DOM.
+Stored XSS
Stored XSS là những nơi mà script thường được lưu trữ trêncác máy chủ mục tiêu, chẳng hạn như trong một cơ sở dữ liệu , trong một tin nhắn của diễn đàn, nhật ký truy cập, nạn nhân sau đó truy cập tới mã độc từ máy chủ khi nó yêu cầu lưu trữ thông tin . Stored XSS cũng đôi khi được gọi là Persistent hoặc Type-I XSS.
+Reflected XSS
ReflectedXSS là những nơi mà script độc hại được tiêm vào web phản ánh ra khỏi máy chủ web, chẳng hạn như trong một thông báo lỗi , kết quả tìm kiếm , hoặc bất kỳ phản ứng khác bao gồm một số hoặc tất cả các đầu vào gửi đến máy chủ như một phần của yêu cầu. ReflectedXSS được cung cấp cho các nạn nhân thông qua một đường link , chẳng hạn như trong một thông báo e -mail, hoặc trên một số trang web khác . Khi một người dùng bị lừa click vào một liên kết độc hại , một mẫu thiết kế đặc biệt , hoặc thậm chí chỉ cần truy cập vào một trang web độc hại, mã tiêm chuyển đi đến trang web dễ bị tổn thương , Reflected XSS trở lại trình duyệt của người dùng. Các trình duyệt sau đó thực thi script vì nó đến từ một " đáng tin cậy " của máy chủ. Reflected XSS đôi khi được gọi là Non-Persistent hoặc Type-II XSS.
Hậuquả của XSS
Hậu quả của một cuộc tấn công XSS là như nhau bất kể nó là Reflected hoặc Stored (hoặc DOM Based) . Sự khác biệt là làm thế nào để chuyển payload đến lúc máy chủ . Đừng để bị lừa vào suy nghĩ rằng một trang web "chỉ đọc " (read-only) không phải là nạn nhân của XSS. XSS có thể gây ra một loạt các vấn đề cho người dùng cuối có độ mức độ nghiêm trọng từ một ít phiền toái để có thể thâm nhập tài khoản người dùng. Các cuộc tấn công nghiêm trọng nhất liên quan đến XSS tiết lộ cookie phiên của người sử dụng , cho phép kẻ tấn công chiếm quyền điều khiển phiên làm việc của người dùng và nhận tài khoản. Các cuộc tấn công gây hại khác bao gồm việc công bố các tập tin người dùng cuối, cài đặt các chương trình Trojan horse , chuyển hướng người dùng đến một số trang hoặc trang web khác, hoặc sửa đổi trình bày nội dung. Một lỗ hổng XSS cho phép kẻ tấn công để sửa đổi một thông cáo báo chí hoặc mục tin tức có thể ảnh hưởng đến giá cổ phiếu của một công ty hoặc làm giảm sự tự tin của người tiêu dùng . Một lỗ hổng XSS trên một trang web dược phẩm có thể cho phép kẻ tấn công để sửa đổi thông tin liều lượng dẫn đến quá liều .
Làm thế nào để Xác định: Nếu bạn là dễ bị tổn thương
Lỗi XSS rất khó khăn để xác định và loại bỏ từ một ứng dụng web . Cách tốt nhất để tìm sai sót là để thực hiện một đánh giá bảo mật của code trên web. Lưu ý rằng một loạt các thẻ HTML khác nhau có thể được sử dụng để truyền tải một JavaScript độc hại. Nessus , Nikto , và một số công cụ có sẵn khác có thể giúp quét một trang web cho những lỗi XSS có thể,nhưng chỉ có thể làm sơ qua. Nếu một phần của một trang web là dễ bị tổn thương , có một khả năng cao rằng có những vấn đề khác nữa .
Để hình dung rõ hơn các bạn có thể tham khảo video sau:
[video=youtube;jm1-_nTlhzY]http://www.youtube.com/watch?v=jm1-_nTlhzY[/video]
Source: OWASP
Chỉnh sửa lần cuối bởi người điều hành: