전체 글(29)
-
[LOB] LEVEL4 (goblin -> orc)
[ Level4(goblin) Login ] ID : goblin PW : hackers proof orc.c를 확인해보니, egghunter가 있다. extern char **environ은 환경변수를 의미하는데, egghunter에 있는 memse함수t을 이용하여 환경변수의 값을 0으로 바꾼다. ※ memset함수 메모리의 내용(값)을 원하는 크기만큼 특정 값으로 세팅할 수 있는 함수 - 함수 원형 void* memset(void* ptr, int value, size_t num); - 파라미터 *ptr : 세팅하고자 하는 메모리의 시작 주소 value : 메모리에 세팅하고자 하는 값 num : 길이 그리고 if(argv[1][47] != '\xbf') 에서 argv[[1]의 47번째 문자가 '\xb..
2021.03.17 -
[LOB] LEVEL3 (cobolt -> goblin)
[ Level3(cobolt) Login ] ID : cobolt PW : hacking exposed ( 이번에도 bash2를 입력하여 0xff를 0x00으로 인식하는 오류를 예방한다. ) cat명령어로 goblin.c를 확인해보니 gets함수로 buffer를 입력받고 있다. ( gets함수는 Bufferoverflow취약점을 가진 함수이다. ) 또한 코드에서 /bin/sh를 실행하는 코드가 없기 때문에 RET에 /bin/sh 쉘코드 환경변수를 만들어 그 주소를 RET에 넣어 /bin/sh를 실행시켜 비밀번호를 구하면 될 것이다. 우선, 환경변수를 만들어 준다. \x31\xc0\xb0\x31\xcd\x80\x89\xc3\x89\xc1\x31\xc0\xb0\x46\xcd\x..
2021.03.08 -
[LOB] LEVEL2 (gremlin -> cobolt)
[ Level2(gremlin) Login ] ID : gremlin PW : hello bof world ( 이번에도 bash2를 입력해주어, 0xff를 0x00으로 인식하는 오류를 예방해준다. ) cat 명령어로 cobolt.c 파일의 내용을 확인해보니, 이번에도 strcpy함수를 사용하고 있다. ( strcpy함수는 Bufferoverflow에 취약한 함수이다. ) 코드에 따로 /bin/sh를 실행시켜주는 코드가 없으므로 이번에도, RET에 쉘코드쉘 코드 환경변수 주소를 넣어 쉘 코드를 실행시켜 비밀번호를 구하면 될 것이다. 우선, 환경변수를 만들어준다. \x31\xc0\xb0\x31\xcd\x80\x89\xc3\x89\xc1\x31\xc0\xb0\x46\xcd\x80\x31\xc0\x50\x68\..
2021.03.08