Try to be the expert.

Ainsetin's Hacking & PS & Math

Hacking/HackCTF

HackCTF Basic_BOF #2 Write-up

Ainsetin 2019. 12. 22. 21:49

가즈아!!

 

 

이번엔 Basic_BOF #2를 풀어보겠다.

 

 

binary의 보호 기법을 확인하니,

 

전 문제와 똑같이 NX가 걸려 있는 것을 볼 수 있다. 이 말은 쉘코드를 사용할 수 없다는 의미이기도 하다.

 

그럼 IDA로 까보자.

 

main 함수

이번엔 main을 까 봤더니 그냥 sup함수를 호출하고 s를 입력받고 v5를 실행하는 간단한 함수였다.

 

sup 함수는 그냥 s를 출력하는 함수였다.. shell 함수도 존재해서 디컴파일 해보았다.

 

shell 함수

system 함수를 호출하는 함수이다!! 따라서 우리는 BOF를 일으켜 RET 변조를 해야 한다.

 

그런데 s의 크기는 16진수 8C, 즉 140byte이다... fgets에서 133byte밖에 입력을 못하기 때문에 RET 변조는 불가능하다.

 

결정적인 것은,, main에서 v5가 sup 함수의 주소를 포인팅 하고 있다는 것이다...! 따라서 Basic_BOF #1처럼 v5를 변조하는 문제가 되는 것이다!!

 

 

sup의 주소인 0x80484B4가 있는 곳이 저곳이므로 "dummy 128byte + shell 주소를 패킹한 값"으로 구성하면 된다.

 

 

실행해보면..!

 

 

flag를 획득할 수 있다.

'Hacking > HackCTF' 카테고리의 다른 글

HackCTF x64 Simple_size_BOF Write-up  (0) 2019.12.23
HackCTF x64 Buffer Overflow Write-up  (0) 2019.12.23
HackCTF 내 버퍼가 흘러넘친다!!! Write-up  (0) 2019.12.23
HackCTF Basic_FSB Write-up  (0) 2019.12.22
HackCTF Basic_BOF #1 Write-up  (2) 2019.12.22