분류 전체보기(82)
-
[어설픈] LOB 9번 troll 문제풀이
안녕하세요!오늘은 LOB 9번 문제troll 문제풀이를 하겠습니다! 문제의 소스코드는 아래와 같이 나와있습니다!근데 직전 문제와 바뀐 게 좀 있네요! argument 길이 체크하는 것도 없어지고버퍼 초기화하는 것도 없어지고 이번 문제는 컨셉이 좀 달리진거 같네요! 우선 보면,argument 개수가 2개 이상인건 똑같구여argv[1]의 48번째가 \xbf 값이여야 하는 것도 동일하구요 근데 //here is changed! 부분을 보니argv[1]의 47번째 부분이 \xff이면 안된다네요!그거 말고는 밑에는 뭐 똑같이 strcpy 해서 취약점 터지는 부분이구요! 근데 여기서 왜 굳이 argv[1]의 47번째 값이 \xff면 안되게 했을까요?왜냐하면 저희가 이때까지 payload에서 계속 return 주소로..
2019.03.26 -
[어설픈] LOB 8번 orge 문제풀이
안녕하세요! 오늘은 LOB 8번 문제 orge 문제풀이를 해볼게요! 아래에 소스코드가 있습니다!뭐 직전 문제와 달라진 점은 두 군데 있네요! //here is changed!// one more! 이 두 부분이네요! 첫 번째 바뀐 것은 argument의 갯수를 2개로 고정해라! 두 번째로 바뀐 것은 직전 문제 darkelf에서 저희가 argv[1]에 return을 했는데더 이상 argv[1]을 사용 못하게 되었네요!왜냐하면 argv[1]을 0으로 초기화하니까요! 나머지 조건은 똑같아요 버퍼크기, 환경변수 못 쓰는것 argv[1]의 48번째 \xbf, argv[1]의 길이 48까지버퍼도 초기화! 자 그러면 저희는 어떻게 문제를 풀어야 할까요?간단하게 생각해보면argv[1]은 초기화 하는데argv[0]은 초..
2019.03.24 -
[어설픈] LOB 7번 darkelf 문제풀이
안녕하세요!오늘은 LOB 7번째 문제인 darkelf 문제풀이를 해보도록 하겠습니다! 아래에 소스코드가 있는데요!직전 문제 wolfman과 달라진 점이 한 군데 있네요! //here is changed! 부분의 코드를 보면argv[1]이 아니라 argv[0]의 길이가 무조건 77이 돼야 하네요..그게 아니면 argv[0] 에러라는 메세지를 출력하잖아요! 나머지 소소코드에 대한 해석은 woflman에서도 했으나,간단하게만 다시 요약하자면(자세한 소스코드 풀이는 전에 문제들을 참고해 주세요! :) ) argument 갯수 2개 이상 환경변수 사용 못함! argv[1]의 48번째 값 \xbf! argv[1]의 길이 48까지 가능 버퍼 공간 0으로 메모리 초기화! 그리고 이번에 추가된 argv[0]의 길이 77..
2019.03.21 -
[어설픈] LOB 6번 wolfman 문제풀이
안녕하세요!오늘은 LOB 6번문제wolfman을 풀어보도록 하겠습니다! 소스코드는 아래에 나와있습니다!직전 문제인 orc과 다른 점이 딱 한 군데 있네요! //check the length of argument 이 부분이요!argv[1]의 길이가 48보다 크면 안돼요! 나머지 조건들은 다 동일해요!버퍼가 40인 것! int형 변수 i가 선언된 것!argument 갯수!환경변수 못 쓰는 것!argv[1]의 48번째 값이 \xbf이여야 하는 것!버퍼값이 0으로 초기화 되는 것!(자세한 설명은 직전 문제풀이들을 참고해 주세요! :) ) 우선 tmp 폴더를 만들고지난 문제처럼 tmp 폴더에 프로그램을 복사해줍니다!저희가 로그인한 wolfman 소유로 파일을 실행시켜야 gdb가 돌아가니까요! 그리고 이번에도 똑같..
2019.03.19 -
[어설픈] LOB 5번 orc 문제풀이
안녕하세요!오늘은 LOB 5번 orc 문제풀이를 해보겠습니다! 아래에 문제의 소스코드가 주어졌습니다! 직전 goblin 문제와 다른 점이딱 하나 있죠? 맨 밑에 buffer를 0으로 초기화 해주는거요!goblin에서 소스코드 해석 다 했지만간단하게만 짚고 넘어가면! 1) 크기가 40인 버퍼, 정수 i 스택에 선언 2) argument 갯수 2개 이상으로 맞춰라! 3) 환경변수 못 쓴다! 4) argv의 48번째 값 \xbf이여야 한다! 5) 그리고 이 문제에서 추가된!버퍼도 초기화 해주니 exploit 할 때 버퍼 쓰지마!일단 tmp 폴더를 만들고tmp 폴더에 wolfman 프로그램을 복사합니다! 왜냐?wolfman은 저희가 로그인한orc 소유가 아니기에 gdb로 실행을 못시켜요 ㅠㅠ 자 그리고 이제 g..
2019.03.17 -
[어설픈] LOB 4번 goblin 문제풀이
안녕하세요! 오늘은 LOB 4번goblin 문제풀이를 해보도록 할게요! 아래와 같이 일단 소스가 있습니다!직전 문제 cobolt에 비해서꽤 기네요! 하나씩 천천히 살펴볼게요! 1) argv 형식으로 입력받음 2) 스택에 buffer 40크기, int형 i 변수가 있구요! 3) argument가 2개보다 작으면 오류라고 에러 메세지 출력! 4) 여기서 egghunter라고 하는건! 환경변수를 못쓰게 한거에요!왜냐면 코드를 보면 environ[i] 이 부분이 환경변수를 가리키는 건데memset 함수로 environ[i] 값을 모두 0으로 설정하잖아요! 5) 여기도 추가된 부분인데 argv[1][47] != '\bf'배열에서 47이면 실제론 48이죠?(배열의 index가 0부터 시작하니까요) 즉, argv[1..
2019.03.15