Pwnable/HackCTF
[HackCTF] x64 Buffer Overflow 문제 풀이
RootJJang
2022. 1. 4. 19:31
SMALL
오랜만에 HackCTF 문제 풀이를 해보겠습니다.
파일을 다운로드하여 파일 정보를 확인하고 실행시켜봅니다
char형 변수 s와 int형 변수 v5를 선언해주고 s를 입력받은 다음 입력받은 문자열을 출력해주네요
다른 함수가 뭐 있는지 보던 중 callMeMaybe라는 함수가 눈에 띄어 한 번 코드를 확인해보겠습니다
여기서 쉘을 실행할 수 있네요
main 함수의 scanf에서는 보호 기법 때문에 bof의 취약점이 막혀있어 쉘코드 삽입은 불가능하니 ret 주소를 callMeMaybe 함수의 시작 주소로 바꿔 쉘을 따내면 될 것 같습니다
gdb로 분석해 페이로드를 어떻게 짤지 확인해보겠습니다
<+24> 부분을 보면 알 수 있다시피 110byte를 채워주고
callMeMaybe 함수의 시작 주소를 리틀엔디언으로 채워주면 페이로드 완성입니다.
Paylod : (python -c 'print "A"*280 + "\x06\x06\x40\x00\x00\x00\x00\x00"'; cat) | nc ctf.j0n9hyun.xyz 3004
LIST