- NEW초롱이의 하루
- kisa
- 길은 가면, 뒤에 있다
- C언어 예술가
- Zer0 day - Zer0 day
- Information Security
- Secure-EDU
- 앙큼한유채's 일상 Story
- Library of Ezbeat (잠정 폐쇄)
- The Factory
- 안드
- 모후모후의 커뮤니티
- 공학도의 잡다한 시선
- 안드2
- IT속에 코코아
- IP주소검색(whois)
- IP주소검색(좌표포함)
- 소프트웨어 경력 관리
- 해저 케이블 지도
- MAC주소검색
- IANA
- 포트번호검색
- 자신의IP확인
- 웹페이퍼캡처
- 나의패스워드보안등급
- 웹 취약점 분석
- IT용어정리
- GitHub
- 라이브러리 모음
- 웹마당넷
- 시스템콜참고
- BCD 변환
- 보안뉴스
- 코딩도장(C, Python)
- 백준알고리즘
- 코딩테스트 연습
- 웹 사이트 테스트
- 스크립트꾸미기
- ctf대회목록
- 전자신문
- hash 크랙
- CVE
- 도메인등록
- N클라우드
- BugBountyList
- 칼리공식사이트
- CR4FTING BOX
- 아스키코드 변환
- 웹 사이트 통계 및 평가
- PDF변환
- AWS 및 클라우드 정보
- 가상화 및 서버관련
- 티오리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 쉘 스크립트 기초
- 라즈베리파이
- GPIO
- RaspberryPi
- Java
- ACL
- docker
- Tkinter
- 안드로이드
- 그라파나
- JSP
- LEVIATHAN
- 프로젝트
- Shell script
- API
- nginx
- Python
- centos docker
- 클라우드
- 자바
- 네트워크
- synology
- 쉘 스크립트 if문
- 쉘 스크립트
- System
- GUI
- Linux
- 리눅스
- Android
- 메소드
- Today
- Total
IT창고
[BOF] gate-> gremlin 본문
BOF원정대(the Load of the BOF) 워게임 풀이를 해보겠습니다.
해당 워게임은 시스템 해킹 연습을 할수있으며 던전난이도 부터 페도라4층까지 영화 반지의제왕을 패러디한 워게임입니다.
자세한 내용은 http://www.hackerschool.org/HS_Boards/zboard.php?id=HS_Notice&no=1170881885 이곳을 참고합니다.
참고사항으로 해당 리눅스 버전에서 \xff를 \x00으로 인식하는경우가 있습니다 이럴때는 bash를 bash2로 바꿔서 사용해줍니다.
gate 문제입니다. 첫문제라서 메모리 보호기법이 없습니다.
문제를 확인해보면 strcpy함수와 지역변수 buffer를 사용한걸 볼수있습니다. BOF를 어떤 방법으로든 사용할수있겠네요.
gdb로 확인을 하고 싶어도 권한이 gremlin이기 때문에 복사해서 디버거를 사용해보겠습니다.
Dump of assembler code for function main:
0x8048430 <main>: push %ebp
0x8048431 <main+1>: mov %ebp,%esp
0x8048433 <main+3>: sub %esp,0x100
0x8048439 <main+9>: cmp DWORD PTR [%ebp+8],1
0x804843d <main+13>: jg 0x8048456 <main+38>
0x804843f <main+15>: push 0x80484e0
0x8048444 <main+20>: call 0x8048350 <printf>
0x8048449 <main+25>: add %esp,4
0x804844c <main+28>: push 0
0x804844e <main+30>: call 0x8048360 <exit>
0x8048453 <main+35>: add %esp,4
0x8048456 <main+38>: mov %eax,DWORD PTR [%ebp+12]
0x8048459 <main+41>: add %eax,4
0x804845c <main+44>: mov %edx,DWORD PTR [%eax]
0x804845e <main+46>: push %edx
0x804845f <main+47>: lea %eax,[%ebp-256]
0x8048465 <main+53>: push %eax
0x8048466 <main+54>: call 0x8048370 <strcpy>
0x804846b <main+59>: add %esp,8
0x804846e <main+62>: lea %eax,[%ebp-256]
0x8048474 <main+68>: push %eax
0x8048475 <main+69>: push 0x80484ec
0x804847a <main+74>: call 0x8048350 <printf>
0x804847f <main+79>: add %esp,8
0x8048482 <main+82>: leave
0x8048483 <main+83>: ret
0x8048484 <main+84>: nop
0x8048485 <main+85>: nop
0x8048486 <main+86>: nop
0x8048482여기서 break를 걸고 확인해보겠습니다.
eip레지스터 위치를 확인했습니다.
\x41중 적당한 곳에 주소를 잡고 사용하면 됩니다.
주소보정을 해줍니다.
gremlin의 euid를 얻었습니다. 개인적으로 주소보정 제대로 안되면 너무 힘든거같습니다.
'WarGame > The Load of the BOF' 카테고리의 다른 글
[BOF] wolfman -> darkelf (0) | 2018.02.12 |
---|---|
[BOF] orc -> wolfman (0) | 2018.02.12 |
[BOF] goblin -> orc (0) | 2018.02.11 |
[BOF] cobolt -> goblin (0) | 2018.02.10 |
[BOF] gremlin -> cobolt (0) | 2018.02.10 |