[PWN] pie2
다 켜져있다. ida로 까봤다. 흐름은 대충 bof가 한번 일어나고, 특정 주소에 8byte를 덮어쓸 수 있고, 마지막에 특정 주소를 free할 수 […]
다 켜져있다. ida로 까봤다. 흐름은 대충 bof가 한번 일어나고, 특정 주소에 8byte를 덮어쓸 수 있고, 마지막에 특정 주소를 free할 수 […]
이번 문제는 Full Relro, NX, 그리고 PIE까지 켜져있다. 코드 영역의 주소까지 랜덤화된다는 것을 인지하고 시작하자. ida로 까봤을 때 메인
ida로 까봤다. thread를 생성할 수 있고, 입력을 받을 수 있다. 그리고 마지막에 read로 0x400만큼 입력 받을 수 있기에 bof가
canary, nx, pie, full relro 다 켜져있다. 메인 함수이다. 처음엔 약간 복잡해 보였지만 그렇게 복잡하지 않다. 예전 주차에 풀어봤던
C코드를 보자. main 함수 내부에는 긴 설명이 적혀있다. 간단히 요약해보면 name을 입력 받고(크기는 10byte로 제한) 이를 출력해주며, vuln 함수를
C코드이다. main 함수 내부에는 note라는 2차원 배열(100 x 8)이 선언되어 있고, name에 입력을 받은 후 while 내부에서 input_note, print_note를
C코드이다. check 때문에 main 함수를 여러번 실행하기는 힘들어보인다. (사실 sfp와 ret를 잘 고려하여 if문 뒤로 jmp하면 main함수를 다시 실행할
이번 문제는 Canary가 있다! Canary가 뭔지 구글링해보았다. Stack Canary는 보호기법 중 하나인데, 간단히 말하여 버퍼와 sfp 사이에 특정 값을
C코드이다. 이전 문제와 비슷한 것 같지만 gift 함수가 사라졌다! ㅠㅠ system 함수의 plt가 없으니 libc_base의 주소를 구해서 system 함수의
C코드이다. 굉장히 짧고, 예시에서 보여주신 것과 비슷하지만, gift함수의 system에 인자로 ‘gift’가 전달되고 있다. 따라서 gift 함수를 실행하기 보다는 system