Web8: Các kiểu khai thác XSS – Phần 1: Reflected XSS

Thảo luận trong 'Web Security' bắt đầu bởi ping, 30/05/14, 11:05 AM.

  1. ping

    ping Super Moderator

    Tham gia: 19/06/13, 09:06 AM
    Bài viết: 102
    Đã được thích: 33
    Điểm thành tích:
    48
    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
    [​IMG]
    Mọi chuyện đến giờ vẫn ổn, chúng ta xem lại source code html
    [​IMG]
    Đ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:
    [​IMG]
    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:
    [​IMG]

    1. Người dùng đăng nhập web và giả sử được gán session:
    2. 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
    3. Nạn nhân truy cập đến URL trên
    4. 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)
    5. Trình duyệt nạn nhân nhận phản hồi và thực thi đoạn javascript
    6. Đ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:

    7. 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
     
    Last edited by a moderator: 05/06/14, 03:06 PM
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
    tinhtv thích bài này.
  2. DDos

    DDos Super Moderator Thành viên BQT

    Tham gia: 22/10/13, 08:10 PM
    Bài viết: 1,504
    Đã được thích: 273
    Điểm thành tích:
    83
    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.... :D
     
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  3. bidasaigon2014

    bidasaigon2014 Banned

    Tham gia: 30/05/14, 07:05 AM
    Bài viết: 11
    Đã được thích: 0
    Điểm thành tích:
    1
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  4. myquartz

    myquartz W-------

    Tham gia: 28/09/14, 05:09 PM
    Bài viết: 25
    Đã được thích: 4
    Điểm thành tích:
    18
    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?
     
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  5. DDos

    DDos Super Moderator Thành viên BQT

    Tham gia: 22/10/13, 08:10 PM
    Bài viết: 1,504
    Đã được thích: 273
    Điểm thành tích:
    83
    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....
     
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  6. myquartz

    myquartz W-------

    Tham gia: 28/09/14, 05:09 PM
    Bài viết: 25
    Đã được thích: 4
    Điểm thành tích:
    18
    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?
     
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  7. dancago

    dancago W-------

    Tham gia: 18/06/14, 09:06 AM
    Bài viết: 6
    Đã được thích: 0
    Điểm thành tích:
    6
    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.
     
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  8. nguyenhuong

    nguyenhuong W-------

    Tham gia: 28/11/14, 06:11 PM
    Bài viết: 1
    Đã được thích: 0
    Điểm thành tích:
    1
    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
     
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  9. nhatnguyen

    nhatnguyen W-------

    Tham gia: 26/11/13, 09:11 PM
    Bài viết: 4
    Đã được thích: 0
    Điểm thành tích:
    1
    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ỉnh sửa cuối: 09/07/17, 01:07 AM
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  10. STComputer

    STComputer Member

    Tham gia: 24/06/17, 12:06 PM
    Bài viết: 10
    Đã được thích: 0
    Điểm thành tích:
    1
    Sao em khai thác thử mà không được vậy anh
     
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  11. doan linh

    doan linh Member

    Tham gia: 09/06/17, 04:06 AM
    Bài viết: 18
    Đã được thích: 1
    Điểm thành tích:
    1
    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
     
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  12. whf

    whf Super Moderator Thành viên BQT

    Tham gia: 06/07/13, 03:07 AM
    Bài viết: 1,002
    Đã được thích: 667
    Điểm thành tích:
    113
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  13. tinhtv

    tinhtv W-------

    Tham gia: 02/06/15, 10:06 AM
    Bài viết: 1
    Đã được thích: 0
    Điểm thành tích:
    1
    Bài viết dễ hiểu quá
     
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  14. david19

    david19 Member

    Tham gia: 19/05/17, 04:05 PM
    Bài viết: 9
    Đã được thích: 0
    Điểm thành tích:
    1
    cho em hỏi là còn trang nào khác nữa không ạ? cảm ơn rất nhiều
     
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan