Pwnable/LOB

Pwnable/LOB

[LOB] 4. ORC

passcode : cantana (NO DRAG, NO PASSCODE) bash2 입력후 파일들을 살펴보자. 소스코드 분석 해보자. 이전 문제였던 goblin과 매우 동일하나 buffer의 값이 모두 0으로 채워져 있다. 따라서 buffer를 사용하지 못한다. 이럴 때는 어떻게 해야 할까? 일단 buffer 안에는 shellcode를 못 넣으므로, buffer + sfp 을 넘어서 ret 뒤에 NOP와 함께 shellcode를 붙여야겠다. 그러면 NOP Sled 를 타고 쉘이 실행될 것이다. 먼저 gdb로 메모리 구조를 분석하자. 메모리 구조는 다음과 같다. —————————— High Address | ret(4) | —————————— | sfp(4) | —————————— ← ebp | buff..

Pwnable/LOB

[LOB] 3. GOBLIN

passcode : hackers proof (NO DRAG, NO PASSCODE) bash2 조심. orc 프로그램과 소스코드가 있다. 분석하자. 중간에는 크게 의미없는 코드인줄 알았지만 환경변수를 모두 0으로 만들어서 환경변수를 쓰지 못하게 만들고 있다. 즉 전에 썼던 export를 사용하지 못한다. 또 egghunter 라는 것을 보니 환경변수는 못 쓸 것 같다. 우리는 argv[1][47]을 ‘\bf’로 만들어주어야 한다. 이제 gdb를 통하여 메모리 구조를 살펴보자. 메모리 구조는 다음과 같다. —————————— High Address | ret(4) | —————————— | sfp(4) | —————————— ← ebp | buffer(40) | —————————— | int(4..

Pwnable/LOB

[LOB] 2. COBOLT

passcode : hacking exported (NO DRAG, NO PASSCODE) bash2 입력해주는 것을 까먹지 말자. goblin 이라는 프로그램과 소스코드가 있다. 바로 분석해보자. 작은 버퍼와 표준입력에 대한 문제인 것 같다. cobolt의 문제와 다른 것은 인자가 아닌 표준입력을 받는 함수 gets를 사용하다는 것 뿐이다. 메모리 구조를 분석하고 바로 payload를 짜보자. 메모리 구조는 다음과 같다. —————————— High Address | ret(4) | —————————— | sfp(4) | —————————— ← ebp | buffer(16) | —————————— Low Address shellcode 를 export 하고 shellcode 의 주소를 찾자. shell..

Pwnable/LOB

[LOB] 1. GREMLIN

passcode : hello bof world (NO DRAG, NO PASSCODE) 역시나 bash2 를 입력하고 시작한다. cobolt 프로그램과 그에 대한 소스코드가 들어있다. 코드를 분석해보자. small buffer에 대한 문제인가보다. gate 문제와 buffer의 크기만 달라지고 아주 동일한 소스코드이다. tmp에 gremlin을 복사하여 gdb로 뜯어서 정보들을 얻자. 메모리 구조는 다음과 같다. —————————— High Address | ret(4) | —————————— | sfp(4) | —————————— ← ebp | buffer(16) | —————————— Low Address dummy 도 존재하지 않는다. shellcode 의 주소를 확인해주자. shellcode 의..

Lucvs
'Pwnable/LOB' 카테고리의 글 목록 (5 Page)