DDos
VIP Members
-
22/10/2013
-
524
-
2.191 bài viết
[Thủ thuật] Kích hoạt lỗ hổng XSS thông qua tính năng file upload
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
Các bạn có thể xem video dưới đây:
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
Các bạn có thể xem video dưới đây: