Danh mục

Hacking Security Sites part 27

Số trang: 6      Loại file: pdf      Dung lượng: 168.94 KB      Lượt xem: 23      Lượt tải: 0    
10.10.2023

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Đôi khi đang đọc thư bạn bị chuyển sang một website khác, bạn có nghĩ rằng bạn có thể mất mật khẩu. Trước đây, hàng loạt các hộp thư của Yahoo bị mất mật khẩu hay bị đọc trộm thư mà không rõ nguyên nhân. Có lẽ khi đó các bạn mở các bức thư mà không hề cảnh giác với XSSHacking Security Sites part 27
Nội dung trích xuất từ tài liệu:
Hacking Security Sites part 27 Đôi khi đang đọc thư bạn bị chuyển sang một website khác, bạn có nghĩ rằng bạn có thểmất mật khẩu. Trước đây, hàng loạt các hộp thư của Yahoo bị mất mật khẩu hay bị đọctrộm thư mà không rõ nguyên nhân. Có lẽ khi đó các bạn mở các bức thư mà không hềcảnh giác với XSS, đâu phải chỉ các file đính kèm mới có thể gây nguy hiểm cho bạn.Chỉ cần với một đoạn mã HTML gửi trong thư bạn đã hoàn toàn bị mất cookie của mình: CODE Vậy là khi bạn nhận thư, và nếu bạn vô tình đưa con chuột qua bức ảnh gửi kèm thì cũngcó nghĩa là bạn đã bị lấy mất cookie. Và với cookie lấy được, các hacker có thể dễ dànglogin hòm thư của bạn mà không cần biết mật khẩu của bạn. Thực sự tôi cũng rất bất ngờkhi tìm thấy rằng Yahoo khi đó đã ngăn được hầu hết các mối đe doạ từ các thẻ HTMLlại bỏ qua thẻ IMG. Tuy nhiên cho tới ngày 12/7/2003 Yahoo đã kịp thời vá lỗ hồngnghiêm trọng này, nhưng không phải vì vậy mà bạn mất cảnh giác với những lỗi củawebsite.Nếu như bạn gặp một liên kết có dạnghttp://example.com/search.cgi?query=alert(document.cookie)chắc chắn bạn sẽ phải xem xét kĩ trước khi click vào. Có thể là sẽ tắt JavaScript cho trìnhduyệt của bạn trước khi click vào hay ít nhất cũng có một chút cảnh giác. Nhưng nếu bạngặp một liên kết như thế này thì sao :Code:http://example.com/search.cgi?%71%75%65%61%72%79%3D%3C%73%63%72%69%70%74%3E%61%6C%65%61%72%74%28%64%63%75%6D%65%6E%6C%74%2E%63%6F%6F%6B%69%65%29%3C%2F%73%63%72%69%70%74%3E]http://example.com/search.cgi?%71%75%65%61...%72%69%70%74%3EĐó thực chất chính là liên kết ban đầu nhưng chỉ khác nó đã được mã hoá. Một phần kí tựcủa liên kết đã được thay thế bởi mã HEX của nó, tất nhiên trình duyệt của bạn vẫn hiểuđịa chỉ đó thực sự là gì. Bởi vậy bạn có thể sẽ gặp phải các đoạn mã nguy hiểm nếu nhưbạn mất cảnh giác với XSS.Tât nhiên còn rất nhiều những kiểu tấn công khác, trong đó có những kiểu đã được tìm racó những kiều chưa lường hết được, những trong khuôn khổ bài viết này tôi hi vọng vớimột vài ví dụ vừa rồi, các bạn cũng đã hiểu phần nào về XSS.4. Phát hiện XSS bằng cách nào ?Nếu như các bạn sử dụng các mã nguồn của các chương trình có sẵn bạn có thể thamkhảo danh sách các lỗ hổng của chương trình bạn trên các trang web chứa các thông tinvề bảo mật như securityfocus.com, securiteam.com,... Tuy nhiên nếu các website được tựviết mã nguồn thì bạn không thể áp dụng phương pháp trên. Trong trường hợp này bạncần đến các chương trình scanner tự động. Nếu như bạn sử dụng trong môi trườngWindows bạn có thể dùng N-Stealth hay AppScan, đó là những chương trình scan khátuyệt, bạn không chỉ kiểm tra được các lỗi XSS mà nó còn cho phép bạn kiểm tra các lỗikhác trong Website đó, Server đó.Tất nhiên đâu phải lúc nào bạn cũng cần kiểm tra tất cả, nếu như bạn chỉ muốn kiểm tracác lỗi XSS có trong website, bạn chỉ cần sử dụng screamingCSS. Đó là một Perl Scriptsẽ mở các kết nối tới website (sử dụng Perls socket) để kiểm tra các lỗi XSS của bạn.Hơn nữa bạn có thể sử dụng nó trong cả môi trường Unix lẫn Windows.5. Ngăn ngừa XSS như thế nào ?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. Có rất nhiều cách để có thể giải quyết vấn đề này.OWASP (The Open Web Application Standard Project) nói rằng để có thể xây dựng cácwebsite bảo mật cao, đối với các dữ liệu của người sử dụng bạn nên+ Chỉ chấp nhận những dữ liệu hợp lệ.+ Từ chối nhận các dữ liệu hỏng.+ Liên tục kiểm tra và thanh lọc sữ liệu.Tuy nhiên trên thực tế, một số trường hợp bạn phải chấp nhận mọi loại dữ liệu hay khôngcó một bộ lọc phù hợp. Chính vì vậy bạn phải có những cách riêng để giải quyết.Một trong những cách hay sử dụng là bạn mã hoá các kí tự đặc biệt trước khi in rawebsite, nhất là những gì có thể gây nguy hiểm cho người sử dụng. Trong trường hợp nàythẻ sẽ được đổi thành . Như vậy nó sẽ vẫn được in ra màn hình màkhông hề gây nguy hiểm cho người sử dụng.Tôi lấy ví dụ với script search.cgi với mã nguồn làCode:#!/usr/bin/perl use CGI; my $cgi = CGI->new(); my $query = $cgi->param(query); print $cgi->header(); print You entered $query;Đây hoàn toàn là một script có lỗi bởi vì nó in ra trực tiếp dữ liệu được nhập vào. Dĩnhiên là khi in ra, nó sẽ in ra dưới dạng đoạn mã HTML, như thế nó không chỉ không inra chính xác những dữ liệu vào một cách trực quan mà còn có tiềm ẩn lỗi XSS.Như đã nói ở trên, để có thể giải quyết vấn đề này, chúng ta có thể mã hoá các kí tự đặcbiệt của HTML với hàm HTML::Entities::encode(). Như vậy ta có thể có một mã nguồnhoàn hảo hơn như sau:Code:#!/usr/bin/perl use CGI; use HTML::Entities; my $cgi = CGI->new(); my $text = $cgi->param(text); print $cgi->header(); print You entered , HTML::Entities::encode($text);Tất nhiên với phương pháp này bạn cũng có thể áp dụng đối với các ngôn ngữ WebApplication khác (ASP, PHP...). Để kiểm tra việc ...

Tài liệu được xem nhiều: