exploit-exercise Fusion level-01
2018. 8. 12. 21:59ㆍWarGame/exploit-exercises.com-fusion
fusion1번 문제입니다.
처음에 jmp esp라는가 어째서 내 쉘코드를 실행시키는지 확실하지않아서 조사를 많이해봐서 이를 요약해서 알려드리겠습니다.
먼저 소스코드입니다.
취약점은 이전문제와 같이 realpath내에 memset이 있기때문에 발생하는 취약점으로 판단됩니다.
일단 문제 조건은 : ASLR만 걸려있습니다. 따라서 스택내에서 실행권한이 있는것이죠
1. jmp esp 가젯을 찾는다.
2. 리턴값에 jmp esp를 준다.
3. esp가 가르키는 위치는 $"jmp esp"로 바뀐다.
4. 이때 esp는 바로 자기자신 위에있는 함수를 스택의 끝주소로 판단한다.
-> esp란 ? 하나의 스택 프레임의 끝 지점 주소가 저장된다. PUSH, POP 명령어에 따라서 ESP의 값이 4Byte씩 변한다
5. 따라서 바로 뒤로 점프가 가능하고 그 뒤값은 내가 넣어준 값들이다.
esp, eip 등등의 기본적인 용어에 대한 정리 사이트(http://sarghis.com/blog/357/)
그러면 이제 실행환경을 보여드려야겠네요.
jmp esp가젯을 찾는 과정입니다.
이대로 그냥 payload써주면 되요 ^^7
(grin)
엄청 안되서 삽질 엄청했는데
p32($jmp_esp)를 그냥 "$jmp_esp로 썼었네요 ㅠㅠ
이번에 경험했으니 담부터는 이런실수는 없기를...... :(
'WarGame > exploit-exercises.com-fusion' 카테고리의 다른 글
exploit-exercise Fusion level-02 (0) | 2018.08.14 |
---|---|
exploit-exercise Fusion level-00 (0) | 2018.08.10 |