Ret2Shellcode
[!] Mình khuyên bạn nên đọc phần 1 trước khi qua phần 2 mặc dù nó không liên kết với nhau nhưng bạn sẽ hiểu cách tôi exploit nó.
I. Overview
Code c:
Checksec:
(bạn sử dụng vmmap với peda thì sẽ xem đc ảnh ở trên)
Thì trên stack nơi mà ta ghi vào có quyền execute ==> Đây là lỗi shellcode.
Như bài trước nếu bạn thử lỗi stack OverFlow thì chắc chắn nó sẽ bị lỗi. Mình cũng chưa rõ rằng tại sao nó lại xảy ra lỗi đó. Input quá dài ? Nhưng ở bài này thì lại không vấn đề gì. Lý do tại sao thì bạn tự tìm hiểu nhé 🙃
II. Analysis
Check argument của hàm gets() ta nhận được địa chỉ: 0xffffcf44
addr hàm unsafe: 0x08049172
==> Qua 1 hồi lú lẫn thì mình xin định nghĩa lại dạng bài là ret2shellcod, nó ko phải là shellcode :))
Vì trong phần hàm unsafe có ret nên dạng bài này được apply
Thì ý tưởng của bài này là ret về đoạn mã shellcode mà mình đã viết và ngắt nó bằng byte null "\x00" sau đó chèn đủ 312 kí tự và overflow địa chỉ trả về.
Ở đây mình sẽ return đến đoạn mình bắt đầu chèn shellcode.
"/bin//sh"[::-1].encode("utf-8").hex()
Comments
Post a Comment