![article thumbnail image](https://blog.kakaocdn.net/dn/WsiK5/btq3h40TbsH/HjPyRlngb8XekJlZQ7fQAk/img.png)
1. 문제
read 로 입력을 받을 때 bof 가 발생한다.
NX 만 걸려있다.
nx + aslr 이 걸려있는 상황에서 leak X -> 64bit rop 를 하려고 했으나, leak 을 할 수 없는 상황이었다.
puts 나 printf 등의 출력함수가 없기 때문이다.
이럴 땐 어떻게 해야 할까?
syscall rop = system call rop 을 이용해서 풀어준다.
2. 문제 해결 과정
rax : 0x3b
rdi : data
rsi : 0
rdx : 0
필요한 것들을 구해보자.
1) Gadget
2. 고정 주소 (data 영역)
bss 영역은 stdout 으로 쓰여서 data 영역에 저장해줌.
함수들의 하위 3바이트는 offset 을 나타내며, 항상 일정하다는 점을 이용 -> read_got의 마지막 바이트를 /x5e 로 overwrite 할 것.
1) data 영역에 binsh 주입
2) read_got overwrite
2) execve(binsh) 시스템 콜 호출
3. Exploit code
가젯 구하는 것부터 해서 어느하나 쉽지 않았던 문제였따,,$
'Wargame > HackCTF' 카테고리의 다른 글
[HackCTF] Beginner_Heap (0) | 2021.05.08 |
---|---|
[HackCTF] Look at me (sysrop) (0) | 2021.04.23 |
[HackCTF] ROP (0) | 2021.04.20 |
[HackCTF] Gift (0) | 2021.04.19 |
[HackCTF] Look at me (0) | 2021.04.19 |