[Thủ thuật] Kích hoạt lỗ hổng XSS thông qua tính năng file upload

Thảo luận trong 'Web Security' bắt đầu bởi DDos, 24/10/17, 03:10 PM.

  1. DDos

    DDos Super Moderator Thành viên BQT

    Tham gia: 22/10/13, 08:10 PM
    Bài viết: 1,395
    Đã được thích: 219
    Điểm thành tích:
    63
    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.

    Để hiểu rõ hơn về XSS, các bạn tham khảo hai bài viết dưới đây.

    + Các kiểu khai thác XSS – Phần 1: Reflected XSS https://whitehat.vn/threads/cac-kieu-khai-thac-xss-–-phan-1-reflected-xss.1108/
    + Các kiểu khai thác XSS – Phần 2: Stored XSS https://whitehat.vn/threads/web9-cac-kieu-khai-thac-xss-–-phan-2-stored-xss.1612/

    Trong bài viết này, mình sẽ chia sẻ một thủ thuật nhỏ trong quá trình tìm lỗ hổng XSS trong một website, thông qua tính năng file upload.
    File upload là một tính năng khá phổ biến trong ứng dụng web. Đơn giản như một diễn đàn cho phép bạn upload hình ảnh trong một bình luận, trong một bài viết mới, một văn bản mới... Nếu webserver không kiểm tra kỹ dữ liệu đầu vào, thì một lỗ hổng XSS rất có thể tồn tại trên webserver thông qua tính năng này.

    Cách làm như sau.
    1. Đổi tên của file mà bạn định upload có dạng là một xss payload như: "><img srx=x onerror=prompt("XSS">.jpg
    Chú ý: Bạn chỉ có thể làm thao tác này trên Linux, vì Windows không hỗ trợ đặt tên file có chứa dấu "><"
    2. Upload file lên webserver
    3. Truy cập file bạn vừa up lên webserver. Nếu ứng dụng web không lọc kỹ input, XSS payload sẽ được đốt cháy

    xss.PNG

    Các bạn có thể xem video dưới đâ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
    NgMSon and Sugi_b3o like this.