ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • LEVEL 06 darkelf write-up
    System hacking training/Hackerschool LOB 2018. 3. 21. 15:02

    LOB darkelf에 대한 풀이를 하겠다.



    darkelf.c 를 열어보면 바이너리에 대한 c 코드가 나온다.


    이 바이너리는 strcpy()로 buffer에 argv[1]의 문자열을 그대로 받아옴으로서 bof 취약점이 존재한다.


    하지만


    egghunter로 인해 환경변수에 쉘코드를 올려 사용할 수 없다.

    buffer hunter로 인해 buffer에 쉘코드를 올려서 쉘을 띄울 수 없다.


    buffer hunter로 인해서 strcpy() 호출 후 memset()로 buffer를 다시 0으로 세팅해주기 때문에 쉘코드를 buffer에 올리더라도 사용할 수 없다.


    그리고 argument argv[1]의 길이를 체크하여 argument의 길이가 48보다 크면 오류 메시지를 출력하고 종료시킨다.


    따라서 argv[2]를 이용하면 된다.



    argv[2]의 위치를 알기 위해 core를 덤프해보면



    0x90가 100개 들어가 있다.

    이제 argv[2]에 쉘코드를 넣고 이 위치로 return 해주면 쉘이 실행된다.



    이상 풀이를 마친다.

    반응형

    'System hacking training > Hackerschool LOB' 카테고리의 다른 글

    LEVEL 08 troll write-up  (0) 2018.03.31
    LEVEL 07 orge write-up  (0) 2018.03.31
    LEVEL 05 wolfman write-up  (0) 2018.03.16
    LEVEL 04 goblin write-up  (0) 2018.03.16
    LEVEL 03 cobolt write-up  (0) 2018.03.15
Designed by Tistory.