ftz(4)
-
Layer7 17과제 -F.T.Z level 16 풀이-
level16의 힌트입니다. 아마 오버플로우 시켜서 call 함수 포인터에 shell() 함수의 주소가 들어가게 하면 될거 같아요. 우리가 그동안은 "set disas intel"이라고 해도 실행이 가능했지만 실제 리눅스에서는 set disassembly-flavor과 같이 풀네임을 적어주어야 intel문법으로 변환 가능하다고 합니다. 16진수 38은 56 그리고 바로 그 밑에 부분이 call 함수의 주소를 대입시키는 부분 같습니다. 0x80484d0 shell() 함수의 주소 입니다. 따라서 페이로드를 56-16(call 함수 포인터의 위치)+"shell 함수의 리틀엔디안 주소" 와 같이 짜면 될거 같습니다. 와 정답! : king poetic
2019.07.11 -
Layer7 15과제 -F.T.Z level 14 풀이-
tmp로 attckme 파일을 복사하여 gdb로 확인해봅시다. 빨간 상자는 Crap, Check, buf를 할당 받는 부분입니다. 16진수 38은 10진수 56입니다. 메모리 구조 : buf[20]+dummy+check(4)+dummy+crap(4)+dummy=56 cmp에서 조건을 검사할 때 ebp-16(buf)이므로 56-16을 한 40을 버퍼오버플로우 시켜주면 될거 같다.' 이렇게 한 후 my-pass를 입력해주니 풀립니다. guess what
2019.07.10 -
Layer7 13과제 -F.T.Z level 13 풀이-
쉘(shell): - 리눅스는 GUI 환경도 있지만 GUI 환경이 제공되기 이전 터미널 환경을 이용하여 명령어를 직접 타이핑하여 컴퓨터 를 운영하였다. 현재 많은 리눅스 GUI 버전이 생겼지만 아직도 터미널 환경을 사용하는 것이 GUI처럼 직관적이지는 않지만 강력한 기능을 제공하기 때문에 여전히 많이 사용되고 있으며 이 때 터미널에 입력한 명령을 해석하고 관리하는 프로그램을 쉘(shell)이라고 한다. 쉘은 사용자와 커널 사이를 연결시켜주는 역할을 하여 사용자가 입력한 명령을 해석하여 운영체제가 해당 명령어를 알아들을 수 있게 해준다. 쉘코드(shell code): - 시스템의 특정 명령을 실행하는 작은 사이즈의 프로그램을 뜻하여, 일반적으로 기계어 코드로 작성되어 있다. 쉘코드란 단어는 공격 대상 시스..
2019.06.19 -
Layer7 09과제 -3 -F.T.Z level 3 풀이-
putty를 실행한다. ls를 실행하면 hint가 있으므로 cat 명령어를 사용하여 내용을 확인한다. 그럼 이제 SetUID가 걸려있는 파일을 찾아야한다. cd /bin을 쳐서 bin으로 가면 아래와 같은 화면을 볼 수 있다. 아까 힌트를 다시 보면 1. 동시에 여러 명령어를 사용하려면? -> 명령어 사이에 ;나 |를 넣으면 동시에 여러 명령어를 실행할 수 있다. 2. 문자열의 형태로 명령어를 전달하려면? 큰 따옴표 사이에 명령어를 넣어야 한다. 우리는 패스워드를 알면 되기 때문에 my-pass와 같이 위처럼 입력해주면 level4 password is "suck my brain" 이라는 말이 나온다. ㄷㄷ...
2019.05.23