본문 바로가기

분류 전체보기

(550)
[2021.03.27] 취약점 분석 방법론(4) / 취약점 분석 [실습 2-1], [실습 2-2], [실습 2-3] 보호되어 있는 글입니다.
[2021.03.27] CodeEngn Basic L08~L10 & 교재 3장 [Codeengn basic 8~10 풀이] 1.CodeEngn Basic RCE L08 #8 OEP를 구하시오 Ex)00400000 처음 실행 시 뜨는 화면 계산기인듯? 1+1 이런 연산들 계산 된다. OEP란? Original Entry Point : 패킹된 파일의 실제 프로그램 시작 부분 OEP 이전의 실행 부분은 패킹된 파일이 메모리에 로드되어 압축을 푸는 명령어가 들어 있음! 이게 그럼 압축되어있다는 소린가? 방법 1) 패킹하기 전 파일의 OEP : 01020C40 압축풀기 (55 -> 112 KB 변화) 패킹 후 OEP 01012475 어라라… 이게 답이네..? 방법 2) 맨처음 켠 곳의 맨 마지막 코드에 BP 걸고 내부로 들어가면 바로 처음이 OEP! 2. CodeEngn Basic RCE ..
[SquareCTF(2017)] Sniffed Off the Wire 풀이 보호되어 있는 글입니다.
[2021/02/23] bandit wargame Level24 ~ Level31 Level 24 → Level 25 문제 해설) 포트 30002 데몬이 실행 중이고, 이것은 bandit24의 패스워드와 4자리 정수가 주어졌을 때에 bandit25의 패스워드를 제공할 것이다. 핀 코드를 검색하는 방법은 없고, brute-forcing을 통해 10000가지의 경우의 수를 알아보아야한다. 문제 풀이) 브루트 포스란, 문제를 해결하기 위해 가능한 모든 경우의 수를 실행시키는 방법이다. 우선 shell.sh라는 셀 스크립트를 작성한다. 코드는 이렇게 짠다. for문을 이용해 [try : 정수]의 형태로 0부터 9999까지의 정수들이 출력되고, [패스워드] [핀 코드(정수)] 형태의 문자열이 result.txt 파일에 복사되는 코드이다. shell.sh를 실행시키면 다음과 같다. [try : ..
[2021/02/20] bandit wargame Level19 ~ Level23 Level19 → Level20 다음 레벨에 액세스하려면 홈 디렉토리에있는 setuid 바이너리를 사용해야합니다. 사용 방법을 찾으려면 인수없이 실행하십시오. 이 레벨의 비밀번호는 setuid 바이너리를 사용한 후 일반적인 위치 (/ etc / bandit_pass)에서 찾을 수 있습니다. $ ls $ ls -al ./bandit20-do $ ./bandit20-do id uid = 11019(bandit19) gid = 11019(bandit19) euid=11020(bandit20) groups=11019(bandit19) bandit20의 권한으로 실행이 되는 프로그램이다. $ ls /etc/bandit_pass/bandit* $ ls /etc/bandit_pass/bandit20 $cat /etc..
[2021/02/18] bandit wargame Level14 ~ Level18 level14 → level15 포트번호가 30000인 localhost에 현재 계정의 비밀번호를 전송하면 다음 레벨의 비밀번호를 얻을 수 있다. nc명령어를 이용하여 포트번호가 30000인 localhost에 접속한다. nc localhost 30000 level15 → level16 level16 → level17 문제 해설) 다음 레벨에 로그인할 자격은 현재 레벨의 패스워드를 localhost의 포트 31000과 32000 사이에 보내면 얻을 수 있다. 우선 이 포드들에 어떤 서버가 반응해주는 지에 대해 알아내라. 그리고 어떤 것이 SSL을 말하고 어떤 것이 그렇지 않은 지를 찾아내라. 다음 자격을 주는 서버는 오직 1개이고, 다른 것들은 단순히 당신이 입력한 것을 출력할 것이다. $nmap loc..
[2021/02/16] bandit wargame Level9 ~ Level13 level9 → level10 data.txt 파일 내부에 몇개의 읽을 수 있는 ‘=’문자로 시작하는 문장중 하나라고 한다. data.txt 를 file명령어를 사용하여 확인하면 data파일이라는 것을 알 수 있다. cat 명령어를 이용해서 이 파일을 확인해 보면 읽을 수 없는 파일이 나온다. strings 명령어를 이용하여 문자열을 추출하여 출력시킨다. 그러면 우리가 읽을 수 없는 기호들은 사라지고 읽을 수 있는 문자열만 출력된다. 그리고 grep명령어를 사용해서 우리가 원하는 ‘=’문자가 있는 라인만 찾아보자 strings data.txt | grep = 명령어를 이용하면 패스워드를 획득할 수 있다! level10 → level11 다음 레벨의 패스워드는 base64로 인코딩된 데이터를 포함하고 있는..
[2021/02/11] bandit wargame Level4 ~ Level8 level4 → level5 inhere디렉토리 안에있는 사람이 읽을 수있는 파일에 패스워드가 들어있다는 문제이다. 일단 ls -al 명령을 사용하여 파일들을 확인해본다. 그리고 inhere 디렉토리에 들어가 이 디렉토리 안에 들어 있는 파일들을 확인해 본다. 사람이 읽을 수있는 파일을 찾기위해 file명령어를 통해 파일 형식을 확인해 본다. (file ./*) 그러면 -file07파일이 ASCII 텍스트 파일인 것을 확인 할 수있다. cat을 이용해 -file07파일을 확인해 패스워드를 획득하면 된다! (cat ./-file07) level5 → level6 비밀번호가 inhere 디렉터리 어딘가의 파일에 저장되어 있다고 하는데, 그 파일은 사람이 읽을 수 있으며, 1033 byte의 크기를 가지고, ..