darkelf
-
Level7 (darkelf -> orge)$ 시스템 해킹 $/Los Of BufferOverflow 2020. 1. 1. 14:23
소스코드를 확인해 보겠습니다. 여기서 유의해서 확인해 봐야할 소스코드는 strlen(argv[0]) != 77 입니다. argv[0]의 길이가 77이어야 한다는 뜻입니다. 그래서 한번 77글자를 넣어서 우회해 보겠습니다. 이렇게 우회가 가능한거 같습니다. a를 넣어준 이유는 argv error 를 우회하기 위해서 입니다. 그리고 level6문제랑 똑같이 하면 될 것 같습니다. core dump를 만들어 보겠습니다. orge 를 arge로 복사 해서 arge로 core를 만들었습니다. gdb -q -c core를 이용해서 분석을 해보겠습니다. 쉘코드 시작 주소는 0xbffffbc2 입니다. expliot 페이로드를 작성해 보겠습니다. login : orge password : timewalker
-
Level6 (wolfman -> darkelf)$ 시스템 해킹 $/Los Of BufferOverflow 2020. 1. 1. 14:22
소스코드를 확인해 보겠습니다. check the length of argument 라고 해서 argv[1]의 길이를 48로 제한이 되어 있습니다. 하지만 argv[1]을 제한 했다면 argv[2]를 이용해서 해결하면 될것 같습니다. core dump를 떠서 한번 확인해보겠습니다. gdb를 사용해서 ret 주소를 한번 찾아 보겠습니다. RET 주소는 0xbffffc4a로 하면 될 것 같습니다. login : darkelf password : kernel crashed