one_gadget이란
원가젯은 maing_gadget이라고도 부르며, 실행하면 쉘을 획득할 수 있는 코드 gadget이다.
제약 조건을 맞춰서 rip레지스터를 원가젯을 가리키도록 하면 매우 강력한 익스플로잇 도구가 될 수 있다.
원가젯은 libc 버전마다 다르게 존재하고 버전이 높아질수록 제약 조건도 맞추기 까다로워진다.
함수에 인자를 전달하기 어려운 상황에 유용하게 활용될 수 있으며, 이 때 제약 조건을 만족하는 원가젯이 있다면 이를 실행하여 쉘을 획득할 수 있다.

원가젯은 libc영역에 있기 때문에, libc_base 주소를 구한 다음 offset을 더하여 사용가능하다.
constraints 부분이 제약 조건이다. 동적분석 하며 제약 조건을 확인할 수도 있지만, 보통 원가젯을 다 써놓고 하나하나 다 넣어본다..ㅋ
'PWN > 개념' 카테고리의 다른 글
| Use After Free(UAF) 취약점 (2) | 2025.07.25 |
|---|---|
| ptmalloc2 - Memory Allocator in Linux (1) | 2025.07.24 |
| PIE / RELRO (0) | 2025.07.23 |
| Return Oriented Programming(ROP) 공격 기법 (0) | 2025.07.23 |
| PLT, GOT (0) | 2025.06.26 |