티스토리 뷰
Hackerschool FTZ의 Level 12 풀이입니다.
level 11과 굉장이 비슷하지만 입력받는 함수가 다르네요.
입력을 strcpy가 아닌 gets로 받아서 main 함수의 인자로 넘겨 줄 수 없어서 입력 대기 상태에서 입력해주어야 합니다.
먼저 버퍼의 크기를 알아내 보겠습니다.
0x08048473과 0x08048479에서 264와 8, 총 272를 빼주고 있습니다.
메모리 구조는 다음과 같습니다.
[Buffer(256)][dummy(8)][SFP(4)][RET(4)]
level 11과 같은 메모리 구조로 되어 있네요.
이제 버퍼를 저장하는 주소를 찾아보겠습니다.
버퍼가 저장되는 주소는 0xbfffdfc0이네요.
gets는 입력 대기 상태에서 값을 입력받으므로 위처럼 공격 코드를 괄호로 묶어주고 cat으로 출력을 attackme로 입력하도록 해주면 됩니다.
level 11처럼 ASLR 기법이 적용되어 있어서 Segmentation fault가 나타나네요.
계속 반복해서 payload를 넣어주면..
Password : have no clue
'Pwnable > Hackerschool' 카테고리의 다른 글
[Hackerschool FTZ] Level 14 풀이 (0) | 2018.10.03 |
---|---|
[Hackerschool FTZ] Level 13 풀이 (0) | 2018.10.02 |
[Hackerschool FTZ] Level 11 풀이 (0) | 2018.04.16 |
[Hackerschool FTZ] Level 10 풀이 (0) | 2018.03.29 |
[Hackerschool FTZ] Level 9 풀이 (0) | 2018.03.29 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- unity2d
- Level 01
- xcz.kr
- 안드로이드
- Advance RCE
- wargame
- Level 06
- pwnable
- 멘토링
- 풀이
- Write-up
- Level 04
- C#
- 유니티
- Level 05
- 안드로이드 멘토링
- hackerschool
- 17th HackingCamp CTF
- HackingCamp
- Level 03
- reversing.kr
- CodeEngn
- Unity
- Programming
- Basic RCE
- ftz
- c++
- Level 02
- Reversing
- Android
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함