System, Pwn/pwnable.xyz

pwnable.xyz - challenge

ddanss 2019. 10. 7. 01:03
728x90

어우.. 너무어렵다

read, write함수 이용해서...하는건가...했는데 아니다.

이건 malloc 함수를 이용해 푸는 문제라고 한다.

 

앞으로 내용을 요약하면,

아이거 malloc이 결국 너무 큰값을 해서

v5가 0이 되어가지고 떠돌이 신세가 된다.

이제 size를 통해서 heap에 접근한다음, v5[(heap-1)+1] = 0

이런식으로 접근하는 것이다.

이렇게 Leak에대한 주소를 주고 밑에 길이와 message를 입력받는다.

출력되는 Leak : 주소는 v3의 첫 주소일 것이다. (heap영역주소)

 

gdb에서 어떻게 main에서 break를 걸까 고민했는데

 

r 치고 Length of your message: 여기 입력 부분에서 break 걸면 디버깅할수 있게끔 나온다.

ni 겁나쳐서 main부분 찾았따.

여기서보면 

[rbp+rdx*1-0x1] 에 0을 넣는다.

그리고 우리가 비교해야하는 v3값은 rbx에 있다.

그럼 우리는 rdx값을 rbp, 즉 rbx값에 맞춰주면 된다.

 

 

와;;;;;;;살벌하게 어렵구만

반응형