Cross-Site Scripting (XSS) là một trong những kĩ thuật tấn công phổ biến nhất hiện nay, được mệnh danh là Godfather of Attack, và trong nhiều năm liền được liệt vào danh sách những kỹ thuật tấn công nguy hiểm nhất với ứng dụng web. 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 Đ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: alert(document.cookie)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. Kịch bản khai thác trong thực tế Có nhiều hướng để khai thác thông qua lỗi Reflected XSS, một trong những cách được biết đến nhiều nhất là chiếm phiên làm việc (session) của người dùng, từ đó có thể truy cập được dữ liệu và chiếm được quyền của họ trên website. Chi tiết được mô tả theo các bước như sau: Người dùng đăng nhập web và giả sử được gán session: Bằng cách nào đó, hacker gửi được cho người dùng URL: Giả sử example.com là website nạn nhân truy cập, hacker-site.net là trang của hacker tạo ra Nạn nhân truy cập đến URL trên Server phản hồi cho nạn nhân, kèm với dữ liệu có trong request(đoạn javascript của hacker) Trình duyệt nạn nhân nhận phản hồi và thực thi đoạn javascript Đoạn javascript mà hacker tạo ra thực tế như sau: Dòng lệnh trên bản chất thực hiện request đến site của hacker với tham số là cookie người dùng: Từ phía site của mình, hacker sẽ bắt được nội dung request trên và coi như session của người dùng sẽ bị chiếm. Đến lúc này, hacker có thể giả mạo với tư cách nạn nhân và thực hiện mọi quyền trên website mà nạn nhân có. Thực hành: Google có tạo 1 trang để thực hành khai thác lỗi XSS ở đây:https://xss-game.appspot.com Mục tiêu của các challenge này là bạn phải inject các đoạn script để có thể bật ra được một cái popup Ở challenge đầu tiên chính là minh họa cho kỹ thuật reflected, mã khai thác khá đơn giản: Mã: https://xss-game.appspot.com/level1/frame?query=alert('pwned') Các bạn có thể vào đấy hoặc tham gia whitehat contest để thực hành khai thác XSS
Re: Các kiểu khai thác XSS – Phần 1: Reflected XSS Hiện tại XSS đang là lỗi được khai thác nhiều nhất để cho các bug hunter khai thác và lấy tiền thưởng từ Facebook, Google....
- Tạo mới 100 tài khoản/100 forum Pr1-5: giá 50K - giao hàng 24h Chi tiết vui lòng liên hệ Khánh: 0934225077 Yahoo/ Skype: hanhtrinh24h Mail: dokhanh82@gmail.com Web: hanhtrinh24h.com _____________________ 2048 zing deal giam can hieu qua giam can 24h viet nam thanh lap cong ty thanh lap doanh nghiep 2048 hanhtrinh24h dao tao buy twitter followers Khach san Da Nang Laptop Cu nguyen quoc khanh buyyoutubeviews laptop cũ buyyoutubeviews thiet ke web quan 9 thiet ke web zend
Re: Web8: Các kiểu khai thác XSS – Phần 1: Reflected XSS Vậy câu hỏi là: Làm sao để lập trình web vô hiệu hóa lỗi này?
Re: Web8: Các kiểu khai thác XSS – Phần 1: Reflected XSS Trong javascript và php có rất nhiều hàm kiểm tra dữ liệu đầu vào để làm giảm bớt khả năng tấn công này có thể xảy ra. Ví dụ: $removexss(), $input_stripe Để phòng ngừa, hãy luôn cập nhật trình duyệt tới phiên bản mới nhất, bởi vì bản thân các trình duyệt hiện nay đã tích hợp sẵn các công nghệ để loại bỏ tấn công này. Ví dụ: chrome có chrome xss audit, IE có XSS Filter....
Re: Web8: Các kiểu khai thác XSS – Phần 1: Reflected XSS vậy nếu tôi không sử dụng php? Tôi dùng 1 thứ khác, ví dụ Java, Perl hoặc Python? và đặc biệt, khách hàng của tôi nhiều người họ vẫn dùng trình duyệt cũ, dù tôi đã nhắc nhở nhiều nhưng họ không cập nhật, họ thà ... bỏ site của tôi còn hơn là phải cập nhật. Vậy làm sao tôi có thể bảo vệ, ít nhất là site của tôi, tránh khỏi XSS?
Re: Web8: Các kiểu khai thác XSS – Phần 1: Reflected XSS Hầu hết mọi framework (dù là java, asp.net,python,...) đều hỗ trợ chống lỗi này, có thể là hỗ trợ thư viện/hàm encode hoặc 1 số FW mặc định các UI của nó đã encode cho mình rồi. Nếu không có thể viết 1 hàm encode rồi gọi hàm này xử lý validate thôi.
Re: Web8: Các kiểu khai thác XSS – Phần 1: Reflected XSS không học giỏi Tiếng Anh với không gặp mấy lỗi này đọc cmt của mấy thánh thật khó khăn quá đi
Bài viết rất hay. Trước đây em từng nghe 1 vị tiền bói kêu là xss còn có thể loại tấn công lừa người dùng click link của attacker rồi sau đó browser của nạn nhân sẽ tự động download mã độc về máy nạn nhân và thực thi. Trong trường hợp này thì mục tiêu của kẻ tấn công không còn là server mà là client em muốn biết là phương thức tấn công đó có nằm trong loại Reflected XSS hay không hoặc phương thức đó có thực sự tồn tại. em xin cảm ơn
Chào các tiền bối. Các tiền bối cho em hỏi phương pháp hack acc chủ động trên https là như thế nào và tools hack. Em đang dùng kali linux 2017. Tiền bối có thể giúp em đươc không. Thanks
Câu hỏi của bạn @doan linh đã được trả lời tại: https://whitehat.vn/threads/14-cong-cu-ma-nguon-mo-giup-tim-kiem-lo-hong-ung-dung-web.6781/page-2 Bạn chú ý không đặt 1 câu hỏi vào hàng loạt topic. Nếu tiếp tục vi phạm BQT sẽ xử lý.