SMALL
cat 소스코드
이번엔 buffer 크기가 작아서 쉘코드를 직접 넣는 방법은 사용 못하겠네요
그렇다면 환경변수로 쉘코드를 설정해서 쉘코드의 주소를 RET으로 덮어보는 방법을 사용해 보겠슴다
shellcode라는 환경변수를 설정해주고 주소를 구해봅시다
컴파일 후에 실행시켜보니 잘 나오는 걸 볼 수 있습니당
그럼 이제 페이로드를 짜보겠습니다
Paylaod = dummy[20] + 0xbfffff09
최종 페이로드 = ./cobolt `python -c 'print "\x90"*20 + "\x09\xff\xff\xbf"'`
엄? 왜 안 될까요..
tmp에 coblt 파일을 복사해서 다시 실행해보겠습니다
음 core dumped네요
이게 파일이 실행되면서 RET 주소가 바뀔 때가 있어서 오류가 났던 것 같습니다
core를 분석해보겠습니다
저렇게 gdb에 명령어를 쳐주고 아래를 내리다 보면
아까 제가 페이로드로 넣어준 값이 보이네요!
저기가 더 정확한 주소가 될 것 같습니다
저는 RET을 덮어줄 주소를 0xbfffff20으로 해주겠습니다
플래그 겟토다제!
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] gate 문제 풀이! (2) | 2022.05.12 |