문제 분석 #include <stdio.h> #include <stdlib.h> #include <signal.h> #include <unistd.h> void alarm_handler() { puts("TIME OUT"); exit(-1); } void initialize() ...
[ Dreamhack ] basic_rop_x86
[ Dreamhack ] basic_rop_x64
문제 분석 문제 파일에는 NX가 설정되어 있다. #include <stdio.h> #include <stdlib.h> #include <signal.h> #include <unistd.h> void alarm_handler() { puts("TIME OUT"); exit(-1...
Docker를 이용한 pwnable 환경 세팅
dockerfile ubuntu 20.04 FROM ubuntu:20.04 WORKDIR /root ENV LC_CTYPE C.UTF-8 ARG DEBIAN_FRONTEND=noninteractive RUN dpkg --add-architecture i386 RUN apt update -y RUN apt install python3-pip ...
[ Dreamhack ] command-injection-1
문제 분석 문제를 보면 아이피를 입력할 수 있는 창이 있고 입력하면 해당 아이피로 핑을 보낸 결과를 보여준다. 만약 아이피 형식이 아닌 다른 값을 입력하면 명령어는 실행이 되지 않는다. 문제 풀이 def ping(): if request.method == 'POST': host = ...
[ Dreamhack ] session-basic
문제 분석 문제 소스코드를 보면 다음과 같다. users = { 'guest': 'guest', 'user': 'user1234', 'admin': FLAG } 사용자는 guset, user, admin 이렇게 세 개가 존재한다. @app.route('/') def index(): session_id =...
[ Dreamhack ] ssp_001
문제 분석 32bit 바이너리이며, NX하고 Canary가 걸려있다. #include <stdio.h> #include <stdlib.h> #include <signal.h> #include <unistd.h> void alarm_handler() { puts("TIME OUT"); ...
[ Dreamhack ] basic_exploitation_001
문제 분석 문제의 환경정보를 보니 어떠한 보호기법도 적용되어 있지 않다. #include <stdio.h> #include <stdlib.h> #include <signal.h> #include <unistd.h> void alarm_handler() { puts("TIME OUT...
[ Dreamhack ] basic_exploitation_000
문제 분석 환경정보를 보면 어떤 보호기법도 적용되지 않고 있다. #include <stdio.h> #include <stdlib.h> #include <signal.h> #include <unistd.h> void alarm_handler() { puts("TIME OUT"); ...
[ HackCTF ] Simple_Overflow_ver_2
문제 분석 문제를 실행해보면 Data를 입력하면 버퍼의 주소를 알 수 있다. 다시 Data를 입력하면 같은 위치에 새로운 Data가 들어간다. 코드를 보면 scanf로 값을 입력받는 부분에서 길이에 대한 검사가 없어 BOF 취약점이 존재한다. 문제 풀이 처음에 아무 값이나 입력해서 버퍼의 주소를 찾고, 해당 버퍼에 쉘코드를...
[ HackCTF ] x64 Simple_size_BOF
문제 분석 gets에서 BOF 취약점을 찾을 수 있다. 또한 puts를 통해 buffer의 주소를 알려주고 있다. 문제 풀이 buffer에 쉘코드를 넣고 gets에서 BOF를 통해 return address를 buffer로 덮어주면 된다. payload는 다음과 같이 작성하면 된다. shellcode - dummy(27952...