SVATTT2014 Write Up Exploitation

Tesla123

VIP Members
25/03/2014
7
141 bài viết
SVATTT2014 Write Up Exploitation
Nguồn : http://peternguyen.uns.vn/2014/11/25/svattt2014-write-up-exploit/
exploit 100 ( vòng loại) :

Đây là một bài exploit rất cơ bản, chỉ cần overflow biến cookie thành : 0x12345678 là có thể get được flag.

exploit200 (vòng loại): một bài exploit yêu cần chúng ta overflow eip và ret eip về stack để execute shellcode. Nếu để ý kỹ, và set breakpoint tại đây lệnh ret ở hàm doprocessing:
Screenshotfrom2014-11-25231103_zps3e7c4c9c.png

ECX = shellcode (input); vậy mình chỉ cần kiếm các gadgets dạng: jmp ecx hoặc call ecx là ok.

Exploit 200 (chung kết):
Bài exploit này đỏi hỏi phải leak 1 địa chỉ của 1 hàm trong bản got, rồi từ đó setup được một môi trường giống với server để tìm ra địa chỉ của hàm system, bằng cách lấy địa chỉ hàm leak - offset (offset có các giá trị khác nhau dựa vào phiên bản build của thư viện libc )
Payload khá đơn giản , gửi command lên phân đoạn .bss(địa chỉ tĩnh) rồi sử dụng system(.bss) để execute lệnh mà mình cần mong muốn.
Screenshotfrom2014-11-24123226_zps37add24a.png


Exploit 300 (chung kết).
Đây là một bài format string khá đặc biệt khi mà sprintf(s,buf), chúng ta không thể nào thấy được output stack ra ngoài và NX không được bật.
Phân tích code tổng thể ta có :
Screenshotfrom2014-11-25232433_zps791745ef.png

Screenshotfrom2014-11-25232419_zps4ac64ccf.png

Ý tưởng đưa ra là :

- Ghi đè địa chỉ bảng GOT của write thành doprocessing ( để trương trình trở lại hàm doprocessing)
- Ghi đè địa chỉ bảng GOT của sprintf bằng địa chỉ của gadpets : pop ; pop ;ret mục đích ret eip về địa chỉ của buf để execute shellcode được send lên lần thứ 2 sau khi trở về lại hàm doprocessing.
bc55447a-99d7-4c95-a8f1-aa0ca90a269a_zpsc44eb289.png
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Re: SVATTT2014 Write Up Exploitation

Hôm nay mình cũng xem bài này, và nhận thấy là TMod copy thiếu code python rồi nhé :gach:
Bài Exploit 200 (chung kết) , đọc bài viết ngắn quá, mà mình thì cũng mới tập exploit thôi, vì thế, phiền các bạn có thể phân tích chi tiết hơn chút được không :p
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Re: SVATTT2014 Write Up Exploitation

bạn thử debug như thế này. b main, rồi p system-send = offset, tức là khoảng cách giữa 2 hàm sẽ không thay đổi (và giá trị của khoảng cách này tùy thuộc vào mỗi phiên bản libc.so) nếu bạn biết được địa chỉ hàm send và bạn biết được version của libc thì bạn sẽ có đươc đỉa chỉ hàm system bằng cách : system = send - offset
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Bên trên