티스토리 뷰

WarGame/FTZ

[FTZ] Level11 문제 풀이

Turtle1000 2013. 12. 31. 07:25

바로 시작 !

이번 문제는... 취약점이 두 가지입니다. 포맷 스트링 버그(FSB) 와 버퍼 오버플로우(BOF)죠...

근데 사실 저도 아직은 FSB를 잘 설명 못 할 것 같아서... 20번에서 좀 더 가다듬고 설명드리고, 이번에는 BOF로 풀어봅시다 !

gdb로 디버깅 하실 때는 복사해서 합니다 ~

소스는 간단하니까 바로 보면 지역변수를 위한 공간을 0x108만큼 할당하고 있네요.

지역변수가 하나니까 256+8(Dummy)라는 것을 알 수 있는 부분입니다. 그럼 스택의 구조는 아래와 같네요.

| str(256) | dummy(8) | ebp(4) | ret(4) | argc(4) | argv | <- 이렇게 구성되어 있습니다.

이 문제를 풀려면 268 + shellcode의 주소 를 올리면 되겠죠 ?

바로 해봅시다. 가장 간단하게 환경변수에 쉘코드를 등록해놓고 하겠습니다.

NOP Sled 를 이용해서 앞을 채워주고 쉘코드를 올립니다. 그 다음에 주소를 알아오고 이걸로 리턴을 덮으면 됩니다 !

NOP Sled 를 사용하는 이유는 바로 쉘코드를 올려버리면 항상 쉘코드의 시작주소에서 시작한다는 보장이 없기 때문입니다.

프로그램이 시작하면서 대충 아무대나 참조하더라도 NOP을 많이 넣어주면 쭉 타고 미끄러지다가 쉘코드가 실행되는 거죠.

그럼 바로 공격해보죠 ~

it is like this ~


'WarGame > FTZ' 카테고리의 다른 글

[FTZ] Level13 문제 풀이  (0) 2014.01.01
[FTZ] Level12 문제 풀이  (0) 2013.12.31
[FTZ] Level10 문제 풀이  (0) 2013.12.29
[FTZ] Level9 문제 풀이  (0) 2013.12.27
[FTZ] Level8 문제 풀이  (0) 2013.12.27
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함