pwn bof문제를 풀다가 보면 입력 buffer로부터 ret의 거리를 구하는 경우처럼 offset을 구해야 하는 경우가 있다. 보통 stack frame을 살펴야 하는데 이때 pwntools의 cyclic을 활용하면 보다 쉽게 구할 수 있다.
pwntools의 cyclic의 원리는 고유한 순환 패턴 문자열을 생성한다. 이후 특정 문자열의 offset 값을 알려주는 원리로 offset을 구할 수 있다.
명령어는 python exploit code에서 쓸 수도 있고 cli 명령어 프롬프트에서 사용할 수도 있다. 아래는 gdb가 아닌 cli 명령어 프롬프트에서 사용하는 명령어이다.
pwn cyclic <생성 문자열 길이>
pwn cyclic -l <offset 구할 문자열>
이외에도 gef gdb에서 지원해주는 pattern도 같은 상황에서 많이 쓰이니 참고하도록.
아래에서 pwn cyclic을 쓰는 reference를 참고하였다.
https://flash-ctf.tistory.com/78
ROP (64byte) 문제 3번
안녕하세요!오늘은 rop 64byte3번째 문제를 풀어보도록 할게요! 해당 문제는 제가 위에 올려놓았습니다!코드는 아래와 같습니다! char형의 배열 sh에는 "/bin/sh" 문자열이들어가있네요! 당연히 이를
flash-ctf.tistory.com
'security > pwn' 카테고리의 다른 글
[pwn] gef, peda, pwndbg 동시에 사용하기 (2) | 2025.01.03 |
---|---|
[Dreamhack] rop 풀이 (0) | 2024.07.10 |
[Dreamhack] basic_rop_x86 풀이 (0) | 2024.07.10 |
[Dreamhack] basic_rop_x64 풀이 (0) | 2024.07.10 |
[pwn] 로되리안 해결하기 (0) | 2024.07.09 |