Cách dùng HTML để Hack Website – HTML INJECTION

SQL INJECTION thì chắc các bạn đã nghe qua lâu rồi nhưng HTML INJECTION thì có ít người biết đến hơn. Nhưng nó cũng không kém phần nguy hiểm so với SQL INJECTION đâu nhé. Vậy nên, trong bài viết này, chúng ta sẽ tìm hiểu xem HTML INJECTION là gì và dùng nó để tấn công như thế nào.

Có một số người thường trêu đùa dùng HTML để hack NASA, nhưng có thể bạn chưa biết, lợi lỗ hổng trong ở cấu hình PHP, ta có thể Hack Website được bằng HTML một cách đơn giản.

Cách tấn công HTML INJECTION - Bug Bounty 2022

HTML Injection là gì?

HTML injection là một lỗ hổng ứng dụng web cho phép bất kỳ kẻ tấn công nào nhúng code html của riêng chúng vào một trang web. Nói một cách dễ hiểu, nó có thể được sử dụng bởi bất kỳ kẻ tấn công nào để thêm code html của riêng chúng vào bên trong một trang web.

Hãy lấy một ví dụ thực tế:

Cách dùng HTML để Hack Website - HTML INJECTION 6

Trong trang web trên, bạn có thể thấy rằng nó có tính năng tìm kiếm. Hãy thử tìm kiếm thứ gì đó.

Cách dùng HTML để Hack Website - HTML INJECTION 7

 

Như bạn có thể thấy, mình đã cố gắng tìm kiếm “Faiyaz” và nhận được kết quả này. Chúng ta có thể thấy rằng “Faiyaz” đang ánh xạ trên trang web. Bằng cách phân tích điều này, chúng tôi có thể kết luận rằng “Faiyaz” đang hiển thị trong trang web. Để xác nhận điều này, hãy tìm kiếm “anything” trên trang web.

Cách dùng HTML để Hack Website - HTML INJECTION 8

Vậy là mình đã đoán đúng. Bây giờ chúng ta đã chắc chắn rằng bất cứ thứ gì mình nhập vào trường tìm kiếm, thì đều sẽ được hiển thị trên trang web. Bây giờ, điều gì sẽ xảy ra nếu mình gõ <h1>Faiyaz</h1> vào trường tìm kiếm.

Cách dùng HTML để Hack Website - HTML INJECTION 9

Như chúng ta có thể thấy, dòng chữ “Faiyaz” được in đậm. Nó xác nhận rằng code html, tức là Faiyaz đã được hiển thị trên trang web thành công. Bạn có thể tiếp tục thử các code html khác trên trang web https://ift.tt/z2Tj3q7.

Làm sao để tìm được lỗi HTML Injection

Bạn có thể chèn code HTML ở bất cứ nơi nào trên ứng dụng web miễn nó chấp nhận bất kỳ thông tin đầu vào nào của người dùng và ánh xạ lên trang web. Nó có thể nằm trong:

  • Các trường đầu vào (Giống như ví dụ ở trên)
  • Tham số Get (Như https://ift.tt/auleUMc)
  • Tiêu đề (Giống như X-Forwarded-Host: <h1>Hey</h1>)
  • Tham số POST (Như tên người dùng, mật khẩu,…)

HTML Injection trong thực tiễn

Đây là câu chuyện khi mình đang tìm kiếm trên một chương trình tư nhân khoảng 2 tháng trước. Trang web có 2 chức năng:

Mình bắt đầu tìm kiếm hai chức năng này trong khoảng 4 tiếng và không nhận được gì. Rồi sau khi nghỉ ngơi một ngày, mình lại bắt đầu đi săn. Lần này mình bắt đầu tìm kiếm lỗi hổng HTML Injection. Vì vậy, mình đã cố gắng đăng ký lại trên trang web và nhận thấy một số điều:

  • Chức năng đăng ký yêu cầu địa chỉ email, tên người dùng và mật khẩu.
  • Khi mình nhấp vào đăng ký sau khi điền các chi tiết đó. Một email xác nhận sẽ được gửi đến tài khoản email của mình.
  • Bên trong email đó có một nội dung như thế này

“Này Faiyaz, Vui lòng xác minh tài khoản của bạn tại đây: https://verificationlink.com/”

Và đây “Faiyaz” là tên người dùng mà mình đã điền khi đăng ký vào trang web.

Nhận thấy điều này, mình đã đăng ký lại nhưng lần này mình cung cấp tên người dùng là:

<h1>Hacked</h1>

Và thật bất ngờ, mình nhận được kết quả như hình bên dưới:Cách dùng HTML để Hack Website - HTML INJECTION 10

Như bạn có thể thấy, thẻ html của chúng ta đã được hiển thị thành công. Mình đã báo cáo lỗi này cho công ty và họ đã phản hồi nó trong vòng một tuần. Bài viết được dịch từ tác giả Faiyaz.

Previous Post Next Post