[LOB] level6, wolfman -> darkelf 풀이
- 시스템해킹/LordOfBof
- 2020. 4. 4. 20:40
반응형
LOB, wolfman -> darkelf 문제 확인
저번 문제와 다른점은, argv[1] 길이체크를 한다는 것이다.
점점 제약조건이 추가되고 있는데 정리하자면 아래와 같다.
- 환경변수 초기화
- 버퍼 초기화
- arvg[1] 길이체크
- 48번쨰 바이트 \xbf
LOB, wolfman -> darkelf 풀이
현재 스택 상황은 아래와 같다. 참고로 argc, argv[1], argv[1], ... 는 RET 뒤 어딘가 오게된다.
i (4) |
buffer (40) |
SFP |
RET |
... |
argc |
argv[0] |
argv[1] |
RET 뒤에 argv 값들의 위치가 정확히 어떻게 되는지 확인해보기 위해 argv[1]과 argv[2]에 A와 B를 각각 넘겨주었다.
쭉쭉 내리다보면 아래 부근에서 0x42 값을 확인할 수 있다. argv[2]는 길이체크를 하지 않기 때문에 argv[2]에 nop과 쉘코드를 넣어주면 된다.
LOB, wolfman -> darkelf 익스플로잇
따라서 argv[1]에 더미 44바이트와 argv[2] 부근의 적당한 주소를 주고 argv[2]에 nop과 쉘코드를 넣어주면 아래와 같이 패스워드를 얻을 수 있다.
'시스템해킹 > LordOfBof' 카테고리의 다른 글
[LOB] level8, orge-> troll풀이 (0) | 2020.04.05 |
---|---|
[LOB] level7, darkelf -> orge 풀이 (0) | 2020.04.05 |
[LOB] level5, orc -> wolfman 풀이 (0) | 2020.04.04 |
[LOB] level4, goblin -> orc 풀이 (0) | 2020.04.04 |
[LOB] level2, gremlin -> cobolt 풀이 (0) | 2020.04.04 |