티스토리 뷰

1
2
3
4
5
6
7
int __cdecl main(int argc, const char **argv, const char **envp)
{
  char buf; // [rsp+0h] [rbp-10h]
 
  read(0&buf, 256uLL);
  return 0;
}
cs


IDA로 보면 read 받고 끝난다. 그리고


1
2
3
4
int get_shell()
{
  return system("/bin/sh");
}

c


이런 함수도 있는데 PIE가 걸려있음.

근데 어셈블리로 보면

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
.text:00000000000007A8                 push    rbp
.text:00000000000007A9                 mov     rbp, rsp
.text:00000000000007AC                 sub     rsp, 10h
.text:00000000000007B0                 lea     rax, [rbp+buf]
.text:00000000000007B4                 mov     edx, 100h       ; nbytes
.text:00000000000007B9                 mov     rsi, rax        ; buf
.text:00000000000007BC                 mov     edi, 0          ; fd
.text:00000000000007C1                 mov     eax, 0
.text:00000000000007C6                 call    read
.text:00000000000007CB                 lea     rax, binsh      ; "/bin/sh"
.text:00000000000007D2                 mov     rdi, rax
.text:00000000000007D5                 mov     rdx, rbp
.text:00000000000007D8                 add     rdx, 28h
.text:00000000000007DC                 lea     rax, get_shell
.text:00000000000007E3                 mov     rcx, rax
.text:00000000000007E6                 mov     [rdx], rcx
.text:00000000000007E9                 mov     eax, 0
.text:00000000000007EE                 leave
.text:00000000000007EF                 retn
cs

이렇게 나오는데 read 하고 get_shell 바로 call 하길래

PIE 걸려있고, 마지막 바이트 바꾸면 될 것 같아서 get_shell call 하는쪽으로 돌렸더니 따였다 ㅋㅋ 

진헌이한테 물어보니 언인텐이라고 해서 다시 풀어보았다.

PIE 자체가 바이너리 영역 주소를 랜더마이징 하는건데 vsyscall 부분에 보면 PIE 안먹히는 부분이

있다고 한다.

1
2
3
4
5
6
pwndbg> x/i 0xffffffffff600400
   0xffffffffff600400:    mov    rax,0xc9
pwndbg> 
   0xffffffffff600407:    syscall 
pwndbg> 
   0xffffffffff600409:    ret  
cs
 
여기 보면 ret이 있는데 0xffffffffff600400을 써야한다고 한다.

그래서 0xffffffffff600400 대충 30개쯤 때려박으면 쉘이 따인다 ㄷㄷ


'Pwnable > write up' 카테고리의 다른 글

CSAW 2013 miteegashun(400)  (0) 2018.11.19
P.W.N ctf exploitClass  (0) 2018.11.18
P.W.N ctf write up  (0) 2018.11.04
[PlaidCTF 2014] kappa  (0) 2018.09.26
[DEFCON 2015] r0pbaby  (0) 2018.09.16
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함