2018/05/02(3)
-
Plaid CTF ropasaurusrex Expliot
#!-*-encoding:utf-8-*-from pwn import*'''rop 의 목적 : nx 및 alsr 우회조건 1. system 함수가 필요하다조건 2. binsh 가 필요하다 트리거 과정1. system 을 구한다2. binsh 를 구한다3. 페이로드를 작성한다'''context.log_level = 'debug'elf = ELF('./rop')p = process('./rop') read_plt = elf.plt['read'] # 함수를 호출하기 위해 plt가 필요하다write_plt = elf.plt['write']read_got = elf.got['read']#elf = elf.plt['system']바이너리에 시스템이 존재하지 않아서 쓸 수 없다.pppr = 0x80484b6 # obj..
2018.05.02 -
Rootme ch12 (Race condition)
ch12 : Race condition 문제 바이너리는 /tmp/tmp_file.txt를 생성하는데 (v4) 이미 존재하면 exit(0) 바이너리는 /challenge/app-systeme/ch12/.passwd를 연다. (v5)해당 경로에 이 파일이 존재하지 않으면 exit(0) while ( read(v5, &buf, 1u) == 1 ) write(v4, &buf, 1u); 플래그를 1바이트씩 읽은 후 v4에 차곡차곡 저장한다. unlink("/tmp/tmp_file.txt"); 시간 조금 지나고 /tmp/tmp_file.txt를 지워버려서 플래그를 획득할 수 없다. 그렇다면, 어떻게 익스플로잇을 할 것인가? 눈여겨 보아야 하는 단어는 "지워버리는 unlink" 이다. /tmp/tmp_file.txt..
2018.05.02 -
Rootme Race condition (ch12)
Race condition이란? 한정된 자원을 "동시에" 이용하려는 여러 프로세스가 자원의 이용을 위해 경쟁을 벌인다. 레이스컨디션을 이용하면 root 권한을 얻을 수 있게 된다. Race condition은 어떻게 발생하게 될까? 심볼릭 링크에 대해 조금 알고 있어야 한다. 심볼릭 링크란 바로가기라고 볼 수 있는데, 심볼릭 링크가 수정되어도 본래의 파일은 수정이 되게 된다. rootme문제를 통해 Race condition을 이해해보자. 접속ssh -p 2222 app-systeme-ch12@challenge02.root-me.org id = app-systeme-ch12pw = app-systeme-ch12 Race condition의 조건 1. 다른 계정의 권한에 접근해야 하기 때문에 SUID가 걸..
2018.05.02