LOB, gremlin -> cobolt 문제 확인 gate -> gremlin 문제와 거의 동일한 문제로 strcpy 취약점을 이용한 bof 문제이다. LOB, gremlin -> cobolt 문제 풀이 gdb로 main문을 먼저 확인해본 결과 0x10을 할당하고 있으므로 dummy는 없는 것 같다. 따라서 스택 상황은 아래와 같다. buffer SFP RET 16 4 4 환경변수에 쉘코드와 nop을 100정도 주어 저장한 다음, 환경변수 주소를 알아낸다. LOB, gremlin -> cobolt 익스플로잇 환경변수 주소를 RET에 덮어주기만 하면 되기 때문에 앞단에 dummy값은 20바이트를 채워주면, 다음 단계로 가는 패스워드를 얻을 수 있게된다.
LOB, cobolt -> goblin 문제 확인 앞에 두문제와 거의 유사한 문제이지만 scanf 취약점에서 gets 취약점을 활용해서 bof를 해야한다는 점만 변경되었다. gets 함수는 사용자에게 입력받는 값의 길이를 체크하지 않기 때문에 bof에 취약한 함수이다. LOB, cobolt -> goblin 풀이 gdb로 main문을 살펴보니 총 0x10바이트(16)를 할당하는 것으로 보아 dummy 값은 없는 것으로 보인다. 따라서 스택 상황은 아래와 같다. buffer (16) SFP (4) RET (4) 먼저 앞단에 nop이 100정도 들어가있는 쉘코드를 환경변수에 올려준 후 주소값을 구해준다. LOB, cobolt -> goblin 익스플로잇 그리고 RET에 환경변수 주소 4바이트만 덮으면 되기 ..
해커스쿨의 Lord Of Bufferoverflow(LOB) 는 여러 bof 문제를 경험할 수 있는 환경?으로 보통 FTZ를 끝마쳤으면 LOB를 풀게된다. 2017년도에 풀고 블로그에 풀이를 올렸었는데 블로그를 여기로 이전하는 바람에 다시 작성하게 되었다. 초기설정 초기설정을 해놓치 않고 시작하면 엄청난 삽질을 경험할 수 있다. 난 링크(LOB 다운로드 & 초기설정)를 참고해서 초기설정을 진행해주었다. 초기설정은 아래와 같이 /etc/passwd의 bash를 전부 bash2로 변경하는 작업이다. 그다음 IP주소를 확인해주고 XShell이든 Putty든 연결해준다. 난 앞으로 XShell을 사용해서 문제풀이를 진행하도록 하겠다. LOB, gate -> gremlin 문제 확인 gate -> gremlin ..