process : 익스플로잇을 로컬 바이너리(응용 프로그램)를 대상으로 할 때 사용하는 함수remote : 원격 서버를 대상으로 사용하는 함수from pwn import \*p = process('./test')p.send(b'A') p.sendline(b'A) p.s
📌 RTL이란? > 스택에 NX(No eXecutable stack) 보안 기법이 적용되었을 때 사용하는 공격 기법이다. 📢 배경 NX 보안 기법은 "스택에서 코드 실행 불가"라는 제약 조건을 만들었고, 이로 인해 스택에서 shellcode를 삽입하고 RET 주소

함수의 프롤로그에서 스택 버퍼와 반환 주소 사이에 임의의 값을 삽입하고, 에필로그에서 값의 변조를 확인하여 버퍼 오버플로우를 막는 보호 기법.checksec으로 활성화된 보호 기법 확인확인해 보면 Canary, RELRO, PIE가 적용되어있는 것을 확인 할 수 있다.
Return Gadget을 사용하여 실행 흐름을 구현하는 기법.GOT overwrite, return to library, return to dl-resolve 등의 공격 기법을 연쇄적으로 구성하여 ROP payload를 만들 수 있다.해당 문제는 드림핵의 rop 문제
📌 PIE란? >

배열의 인덱스 주소가 배열의 범위 안에 있는지 검사하지 않는다는 점을 이용한 취약점 --> 인덱스 값이 음수이거나 배열의 길이를 벗어날 때 발생이 코드를 컴파일하여 실행하면, 인덱스를 -1과 100을 사용했음에도 불구하고, 아무런 경고 없이 여과없이 값을 출력함을 확인