본문 바로가기

해커스쿨 FTZ ( level1 -> level2 ) by ORANG FTZ_level1 로그인 후에 level1 디렉토리 내용을 확인 하겠습니다. [level1@ftz level1]$ lshint public_html tmphint 라는 파일이 존재하는군요ㅎㅎ 내용을 확인해보면 [level1@ftz level1]$ cat hint level2 권한에 setuid가 걸린 파일을 찾는다. level2 권한에 setuid가 걸린 파일을 찾으라고 하네요.setuid란 사용자가 파일을 사용하는동안 파일 소유자의 권한을 일시적으로 획득할 수 있도록 하는 겁니다.level2 권한에 setuid가 걸려있다는 것은 해당 파일을 실행하는동안 level1은 level2의 권한을 획득한다는거죠! 그럼 찾아보겠습니다. [level1@ftz level1]$ find . / -user level2.. 더보기
쉘코드 뒤에 여유 공간이 필요한 경우 by ORANG FTZ나 LOB같은 문제 풀이를 하다보면..[nop]... + [셸코드] + [SFP] + [RET] 는 세그먼트 오류가 나고,[셸코드] + [nop]... + [SFP] + [RET] 는 공격에 성공하는 경우 를 발견할 수 있습니다. 1번째 방법은 안되고, 2번째 방법은 되는 차이를 간단하게 보자면..1번째 방법의 문제를 간단한 메모리로 보겠습니다. RET에 함수 주소가 들어오기 전 스택입니다.이상태에서 leave와 ret 명령어가 실행되는 상황을 통해 보겠습니다. leave 명령어는 mov esp, ebp pop ebpesp를 ebp로 옮기고(스택을 정리해주고), 이전 함수의 ebp(SFP)를 pop을 통해 다시 ebp에 저장합니다.pop 되었으니 esp는 RET를 가리킵니다.다시 스택을 보면.. 이.. 더보기
셸코드 만드는법 by ORANG 더보기