티스토리 뷰
OS: Redhat 6.2
도구: gcc-2.91, gdb-???, dumpcode.h
조건: calling functions continuously
어렵게 생각해서 30분이나 걸렸네요. 일단 제가 풀어보니 풀이는 두 가지가 될 수 있습니다.
1. 제작자의 의도대로 푸는 방법
2. 제작자의 의도를 무시하고 푸는 방법
RTL2 와 같은 맥락입니다.(14번 문제요. 14번도 의도를 무시하고 풀 수 있거든요. 정석으로 풀긴했지만요...)
아무튼 전 여기서도 정석으로 풀겠습니다. 야매(?)로 푸는 것은 직접해보세요. 의도를 무시할 수 있는 이유는 두 문제들 모두 처음 값만 검증하기 때문입니다. 소스코드 첨부해놨습니다.(너무 길어서요...)
간단히만 설명드리면,
전역변수 Check가 있는데 DO, GYE, GUL, YUT, MO 함수를 차례대로 실행하면서 새로운 값을 할당 받습니다.
마지막 MO 함수를 수행할 때, 문자열을 인자로 전달하면 system 함수를 수행합니다.
즉, 풀이는 5개의 함수를 순서대로 호출하고 MO 함수의 인자로 /bin/bash의 '주소 값'을 전달하면 되겠군요 !
조건들은, LD_PRELOAD 사용 불가. 환경 변수 영역 사용 불가. \x40 사용 불가(공유라이브러리 사용 불가). 가 있습니다.
nm 명령으로 프로그램에 속한 함수들의 주소를 확인하면서 grep 명령으로 5개의 함수 주소를 찾습니다.
이를 토대로 공격하면,
공격이 성공했네요... 이제 원본에만 하면 되는데 원본이랑 5개의 함수가 주소가 다릅니다...
다시 nm 으로 찾고 grep으로 필터링 후에 공격해보면,
문제가 귀찮군요... 난이도를 노린 문제가 아니라 노력을 하라는 듯 하네요.
'WarGame > LOB(Redhat_6.2) - 完' 카테고리의 다른 글
[LOB] nightmare -> xavius 문제 풀이 (1) | 2014.02.01 |
---|---|
[LOB] succubus -> nightmare 문제 풀이 (0) | 2014.02.01 |
[LOB] assassin -> zombie_assassin 문제 풀이 (0) | 2014.02.01 |
[LOB] giant - > assassin 문제 풀이 (0) | 2014.02.01 |
[LOB] bugbear -> giant 문제 풀이 (3) | 2014.02.01 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- ViaAWSService
- REACT
- opensource
- web
- temlate
- teplate
- 2xx
- JavaScript
- AWS #CIS
- steampipe
- stateType
- security
- 4xx
- terraform
- cloudsecurity
- IAM
- 우주와컴퓨터
- fleet manager
- .get()
- platform
- aws
- 계정정보저장
- scp
- CIS
- compliance
- ControlTower
- findinglatestversion
- Cloud
- conftest policy
- defaulttheme
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함