exploit-exercise Fusion level-01

2018. 8. 12. 21:59WarGame/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