본문 바로가기

전체 글

(113)
[CodeEngn] Basic RCE L02 01번 문제(https://studyforall.tistory.com/65)를 풀었을 때와 같이 문제 파일을 다운로드하고, 7-Zip File Maneger로 압축을 푼다. 압축이 풀린 02.exe 파일을 실행해보면 문제에 써있는 것과 같이 실행이 되지 않는다. https://mh-nexus.de/en/downloads.php?product=HxD20에서 HxD프로그램을 다운로드하여 설치한다. HxD는 16진수로 표현된 이진파일를 읽을 수 있게 보여주는 프로그램이다. HxD로 02.exe를 실행한다. 실행해보면 위와 같이 뜬다. Decoded text 부분을 살펴보며 이해할 수 있는 텍스트가 있는지 본다. 스크롤을 내리다보면 CrackMe라는 문구가 보인다. Nope, try again!이라는 에러 메시..
[CodeEngn] Basic RCE L01 1. 문제 다운로드 우선 문제에 들어있는 첨부파일을 다운로드한다. 문제에 있는 디스크 아이콘을 클릭하면 01.7z 라는 이름의 파일을 다운로드할 수 있다. https://www.7-zip.org/ 에서 7zip을 다운로드하여 설치한다. 7zip은 압축을 풀 때 사용할 툴인데, 리버싱 문제파일을 일반적인 방식으로 압축해제할 경우, 악성코드로 인식되어 제대로 압축이 안 풀리는 경우가 있어서 이 툴을 사용한다. 2. 문제 파일 실행 설치한 7-Zip File Maneger 를 실행한다. 다운로드한 01.7z 파일이 위치한 경로로 이동한다. 해당 파일을 클릭하여 선택한 뒤 파란 - 아이콘을 클릭해 Extract 한다. password는 문제에 써있는 codeengn을 입력하면 된다. OK를 클릭하면 Extrac..
[Pointer Overflow CTF] Easy as it Gets 보호되어 있는 글입니다.
[드림핵 Reverse Engineering] Stage 3 [Stage 3] Computer Architecture #컴퓨터구조 #명령어집합구조 #인텔x86-64 - 컴퓨터 구조(Computer Architecture) : 컴퓨터가 효율적으로 작동할 수 있도록 하드웨어 및 소프트웨어의 기능을 고안하고, 이들을 구성하는 방법 > 컴퓨터의 기능 구조에 대한 설계 : 컴퓨터가 연산을 효율적으로 하기 위해 컴퓨터에 필요한 기능 설계 ex. 폰 노이만 구조, 하버드 구조, 수정된 하버드 구조 > 명령어 집합구조(Instruction Set Architecture, ISA) : CPU가 처리해야하는 명령어 설계 ex. 인텔 x86, x86-64, ARM, MIPS, AVR 등 > 마이크로 아키텍처(Micro Architecture) : CPU의 회로(하드웨어적) 설계 ex..
[드림핵 Reverse Engineering] Stage 1,2 [Stage 1] #서론 - 리버스 엔지니어링(Reverse Engineering, 리버싱, 역공학) : 완성된 제품을 해체하고 분석하여 구조와 기능, 디자인을 파악하는 것 - 리버싱의 용도 > Good Case 1. 프로그램의 보안성 평가 2. 악성코드 분석 > Bad Case 1. 프로그램 불법 크랙 2. 게임핵 [Stage 2] #바이너리 #컴파일 - 프로그램 : 연산 장치가 수행해야 하는 동작을 정의한 일종의 문서 - 바이너리(프로그램) : Stored-Program Computer에서 프로그램을 이진(Binary) 형태로 저장하므로 프로그램을 바이너리라고 하기도 함. - 프로그래밍 언어(Programming Language) : 프로그램을 개발하기 위해 사용하는 언어 > 고급 언어 C, C++,..
[드림핵 워게임] Apache htaccess 문제 사이트에 접속하면 처음으로 보이는 페이지이다. 파일을 업로드할 수 있는 폼을 볼 수 있다. 파일을 업로드 해본다. 파일이 /upload에 저장되고 클릭해보면 파일이 실행된다.
[HSpace CTF] HSpace Free Board 문제 사이트에 접속하면 처음으로 보이는 페이지이다. 로그인폼이다. Sign UP 페이지로 이동해서 회원가입을 한다. 회원가입한 계정으로 로그인한다. Login success! 라는 알림창이 뜬다. 게시판이 있고 포스팅을 할 수 있다. 게시물을 하나 만들어본다. Post버튼을 클릭하면 Post done. 알림창이 뜬다. 다시 게시판으로 돌아가보면 내가 작성한 글이 올라와있다. 게시물을 열어보면 위와 같이 내용을 볼 수 있다. url을 확인해보면 /read.php가 렌더링되었고 id 파라미터를 전송한 것을 볼 수 있다. id 파라미터를 0으로 바꾸어 본다. 아무 내용도 없는 게시물이 조회된다. id 파라미터에 sql injection을 시도해보면 될 것 같다. 우선 컬럼이 몇 개 있는지 찾아본다. 1. id..
[드림핵 워게임] baby-sqlite 문제 사이트에 처음 접속하면 보이는 페이지이다. /login으로 들어가면 로그인 폼을 볼 수 있다. if __name__ == '__main__': os.system('rm -rf %s' % DATABASE) with app.app_context(): conn = get_db() conn.execute('CREATE TABLE users (uid text, upw text, level integer);') conn.execute("INSERT INTO users VALUES ('dream','cometrue', 9);") conn.commit() 코드를 살펴보면 테이블 구조와 INSERT된 레코드 한 줄을 볼 수 있다. 해당 계정으로 로그인을 해보면 Good! 이라는 결과가 뜬다. with app.app..