one_gadget

    [System][Dreamhack] Exploit Tech: Hook Overwrite - one_gadget

    [System][Dreamhack] Exploit Tech: Hook Overwrite - one_gadget

    one_gadget(magic_gadget)은 실행하면 쉘이 획득되는 코드 뭉치를 말한다. 여러 gadget의 조합없이, 하나의 gadget만으로도 쉘을 실행할 수 있는 gadget이다. HITCON, 217 CTF팀의 david942j가 만든 one_gadget을 사용하면 쉽게 찾을 수 있다. one_gadget은 libc 버전마다 다르게 존재하고, 제약 조건도 모두 다르다. Glibc의 버전이 높아질수록 제약 조건을 만족시키기 어렵기 때문에, 상황에 따라 맞는 gadget을 사용하거나 제약조건을 만족하도록 조작해야한다. one_gadget은 함수에 인자를 전달하기 어려울 때 활용할 수 있다. __malloc_hock을 overwrite하는 것은 가능하지만 malloc의 인자에 "/bin/sh"을 전달..