전체 글 (99) 썸네일형 리스트형 lob 3번 이번에는 3번입니다. 이번에도 bash2 설정부터 해주겠습니다. 위의 사진에서 3번 문제 코드를 보면 2번과 비교했을때 버퍼의 크기는 같지만 인자가 사라지고 대신에 표준입력인 gets함수가 사용되었습니다. 그렇기 때문에 2번 문제와 같은 방법인 환경변수를 쓸 것이지만 페이로드 작성방식을 좀 다르게 해주어야 합니다. 저번과 같이 환경변수를 등록해주었습니다. 그리고 위와 같은 환경변수의 주소를 구하는 코드는 다음 코드를 사용했습니다. 그리고 나서 환경변수가 잘 등록 되어 있는지 확인하기 위해서 env 명령어를 통해 확인해보았습니다. 확인해 보니 제가 등록한 shellcode가 잘 등록되어 있습니다. 그리고 2번 설명에서 했던 것처럼 주소를 구하면 위와 같습니다. 1,2번처럼 페이로드를 ./gremlin ~~.. lob 2번 이번에 lob 2번 문제 풀이입니다. 저번 1번 문제를 풀때 bash2설정 때문에 쓸데없는 삽질을 했으므로 이번에는 bash2설정부터 해주었습니다. ls 명령어를 확인해보니 색을 바뀐걸로 보아서 제대로 bash2가 적용 된 것을 알 수 있습니다. 그럼 이제 2번문제의 코드를 보겠습니다. 코드를 보니 1번문제와 큰 차이는 없습니다. 하지만 버퍼의 크기가 16으로 굉장히 작아졌습니다. 그렇기 때문에 이번에는 1번에서 사용했던 nop슬라이드 방식이 아니라 환경변수를 이용해 볼 것입니다. 환경변수는 미리 명령어로 nop+shell코드로 이루어진 페이로드를 등록해 놓은 후에 1번에서는 ret값을 바로 nop슬라이드 부분으로 설정해 주었다면 우리가 등록한 환경변수의 주소로 ret값으로 설정하여 미리 등록된 페이로드.. lob 1번 lob 1번 풀이입니다. 앞서 글에 Mac OS X에서 vmware설치와 기본 설정 방법, 그리고 미리 알고 있으면 좋은 명령어들을 정리해 두었으니 참고하시면 되겠습니다. *1번 문제 아이디 비번은 모두 gate입니다. 가장 먼저 gate문제에 있는 gremlin.c 파일 입니다. cat grmelin.c 를 입력하면 코드를 볼 수 있습니다. 문제를 보니 버퍼의 크기는 256이고, 실행시 인자의 개수가 2개 미만이면 에러가 발생하고 종료하게 됩니다. 여기서 main함수인 인자인 argc는 입력된 인자의 개수이고, 포인터 배열인 *argv[]에는 입력된 인자가 순서대로 입력되게 됩니다. 자세한건 나중에 페이로드 사진을 보며 설명하겠습니다. 일단 자세한 주소를 알아야 하니 리눅스 디버거인 gdb를 이용해야 .. 이전 1 ··· 10 11 12 13 다음