System Hacking (pwnable)/hackerschool LOB Write-up 3

[LOB] level7 - darkelf( write - up )

[ LOB darkelf ]id : darkelf pw : kernel crashed 인자는 main 함수를 통해 전달받는다. 크기 40의 버퍼가 char형식으로 선언되었고, 변수 i가 int형식으로 선언되었다. 따라서 선언된 변수의 총 바이트 수는 44 바이트이다. main함수의 인자전달에서argc[A] = 인자 개수가 A 개 임을 의미 argv[0] = 실행파일의 이름 ( 이름이라기보다는 실행경로의 길이가 맞을듯 하다. ) argv[1] = 첫번째 인자 ( 공백으로 구분 )argv[2] = 두번째 인자 ( 공백으로 구분 ) 으로 나누어진다. 첫번째 if문에서는 인자가 두개 미만일때 ( 인자 전달이 아예 없을때 ) 프로그램을 종료시킨다. ( argc는 인자갯수를 의미 ) 첫번째 for문은 모든 환경변수..

[LOB] level6 - wolfman ( write - up )

[ LOB wolfman ]id : wolfmanpw : love eyuna - 코드분석 - 인자는 main 함수를 통해 전달받는다. 크기 40의 버퍼가 char형식으로 선언되었고, 변수 i가 int형식으로 선언되었다. 따라서 선언된 변수의 총 바이트 수는 44 바이트이다. main함수의 인자전달에서argc[A] = 인자 개수가 A 개 임을 의미 argv[0] = 실행파일의 이름 argv[1] = 첫번째 인자 ( 공백으로 구분 )argv[2] = 두번째 인자 ( 공백으로 구분 ) 으로 나누어진다. 첫번째 if문에서는 인자가 두개 미만일때 ( 인자 전달이 아예 없을때 ) 프로그램을 종료시킨다. ( argc는 인자갯수를 의미 ) 첫번째 for문은 모든 환경변수의 내용을 0으로 바꾸는 코드이다. 이 코드로 인..

[LOB] level1 - gate ( write - up )

[ LOB gate ] id : gatepassword : gate 로 접속한다. 1. ls -l2. mkdir tmp3. cp gremlin tmp ls 명령어로 파일을 확인하고, mkdir 명령어로 tmp 디렉토리를 만들어 gremlin 을 cp 명령어를 이용하여 복사해두자.tmp 디렉토리에서 여러가지 작업 ( gdb, eggshell 등등 ) 을 진행하기 위함이다. - 코드분석 - main 에서 인자를 전달받고, if문에서 main 인자의 개수가 2개 이상이면 강제로 프로그램을 종료한다. ( 알고보니까 if문의 내용은 별다른 인자전달이 없을때는 오류를 출력한다는 의미였네요.) strcpy에서는 main 함수에서 받은 argv[1]를 버퍼에 대입할때 크기 검사를 하지 않으므로 버퍼오버플로우 공격이 가..