Constant(438)
-
pwnable.tw start
보호되어 있는 글입니다.
2018.05.03 -
Rootme ch25 C++ Basic
c++ 관련 문제를 며칠전에 풀고 rootme에서 c++문제를 풀어보기로 하였다. 시간 소요 : 15분(브레이크포인트를 검증하기 위해 걸지 않고 하니 시간이 오래 걸렸다. 대회에서는 이렇게 하지 않아야 겠다.) 루틴이 비교적 쉬운 문제였다고 본다. 전체적인 흐름은 다음과 같다.1. 매개변수 argc!=2이면 프로그램이 종료된다.2. 입력된 매개변수 argv[1]이 있으면 정상적인 흐름을 진행할 수 있다. 3. 입력된 매개변수와 상관없이 string객체에 생성된 문자열의 길이를 체크한다.4. 문자열은 힙에 할당된다. 메인함수부분이다.argc!=2가 아니면 실패 관련 구문으로 분기하게 된다. 실패 구문 매개변수가 2개 들어갔을 경우 allocator와 string클래스가 눈에 보인다. string으로 무엇인..
2018.05.03 -
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 -
pwnable.kr Rookis note 풀기 전 개념 공부
보호되어 있는 글입니다.
2018.04.29