본문 바로가기
  • True knowledge exists in knowing that you know nothing. -Socrates-

전체 글137

LOB level 2 (gremlin -> cobolt) LOB level 2 LOB (gremlin -> cobolt) 1. 첫 번째로 cat 명령어를 사용하여 cobolt파일의 코드를 확인합니다. 2. 코드 분석1. char형 buffer[16]을 생성2. 전달 받는 인자의 수가 2개 미만이면 프로그램 종료3.strcpy argv[1]을 buffer에 복사한다. 여기서 argv[0]은 프로그램을 실행시키는 명령어 입니다. 예를 들어 ./cobolt 여기서는 이것이 argv[0]이 되겠습니다. 3. gdb 를 사용하여 인자값들의 주솟값을 확인하기 위해 cp 명령어를 사용해 /tmp로 복사시켜줍니다. $ cp cobolt /tmp/cobolt ( gdb 권한 문제) (tmp위치에서 gdb cobolt을 한 후) gdb를 이용해 스텍의 크기는 16 이라는 것을 .. 2016. 8. 1.
web hack project(1) web hack project (1) 어디서 부터 공부를 하였는가? 웹에대해서 기초가 없었기 때문에 웹에 대한 공부 부터 했습니다. 생활코딩이라는 싸이트에서 정말 많이 배웠습니다. (추천) 저는 php,mysql,apache를 사용했습니다. 어디까지 공부 하였는가? 개발을 공부한지는 한 달정도 되가는 것 같은데요 지금은 아주 간단한 게시판 정도까지 했습니다. ( 로그인과 회원가입 등도 배웠습니다.) 지금까지 가장 어려웠던 것은? 아마도 저는 db 연동이 가장 어려웠습니다. 세션도 어려웠고, 그래도 재밌습니다 여러분도 도전해보세여 앞으로 해야할 것들 1. 관리자(admin) 페이지를 만들어야 한다. 2. sql-injection 차단. 3. 중복 로그인을 막아야한다. 일단 급하게 마무리해야 할 것들만 정리.. 2016. 7. 22.
web hack project (0) 안녕하세여 오늘은 동아리 부원들과 함께 하고있는 프로젝트를 소개할까 합니다. 이름은 web hack project (급조 한거 아닙니다.) 웹에 대한 공부가 처음이기 때문에 기초부터 단단히 하자는 취지로 프로젝트를 진행하게 되었습니다. 프로젝트 구성은1. 웹개발 (1달)2. 웹해킹 (1주)입니다. 정해진 기능이 있는 웹을 만들고 동아리 부원들끼리 만든 웹의 취약점을 찾는 프로젝트 입니다. 프로젝트 장은 제가 맡구있구여 부원들은 저 포함 총 4명이서 진행하고있습니다. 다음 글부터는 제가 어디서 부터 어디까지 공부하고 있는지에 대해서 다루도록 하겠습니다. 2016. 7. 22.
LOB level1 (gate->gremlin) LOB level 1 LOB (gate -> gremlin) 1. 첫 번째로 cat 명령어를 사용하여 gremlin파일의 코드를 확인합니다. 2. 코드 분석1. char형 buffer[256]을 생성2. 전달 받는 인자의 수가 2개 미만이면 프로그램 종료3.strcpy argv[1]을 buffer에 복사한다. 여기서 argv[0]은 프로그램을 실행시키는 명령어 입니다. 예를 들어 ./gremlin gdb 를 사용하여 인자값들의 주솟값을 확인하기 위해 cp 명령어를 사용해tmp로 복사시켜줍니다.( gdb 권한 문제) gdb를 이용해 스텍의 크기는 0x100=256byte라는 것을 알 수 있습니다. b * 는 breakpoint를 말합니다.disas main에서 프로그램을 멈출 지점을 정해주는 것 입니다.(.. 2016. 7. 13.
FTZ level17 FTZ (Free Training Zone) level17 1. 환경 : window102. VM, Red Hat Linux 9.0, putty id : level17pw : king poetic 1. cat hint를 사용하여 코드를 확인합니다. 분석을 해보면 16번과 동일한 방법이지만 16번은 쉘코드를 실행시키는 함수가 있고 그 함수의 주솟값을 스텍에 넣어주어 권한을 얻었지만 17번은 환경변수를 만들어 그 주솟값을 넣어주면 됩니다. 16번과 동일한 스텍구조이기 때문에 56-16=40 까지의 값을 채우고 환경변수가 있는 주솟값을 넣어주면 프로그램이 실행 되고 call포인터에 환경변수의 주솟값이 저장되어 마지막 코드에서 call를 호출할 때 환경변수를 호출하게 되어 권한을 획득할 수 있습니다. 이런 방식.. 2016. 7. 13.
FTZ level16 FTZ (Free Training Zone) level16 1. 환경 : window102. VM, Red Hat Linux 9.0, putty id : level16pw : about to cause mass 1. Cat hint를 사용하여 코드를 본다. 2. 코드를 분석한다. Int crap 은 crap이라는 이름의 변수 [4byte]를 만든다. Void(*call)()=printit; call이라는 포인터 함수에 printit의 주소를 넣는다 Char [20] char의 변수명에 20의 버퍼 공간을 만든다. Feget 함수를 이용하여 입력받는다 (stdin은 키보드 같은 표준입력 장치에서 입력을 받는 것 ) Call() 함수를 호출 한다. 3. 분석 Call이라는 함수 호출 이전에 printit의 .. 2016. 7. 12.