정보보안/FTZ

[FTZ]level15

b1ackhand 2022. 7. 25. 20:57

14단계 문제와 같아 보이지만 check이 포인터 변수인 것이 다르다.

포인터 변수로 되어있다는 것은 값이 deadbeef 여야 된다가 아니라

가르키는 주소의 값이 deadbeef 여야 된다는 것이다.

 

gdb로 전과 같이 분석했을 때 deadbeef 를 하드 코딩하여 비교하고 있기 때문에

main 부분의 메모리를 살펴보면

다음과 같이 dead beef가 저장 되어있는 모습을 알 수 있다.

 

(python -c 'print "\x90"*40+"\xb2\x84\x04\x08"';cat) | ./attackme

따라서 다음과 같이 코드를 입력하여 해결 할 수 있다.

 

이 외에 check 이 들어가는 부분을 환경변수를 이용하여 처리 할 수 도 있다.

'정보보안 > FTZ' 카테고리의 다른 글

[FTZ]level17  (0) 2022.07.25
[FTZ]level16  (0) 2022.07.25
[FTZ]level14  (0) 2022.07.23
[FTZ]level13  (0) 2022.07.22
[FTZ]level12  (0) 2022.07.22