쉽게 푼 건 풀이를 쓰지 않습니다
cat gremlin.c
쉘코드를 포함한 환경변수를 등록해서 그 주소로 ret을 덮어쓰도록 익스플로잇했다.
(과정 생략)
가장 헷갈렸던 부분은 gdb로 까서 set disas intel하면 intel 어셈으로 바뀌어야 하는데 at&t의 '%'가 나오던 부분...
>> AT&T 어셈블리
AT&T의 lea 부분을 보면 웬 0xffff....같은 큰 수가 나온 것을 볼 수 있는데 이것은 2의 보수를 이용한 것!
>> 2의 보수 이해
https://st-lab.tistory.com/189
2의 보수 구하기 = 2진수 값 0, 1 반전 -> +1 한 수에 - 붙이면 된다.
ex. 0xffff ff00 -> 0x0000 00ff -> 0x0000 0100 = -256(최상위 비트가 1이었으니까 음수... - 붙이기)
쨋든 익스 성공하면
gremlin / hello bof world
'워게임 > LOB' 카테고리의 다른 글
LOB - troll (환경변수) (0) | 2021.08.01 |
---|---|
LOB - darkelf (0) | 2021.07.31 |
LOB - wolfman (심볼릭 링크) (0) | 2021.07.31 |
LOB - orc (0) | 2021.07.31 |
LOB - goblin (0) | 2021.07.31 |
댓글