본문 바로가기

c++

Windows10 BOF 연습 지금까지는 단 한번도 Windows7이상의 환경에서 취약점 분석을 진행해본 적이 없었다. 오랜만에 툴 사용법도 상기시키고 Windows10에서의 pwnable은 어떠한 차이가 있는 지 몸소 느끼기 위해서 취약한 실행파일을 직접 만들어 공격을 진행해보려고 한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #include ; #include ; int main() { char buf[128]; FILE * fp; // getchar(); fp = fopen("data.txt", "r"); fscanf(fp, "%s", buf); printf("Message : %s\n", buf); fclose(fp); return 0; } Colored by Co.. 더보기
asm (6points) 해당 문제를 확인해본 결과 쉘코드를 만드는 문제로 예상된다. 해당 문제에 접속해보자. 해당 디렉토리를 확인해본 결과 문제 바이너리와 소스코드, readme, 플래그 파일이 주어져있다. readme 파일을 확인해본 결과 once you connect to port 9026, the "asm" binary will be executed under asm_pwn privilege. make connection to challenge (nc 0 9026) then get the flag. (file name of the flag is same as the one in this directory) 다음과 같은 설명이 주어져있다. 실제 문제를 풀기 위해서는 포트 9026으로 접속하면 될 것으로 확인된다. 주어진 바.. 더보기
C++에서의 입출력 C++에서의 입출력은 출력 : std::cout > value 다음과 같은 형태로 가능하다. #include int main(void) { int val1; std::cout > val1; int val2; std::cout > val2; int result = val1 + val2; std::cout 더보기
리버스 엔지니어링(Reverse Engineering) 0과 1로 이루어진 세계(2) 관련 포스팅1. 리버스 엔지니어링(Reverse Engineering)이란? 2. 리버스 엔지니어링(Reverse Engineering) 0과 1로 이루어진 세계(1)3. 리버스 엔지니어링(Reverse Engineering) 0과 1로 이루어진 세계(2) ■ 개요 [리버스 엔지니어링(Reverse Engineering) 0과 1로 이루어진 세계(1)] 에서 0과 1로 이루어진 데이터가 어떻게 표현되어 있는지 알아보았습니다. 그렇다면 컴퓨터 상의 데이터(파일)이 실제로 0과 1로 이루어져 있는지 실습을 통해서 확인해보고 간단한 변조를 해보겠습니다. ■ 실습 오늘의 실습은 빨간색(RED) 그림 파일이 실제로 0과 1로 이루어진 모습을 확인하여 보고 이를 변조하여 파란색(BLUE) 그림 파일로 바꾸어 보겠습.. 더보기
리버스 엔지니어링(Reverse Engineering) 0과 1로 이루어진 세계(1) 관련 포스팅1. 리버스 엔지니어링(Reverse Engineering)이란? 2. 리버스 엔지니어링(Reverse Engineering) 0과 1로 이루어진 세계(1)3. 리버스 엔지니어링(Reverse Engineering) 0과 1로 이루어진 세계(2) ■ 2진수 10진수 16진수 [리버스 엔지니어링(Reverse Engineering)이란?] 에서 컴퓨터가 0과 1로 어떻게 이루어지는지 언급한 바 있습니다. 컴퓨터에서 데이터를 표현함에 있어 0과 1로 이루어지는 이유는 전기의 흐름 또는 흐르지 않음 자기장의 N극 또는 S극(하드디스크) 다음과 같은 물리적 특성을 기반으로 데이터를 표현하기 때문입니다. 그렇다면 우리는 0과 1로 이루어진 정보를 읽을 줄 알아야만 컴퓨터 내부의 약속된 신호체계에 대해 .. 더보기
리버스 엔지니어링(Reverse Engineering)이란? 관련 포스팅1. 리버스 엔지니어링(Reverse Engineering)이란? 2. 리버스 엔지니어링(Reverse Engineering) 0과 1로 이루어진 세계(1)3. 리버스 엔지니어링(Reverse Engineering) 0과 1로 이루어진 세계(2) ■ 리버스 엔지니어링(Reverse Engineering)이란? 리버스 엔지니어링(Reverse Engineering)이란 주로 역공학이라고 불리우며, 어려운 용어와는 달리 우리에게 있어 다소 친숙한 개념입니다. 인류는 과거부터 자연에 주어진 것들을 이용하여 도구를 만드는 등 무엇인가 가치있는 것을 만들어왔습니다. 예를 들어 자연에 있는 폭포등의 물의 흐름을 활용하여 물레방아를 만들고 물레방아의 움직임을 활용하여 떡을 빻는 등의 다양한 도구를 만들어왔.. 더보기
리버스 엔지니어링(Reverse Engineering) 카테고리 설명 ■ 카테고리 설명 해당 카테고리는 리버스 엔지니어링(Reverse Engineering)이하 리버싱(Reversing)이라고 불리는 기술에 대해 학습하고 이를 정리하기 위한 카테고리입니다. 더나아가 정보가 필요한 사람들에게 보다 양질의 정보를 제공하므로 도움이 됬으면 하는 바램으로 만들어지게되었습니다. ■ 카테고리 방향성 저 또한 리버스 엔지니어링(Reverse Engineering)의 배워나가는 과정이며 많은 것이 부족하다고 생각되지만공부를 하며 겪었던 여러 시행착오로 조금이나마 시행착오를 덜어드리려는 작은 바램으로 해당 포스팅의 방향성을 결정하려 합니다. 리버스 엔지니어링(Reverse Engineering)을 공부하면서 느꼈던 바로는 다소 진입장벽이 높다는 사실입니다. 여러모로 해당 이유에 대하여 .. 더보기
webhacking.kr [문제 27번] 27번 문제를 해결해보자. 해당 문제의 배점은 150point이며, 클릭해보자. 접속하니 SQL INJECTION을 이용하여 풀라는 힌트와 인풋박스가 주어진다. 어떻게 인젝션하라는 정보가 없으므로 소스코드 또한 확인해보자. 해당 소스코드를 확인하니 인덱스 페이지의 소스코드가 주어져있다. 접속하여 확인해보자. php 소스코드만 살펴보자 if($_GET[no]) { if(eregi("#|union|from|challenge|select|\(|\t|/|limit|=|0x",$_GET[no])) exit("no hack"); $q=@mysql_fetch_array(mysql_query("select id from challenge27_table where id='guest' and no=($_GET[no])").. 더보기