Note/pwnable 9

[NOTE : pwnable] 어떨 때 syscall ROP를 하나요?

BOF가 터져서 RET를 어떤 함수(주소)로 덮을까 고민이 되었다. 함수 목록을 보면 flag를 출력해주는 함수도 없었고, system함수도 존재하지 않았따... 심지어 nx도 걸려있어서 쉘코드 실행도 못한다. 출력해주는 함수도 없어서 leak도 못하는 상황 그리고 static으로 컴파일되어있을때, 혹은 stripped 파일일 때, (전자는 모든 함수가 sub_*, 후자는 사용자정의함수가 sub_*) 이럴 때 syscall ROP를 한다. jiravvit.tistory.com/entry/HackCTF-Pwnable-look-at-me-%ED%92%80%EC%9D%B4-32bit-syscall jiravvit.tistory.com/entry/DEFCON-2019-speedrun-001-%ED%92%80%E..

Note/pwnable 2021.04.16

[NOTE : pwnable] PIE 보호기법 우회

PIE 보호기법이 걸려있으면 매우 작은 주소에 코드들이 위치한다. 왜냐면 주소공간의 어느 위치에 매핑되어도 작동하도록 상대주소로 되어있는 것... 아무튼 프로그램을 실행할 때마다 매핑되는 주소가 달라진다. ROP ㄴㄴ 실행중인 프로그램의 pie_base를 leak한다. 실제주소와 get_shell 같은 함수의 offset 차이를 이용한다. 한마디로 각 함수들이 동일한 offset으로 주소를 할당 받는 것을 이용한다.

Note/pwnable 2021.03.15