목록Pwnable/Wargame (6)
Iriton's log
Description: 이 문제는 작동하고 있는 서비스(ssp_001)의 바이너리와 소스코드가 주어집니다.프로그램의 취약점을 찾고 SSP 방어 기법을 우회하여 익스플로잇해 셸을 획득한 후, "flag" 파일을 읽으세요."flag" 파일의 내용을 워게임 사이트에 인증하면 점수를 획득할 수 있습니다. 취약점 분석#include #include #include #include void alarm_handler() { puts("TIME OUT"); exit(-1);}void initialize() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); signal(SIGALRM, alarm_handler); a..
Description이 문제는 서버에서 작동하고 있는 서비스(basic_exploitation_001)의 바이너리와 소스 코드가 주어집니다.프로그램의 취약점을 찾고 익스플로잇해 "flag" 파일을 읽으세요."flag" 파일의 내용을 워게임 사이트에 인증하면 점수를 획득할 수 있습니다.플래그의 형식은 DH{...} 입니다. 취약점 분석#include #include #include #include void alarm_handler() { puts("TIME OUT"); exit(-1);}void initialize() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); signal(SIGALRM, alarm..
Description 이 문제는 서버에서 작동하고 있는 서비스(basic_exploitation_000)의 바이너리와 소스 코드가 주어집니다. 프로그램의 취약점을 찾고 익스플로잇해 셸을 획득한 후, "flag" 파일을 읽으세요. "flag" 파일의 내용을 워게임 사이트에 인증하면 점수를 획득할 수 있습니다. 플래그의 형식은 DH{...} 입니다. 취약점 분석 a#include #include #include #include void alarm_handler() { puts("TIME OUT"); exit(-1); } void initialize() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); signal(SIGALRM, ala..
https://eunginius.tistory.com/entry/Exploit-Tech-Return-Address-Overwrite Exploit Tech: Return Address Overwrite *본 포스트는 Dreamhack - Systemhacking Lecture 을 참고하여 작성되었습니다. 분석 취약점 분석/트리거 // Name: rao.c // Compile: gcc -o rao rao.c -fno-stack-protector -no-pie #include #include void init() { setvbuf(stdin, 0, 2, 0); eunginius.tistory.com 위 글에 Exploit까지 다 나와 있는데, 본 포스트는 단지 pwntools 사용에 익숙해지기 위해 작성된 ..
welcome Description 이 문제는 서버에서 작동하고 있는 서비스(welcome)의 바이너리와 소스 코드가 주어집니다. "접속 정보 보기"를 눌러 서비스 정보를 얻은 후 플래그를 획득하세요. 서버로부터 얻은 플래 dreamhack.io 리버싱 문제를 풀다가 nc 명령어로 지정된 호스트와 포트번호를 활용해서 서버에 접속할 수 있다는 걸 깨달았기에 써먹어 봤다. 플래그가 바로 떴다. 허무... 그래도 코드 분석을 해보자. flag 폴더를 연다. fseek 함수는 파일 포인터를 이동시키는 함수이다. ftell은 현재 위치를 long 타입 정수형으로 출력한다. 현재 위치가 파일의 끝이기 때문에(SEEK_END로 끝까지 이동했다.)파일 전체 크기를 반환해서 flag_len 변수에 넣은 거다. 다시 처음..
Description 입력한 셸코드를 실행하는 프로그램이 서비스로 등록되어 작동하고 있습니다. main 함수가 아닌 다른 함수들은 execve, execveat 시스템 콜을 사용하지 못하도록 하며, 풀이와 관련이 없는 함수입니다. flag 파일의 위치와 이름은 /home/shell_basic/flag_name_is_loooooong입니다. 풀이 우선 문제 파일에 있는 c코드부터 봤다. main함수만 보라고 했으니 확인해 봤다. read 함수를 사용하며, 일반입력을 이용한다. 첫번째 인자의 0은 stdin을 의미한다. 강의에서 /tmp/flag처럼 파일 데이터를 읽어냈는데 이때 배운 orw shellcode를 작성해야 할 거 같다. 근데 이전 강의에서 배운 쉘코드를 직접 작성하여 실행하는 것이 너무 복잡할..