Chào các bạn,

Hôm nay mình sẽ demo về một lỗ hổng đang có trên trang Tiki.vn có thể cho phép hacker chiếm lấy tài khoản người dùng thông qua lỗi XSS. Hôm trước mình có lên web Tiki để xem sản phẩm, là tester nên cũng có chút bệnh nghề nghiệp nên sẵn tiện mình kiểm tra sơ qua xem trang web có lỗi gì không, kết quả là phát hiện ra một lỗi khá thú vị về XSS này.
Tất cả những bước demo bên dưới mình đều làm trên một tài khoản do mình tạo ra và không lấy tài khoản của người dùng khác. Mình sẽ không chịu bất kỳ trách nhiệm nào nếu bạn dùng bài demo này vào mục đích xấu.

Các bước thực hiện:

1. Kiểm tra lỗi XSS trên trang web.
– Đầu tiên mình sẽ vào trang Tiki.vn và tìm đến một sản phẩm nào đó trên web để kiểm tra.
– Đây là link của sản phẩm:

– Để check lỗi XSS mình sẽ thêm lệnh: < script >alert(‘checking’)< /script > vào phía sau ?src= và chạy trên trình duyệt. Nếu có hiện popup với nội dung là “checking” thì trang web dính lỗi XSS. Đầy đủ URL kiểm tra sẽ như sau:

Có hiện thông báo, vậy là web có lỗi rồi, chúng ta qua bước tiếp theo.

2. Chèn mã đánh cắp cookies.
Hacker họ sẽ chèn một đoạn mã để lấy cookies thay vì chỉ hiện một popup với nội dung checking như bước 1, code đó sẽ có dạng như sau:

File ckies.php là file để đánh cắp cookies, nó sẽ lưu tất cả thông tin về cookies người dùng vào một file .txt được định sẵn, từ đó hacker có thể xem và đánh cắp thông tin. Để sử dụng code này cũng làm tương tự là chèn nó phía sau ?src=.

Nhưng nếu dán đoạn này lên trình duyệt nó sẽ không chạy được. Lúc này hacker sẽ làm thêm một bước là chuyển mã dòng <script> để nó có thể thực thi được trên trình duyệt. Chúng ta qua bước tiếp theo để xem họ sẽ làm như thế nào nhé.

3. Encode URL và gởi cho victim.
– Để encode sang dạng url có thể dùng trang http://asciitohex.com
– Code gốc trước khi chuyển:

– Code sau khi đã encoded:

– Full URL:  Vậy là đã chuyển mã xong, tiếp theo hacker sẽ nối link web và đoạn mã này lại thành một đường dẫn đầy đủ có dạng như sau:

Vậy là họ đã có 1 link để đánh cắp cookies với domain là Tiki.vn.
Họ sẽ gởi link này đến người cần lấy tài khoản, nếu người dùng đang đăng nhập và click vào thì sẽ bị mất cookies. Nguy hiểm của lỗi này là khi nhìn vào URL bên trên, người dùng sẽ không nghĩ là có mã độc vì domain chính vẫn đang là của Tiki.vn.

Bây giờ mình sẽ làm nạn nhân bằng cách đăng nhập vào tài khoản và tự nhập vào link trên để cookies bị ghi lại trong file log.txt của hacker.
Sau khi mình vào link trên thì nó tự đồng chuyển về trang chủ, mình hoàn toàn không biết rằng cookies đã bị ghi lại. Vậy chúng ta sẽ đi tiếp để xem hacker họ làm gì với thông tin đã lấy được nhé.

4. Kiểm tra file log và sửa cookies.
– Hacker sẽ kiểm tra file Logfile.txt, Đây là các thông tin cookies của mình vừa bị ghi lại.

– Cách hacker lấy tài khoản là họ sẽ dùng thông tin cookies của bạn và sử dụng một addons trên trình duyệt để add thông tin đó vào, lúc đó trình duyệt sẽ nghĩ là bạn đang đăng nhập. Có khá nhiều chương trình chỉnh sửa cookies ví dụ: Cookies Manager+ hoặc EditThisCookie.

5. Đăng nhập thông qua cookies.
– Hacker sẽ đăng nhập thông qua thông tin trong file log và không cần biết username, password của bạn. Mình sẽ dùng một trình duyệt khác (chưa login) để demo việc này.

xss-tiki-2(Thay thế TKSESSID hiện có)

xss-tiki-3

(Đăng nhập thành công)

Vậy là đã đăng nhập thành công bằng cookies (đánh cắp) mà không cần nhập user, password. Video các bước thực hiện:

Qua demo này mình muốn chia sẻ về sự nguy hiểm của lỗi XSS cũng như việc test lỗi bảo mật là rất cầ thiết để bảo vệ khách hàng của mình trước việc bị mất tài khoản. Mình đã report lỗi này đến Tiki, hy vọng họ sẽ fix sớm.

Nếu có thắc mắc hay muốn trao đổi thêm về lỗi XSS các bạn có thể liên hệ mình theo thông tin liên hệ trên blog. Cảm ơn các bạn đã xem.
—–
Update: Tiki.vn đã fix lỗi này sau khi nhận được thông báo.

8 Comments

  1. Em chào anh,

    Bài viết rất hay ạ!
    Hi vọng anh có nhiều bài viết hay nữa ạ!

    Cảm ơn anh!

  2. That’s sound great! ^^

  3. Bài viết rất hữu ích, cẳm ơn em

  4. Nếu như hệ thống hay mình tự xoá cookies liệu có còn bị vậy không ? Cookies nằm trên máy mình đăng nhập sao hack có thể lấy đc ?

    • Hi Hino Lâm,

      Q: Nếu như hệ thống hay mình tự xoá cookies liệu có còn bị vậy không ?
      A: Phương pháp trên dùng để lấy cookies người dùng nên nếu họ xóa hết các thông tin cookies trong máy cũng như không đăng nhập thì những thông tin lấy được sẽ không thể login.
      Q: Cookies nằm trên máy mình đăng nhập sao hack có thể lấy đc?
      A: Như ở bước 3 mình có đề cập, hacker họ sẽ dùng link trang bị lỗi (chứa mã độc) gởi đến người dùng và dẫn dụ họ nhấp vào, người dùng bị mất cookies sau khi click vào link đó. Cái nguy hiểm của phương pháp này là thay vì hacker gởi cho victim một link mã độc dạng http://random_url.com/…. và kêu victim nhấp vào thì họ sẽ nghi ngờ, nhưng nếu hacker dùng chính domain của trang lỗi, ví dụ: http://tiki.vn/sanpham/id=121….. thì khả năng click vào sẽ rất cao.

      Sang.

  5. Pingback: [Sercurity – XSS] – Cross Site Scripting at Tiki.vn – Automated Software Testing

  6. HoangHoaKma

    Bài viết vô cùng hữu ích.Cảm ơn anh Sang!

  7. Nếu session cookie được thiết lập HttpOnly thì mình không thể truy cập cookie thông qua javascript.

Leave a Comment

Your email address will not be published. Required fields are marked *