Skip to main content

Tôi đã hack phimmoi.net như thế nào? - Phần 2

Hôm nay vừa đúng một tuần tính từ ngày tớ hack phimmoi.net (24/06), chỉ sau đó hai ngày - 26/06, tớ tiếp tục phát hiện ra 2 lỗ hổng bảo mật tiếp theo thuộc sub-domain của phimmoi.net

Câu chuyện bắt đầu

Ngày 26/06, trong lúc vào xem phim tại phimmoi, tớ chợt để ý cái banner quảng cáo ở cột bên phải. Vì đang sử dụng uBlock nên tớ khá ngạc nhiên khi thấy vẫn có một banner hiển thị.


Tớ liền nhấn phải chuột vào banner và sao chép liên kết:
http://uniad.phimmoi.net/publisher/go/?bannerid=673&zoneid=3&dtime=1467368202&ctype=CPD&domain=phimmoi.net&verify=fe8043c8f4e38373918ba129a804b5d4&href=http%3A%2F%2Fcuuam.360game.vn%2Fintro%2Fcackpg3%2Flanding%2Findex.html%3Futm_source%3DBanner%26utm_medium%3DPhimmoi.net%26utm_content%3DPhimmoi.net_PlayerPage_Right1_300x600
Sử dụng tính năng Split URL (ngắt các tham số) và URLdecode của Hackbar:
http://uniad.phimmoi.net/publisher/go/
?bannerid=673
&zoneid=3
&dtime=1467368202
&ctype=CPD
&domain=phimmoi.net
&verify=fe8043c8f4e38373918ba129a804b5d4
&href=http://cuuam.360game.vn/intro/cackpg3/landing/index.html?utm_source=Banner&utm_medium=Phimmoi.net&utm_content=Phimmoi.net_PlayerPage_Right1_300x600
Vì là URL của một banner quảng cáo nên hiển nhiên đây là một trình chuyển hướng liên kết. Sau khi thực hiện chút nghiên cứu nhỏ, tớ phát hiện ra trong các tham số của URL thì chỉ có tham số href là bắt buộc (required). Như vậy, tớ hoàn toàn có thể lợi dụng trình chuyển hướng này để trỏ tớ bất cứ liên kết nào tớ muốn. Ví dụ:

http://uniad.phimmoi.net/publisher/go/?href=https://junookyo.blogspot.com


Rồi tớ tự đặt câu hỏi: "Vậy nếu giá trị truyền vào của tham số href không phải là một URL - liên kết hợp lệ thì sẽ thế nào nhỉ?"

http://uniad.phimmoi.net/publisher/go/?href=juno_okyo

Ồ, lúc này trình chuyển hướng sẽ chuyển tớ liên kết sau và hiển thị lỗi:

http://uniad.phimmoi.net/publisher/go/juno_okyo

Ở đây, lỗ hổng đầu tiên xuất hiện: Full Path Disclosure


Thử thay input thành tag để xem output có bị mã hóa HTML không nào!


Như vậy là có mã hóa, không thể inject thông qua input này được rồi.

Nhưng khoan, hãy để tớ thêm một chút... magic nhé! ;)


WTF? Trang chỉ còn hiển thị theo phong cách... classic: nền trắng, chữ đen. CSS đâu cả rồi??

Hãy chú ý vào phía sau /go// (tớ đã chèn thêm một dấu "/" nữa). Hãy xem mã nguồn nào!!



Thì ra là vậy, lý do CSS không thể nạp được là do giá trị của thẻ Base không còn hợp lệ. Không những thế, input của tớ đã bypass thành công và không còn bị mã hóa như vị trí phí dưới. OK, áp dụng vector trong phần 1:

http://uniad.phimmoi.net/publisher/go//%22%3E%3Cscript%3Ealert(String.fromCharCode(74,%20117,%20110,%20111,%2095,%20111,%20107,%20121,%20111))%3C/script%3E
Kết quả:

Video PoC



Timeline

  • 7:14 PM - 01/07/2016: Lỗ hổng được báo cáo tới quản trị viên phimmoi.net
  • 7:22 PM - 01/07/2016: Lỗ hổng được xác nhận. Hai bên trao đổi thêm thông tin.
  • 16/07/2016: Lỗ hổng được khắc phục.

Share this with your friends
Loading...