티스토리 뷰
후... 대망의 19번 문제입니다. 전 사실 20번 부터 풀어봤는데... 20번이 훨씬 쉬웠던 것 같습니다...
아무튼 시작 !
문제의 심각성을 깨닫게 해드리기 위해서 이번에는 엄청난 소스코드에도 불구하고 사진을 넣었습니다.
처음 이 문제를 봤을 땐 정말 막막했습니다. 무슨 사용할 수 있는 곳이 하나도 없더군요.
풀면서 이상하다고 생각했던 것이,
1. fgets 로 입력을 받는다.2. 라이브러리를 제한했지, 0x40 으로 시작하는 주소를 제한한 것이 아니다.
근데 사실 위의 두 가지만으로는 도저히 문제를 풀수가 없었습니다. 막 돌아다니다가 본 것이 흔히 쓰는 STDIN 이라는 것이 임시 입력 버퍼라고 하더군요 ?!?(분명 C언어에서 읽었던 것 같은데 이런데는 적용을 못함...)
아무튼... 이런거 찾아내시는 분들은 정말... 영감과 노가다를 겸비한 멋진 분들인 것 같습니다...
gdb를 이용해서 fgets의 임시 버퍼에 저장되는 값들을 보겠습니다.
두 부분으로 나눴습니다. 윗 부분은 브레이크포인트 설정부분이고 아래 부분이 실제 STDIN을 추적하는 과정입니다. 일단 STDIN은 내부적으로 0x401068c0으로 점프한다는 것을 알았습니다. 한 번더 들어가보면,
많은 값들이 나오는데 하나하나 값을 살펴보다 보니, 0x40015000에서 입력한 값들을 저장하고 있다는 것을 알 수 있습니다.
그렇다면, 0x40015000의 주소에 실행권한이 있는지 살펴보겠습니다.
실행권한이 없네요... 하지만 ! maps를 너무 신뢰하지는 마세요. 직접 확인해보는 것이 최고입니다.
실행이 되는군요... 결론적으로 0x40015000 - 0x40016000 부분은 실행권한이 부여되어 있습니다.
이를 토대로 신기한 쉘코드와 함께 클리어 해보겠습니다.
공격 코드의 구성은 (python -c 'print "\x90"*27 + "17 바이트 쉘코드" + "\x00이 없는 리턴주소"';cat) ~ 입니다.
일단 답은 throw me away 입니다 !
P.S. 17 바이트 쉘코드의 정체에 대하여...
17 바이트 쉘코드... 정말 처음 봤을 때 어떻게 이런 생각을 할 수 있나 했을 정도로 신기했습니다.코드자체는 전혀 어렵지 않으며 이 글을 보실정도면 작성할 수 있을거라 생각됩니다.간단히 "system 함수" + "exit 함수" + "&/bin/sh" 로 스택을 생성하고 ret 하면서 실행하는 쉘코드입니다.
'WarGame > LOB(Redhat_6.2) - 完' 카테고리의 다른 글
[LOB] xavius -> death_knight 문제 풀이 (0) | 2014.02.01 |
---|---|
[LOB] succubus -> nightmare 문제 풀이 (0) | 2014.02.01 |
[LOB] zombie_assassin -> succubus 문제 풀이 (0) | 2014.02.01 |
[LOB] assassin -> zombie_assassin 문제 풀이 (0) | 2014.02.01 |
[LOB] giant - > assassin 문제 풀이 (0) | 2014.02.01 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- fleet manager
- findinglatestversion
- steampipe
- ControlTower
- cloudsecurity
- defaulttheme
- stateType
- opensource
- conftest policy
- REACT
- ViaAWSService
- platform
- .get()
- AWS #CIS
- aws
- Cloud
- compliance
- web
- 2xx
- 우주와컴퓨터
- temlate
- teplate
- security
- terraform
- CIS
- scp
- IAM
- 4xx
- JavaScript
- 계정정보저장
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함