본문 바로가기

Hackerschool FTZ Write-up

FTZ Level12 Write-up(FTZ Level12 풀이)

안녕하세요! 문제 12번입니다!


꼬고싱!


힌트를 보니 11번 문제와 별반 다를것이 없어보이는군요!


차이점이 있다면 이제 인자를 argv 즉, 프로그램 실행 시 받는 것이 아닌 프로그램 실행 후 받는 구조로 변경되었군요!


그러면 이전에 했던 exploit 방법과는 조금 다른 방법을 쓰되 원리는 같다는 것을 알 수 있습니다.

아래의 명령어로 프로그램 실행 후 인자를 전달할 수 있습니다.


$ (python -c 'import sys ; sys.stdout.write("A"*268)' ;cat) | ./attackme




프로그램 실행 시 엔터를 눌러주면 그대로 인자로 전달되게 되는데 마찬가지로 RET를 찾기 위해 값을 대입한 결과 268번째에서 세그멘테이션 오류를 뜨는 것을 보니 해당 위치에 RET가 있겠군요! 


해당 내용이 이해가 가지 않는다면 이전 포스팅을 참조 해주시길 바랍니다.

2018/03/24 - [Hackerschool FTZ Write-up] - FTZ Level11 Write-up(FTZ Level11 풀이)


그러면 RET를 알았으니 간단히 eggshell을 이용해 Exploit을 시도하면 되겠군요!


쉘코드 및 컴파일 방법은 이전 포스팅에서 상세히 다루었으므로 생략 하겠습니다.


2018/03/24 - [System Hacking] - Eggshell Code



그리고 RET에 Shellcode의 주소를 대입해주면 뭔가 이상합니다.


명령창이 나타나지 않고 반응이 이상합니다.


아무거나 처보니 커맨드를 찾지 못했다고 나오는군요?


그래서 명령어를 쳐보니 정상적으로 작동합니다!


my-pass를 이용하여 간단히 clear! 


다음문제로 귀 ! 귀! 씽!