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%EC%9D%B4?category=925147
(+)
syscall 가젯이 없을 땐 특정 함수의 1byte를 함수 내부의 syscall 부분의 1byte로 덮어주면 plt 호출 시 syscall이 호출된다.
'Note > pwnable' 카테고리의 다른 글
[NOTE : pwnable] shellcode 제작하기 (0) | 2021.04.27 |
---|---|
[NOTE : pwnable] send를 보낼까 sendline을 보낼까 (0) | 2021.04.15 |
[NOTE : pwnable] asm로 문제풀 때 (0) | 2021.03.23 |
[NOTE : pwnable] cat flag가 안될 때 (cat명령 막힘, 파일 읽기 명령) (0) | 2021.03.17 |
[NOTE : pwnable] PIE 보호기법 우회 (0) | 2021.03.15 |