Vip_at_libc (Pwnme 2023)
Integer Overflow + Ret2PLT
Last updated
Integer Overflow + Ret2PLT
Last updated
Sau một hồi tìm kiếm, tôi biết được lỗ hổng Buffer OverFlow nằm ở hàm access_lounge
nhưng có 1 điều là khi menu in ra thì nó không hề xuất hiện case thứ 4 như ở hàm menu:
Mà cái này cần có 1 điều kiện để nó được in ra. Đó là: money._4_1 != '\0'
.Nó tương đương với:
Đoạn này chính là điều kiện để in ra case thứ 4:
Set breakpoint tại đây.
Thực ra sau một hồi thì mình phát hiện hướng đi ban đầu của mình hơi cố chấp khi không phân tích những hàm khác trong khi lỗi đó nhỏ xíu nằm trong hàm này:
Và tôi đã chú ý vào những phần này:
Ban đầu tôi nghĩ là lỗi nằm ở game [4]
nhưng không khi tôi thử thì thấy nó ở phần cost
. Và bạn đoán được lỗi đó là gì không. Đó là Integer OverFlow. Hmmm có khá nhiều lí do để tôi thay đổi hướng như vậy. Bạn hãy trải nghiệm rồi nhận ra điều đó.
Và bây giờ case 4 nó sẽ hiện ra khi mua vé VIP:
Chọn option 4 thì ta sẽ có 1 lỗi nữa là Buffer Overflow:
Như vậy tất cả mọi thứ gần như xong. Phần còn lại là leak ra address of libc thông qua ret2plt
. Rồi sau đó chiếm shell của server.