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ị.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_300x600Sử 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/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ụ:
?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
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
Nhưng khoan, hãy để tớ thêm một chút... magic nhé! ;)
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%3EKế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.