본문 바로가기

분류 전체보기267

[BOJ] 1주차 - #1152 #1152 [문제] [코드] #include #include int main() { int len; int cnt = 0; char str[1000000]; scanf("%[^\n]", str); len = strlen(str); if (len == 1) { if (str[0] == ' ') { printf("0\n"); return 0; } } for (int i = 0; i < len - 1; i++) { if (str[i] == ' ' && i != 0) cnt++; } printf("%d\n", cnt + 1); return 0; } [설명] 입력받을 문자열 str, 문자열의 길이 len, 단어의 개수를 나타낼 cnt를 선언해준다. scanf로 문자열 str을 입력 받는데, 여기서 입력받을 문자열.. 2022. 1. 2.
[Dreamhack System Hacking] STAGE 1 Dreamhack System Hacking STAGE 1 STAGE 1에 적혀있는대로 먼저 소개하는 글을 읽은 뒤 리눅스 환경을 구축하면 된다. 소개하는 바와 같이 우분투를 설치한 뒤 echo "Hello Ubuntu!"를 치라는 대로 치면 아래와 같은 화면이 뜬다. 여기까지 했을 경우 무사히 STAGE 1을 마칠 수 있다. 2022. 1. 1.
[Bandit] Level 4 → Level 5 문제를 읽어보니 inhere 디렉터리에 사람이 읽을 수 있는 파일에 비밀번호가 있다고 한다. 이번에도 똑같이 접속해준다. inhere 디렉터리로 디렉터리를 옮겨주고 혹시 모르니까 바로 -al 옵션을 사용해서 숨겨진 파일과 자세한 정보를 출력했다. 파일이 여러개 있음을 확인 할 수 있다. 일단 하나하나 cat 명령어로 열어보니 열리긴 하는데 읽을 수 없는 이상한 말로 되어있다. 이렇게 하나씩 열어서 보다보니 파일7은 우리가 읽을 수 있는 알파벳으로 이루어져있다는 걸 발견했다. 혹시 모르니 캡쳐에 없는 다른 파일들도 확인해보았지만 모두 읽을 수 없었다. 따라서 파일 7에 있는 내용이 비밀번호임을 알 수 있다. 하지만 이렇게 하나씩 열어보면 시간도 걸리고 파일이 아주 많을 때는 하나하나 확인하기 힘드니 다른 .. 2022. 1. 1.
[Bandit] Level 3 → Level 4 이번에는 inhere이라는 디렉터리 안에 숨겨진 파일이 있는데 그 숨겨진 파일에 비밀번호가 있다고 한다. 매번 했던 것처럼 똑같이 접속해준다. 일단 ls -l을 이용해서 바로 inhere 디렉터리를 찾아냈고 cd 명령어를 통해 inhere 디렉터리로 들어갔다. inhere 디렉터리 안에서 ls -l을 다시 써보았지만 나오는 건 없었다. 파일이 숨겨져 있다는 것이 생각나서 이번에는 숨겨진 파일도 출력해주는 -a 옵션까지 추가해서 리스트 명령어를 쓰니 숨겨진 것들이 나타났다. 바로 cat 명령어로 .hidden 파일을 열어보니 비밀번호를 얻을 수 있었다. 2022. 1. 1.
[Bandit] Level 2 → Level 3 문제를 보니 이번에는 파일이름이 spaces in this filename 이라는 공백이 들어간 이름을 가진 파일에 비밀번호가 있음을 알 수 있다. 이번에도 ssh를 이용해서 전 게시물에서 구한 비밀번호를 입력해서 level 2에 접속해준다. ls로 파일 이름을 확인하니 그냥 spaces in this filename이라고 떴는데, 이게 한 파일인지 아닌지 헷갈릴 수 있어서 더 자세한 정보를 출력해주는 -l 옵션을 사용해서 다시 한번 파일 목록을 출력했다. cat 명령어로 입력하면 spaces in this filename 이 각각의 파일 이름으로 인식되므로 이름을 묶어서 입력해줘야 한다. 검색을 하니 큰 따옴표나 작은 따옴표를 이용해서 묶어주면 된다고 해서 큰따옴표를 이용할때, 작은 따옴표를 이용할 때.. 2022. 1. 1.
[Bandit] Level 1 → Level 2 문제를 보니 -라는 이름을 가진 파일에 다음 단계로 가기 위한 비밀번호가 있음을 알 수 있다. 다시 ssh 명령어를 이용해서 1단계로 접속해주는데, 여기서 전 게시물에서 구했던 비밀번호를 치면 성공적으로 접속할 수 있다. 이런 화면이 뜨며 접속되었다. 이번에도 ls 명령어를 이용해서 파일을 확인하니 우리가 확인해야 하는 - 파일이 존재함을 볼 수 있다. 여기서 -는 특수문자라 그냥 읽을 수가 없기 때문에 검색을 통해 알아보니 cat ./- 또는 cat < - 명령을 써서 읽을 수 있다고 한다. 알아낸 내용을 바탕으로 두 가지 방법을 다 적용해보니 둘 다 성공적으로 - 파일의 내용을 읽어내어 비밀번호를 알아낸 것을 볼 수 있다. 2022. 1. 1.
[Bandit] Level 0 → Level 1 문제를 읽어보니 다음 단계로 가기 위한 비밀번호가 readme라는 파일 안에 들어있다고 한다. 전 게시물에 써놓았듯 이미 level 0에 접속한 상태라 ssh 명령어로 접속하는 단계는 건너뛴다. 일단 접속한 상태로 ls 명령어를 이용해서 무슨 파일들이 있나 봤는데 바로 readme 파일이 뜬 걸 보니 현재 있는 데가 홈 디렉터리라는 것을 알 수 있다. cat 명령어로 파일 readme의 내용을 읽으니 바로 비밀번호를 구할 수 있다. 2022. 1. 1.
[Bandit] Level 0 문제를 읽어보니 ssh를 이용해서 들어가라는 뜻인 것 같다. 검색해본 바, ssh 명령어를 이용하는 방법은 아래와 같다. ssh 아이디@주소 -p포트 문제에서 주어진대로 아이디, 주소, 포트번호를 입력하면 비번을 치라는 말이 뜨는데, 여기서 문제에서 주어진 비번을 입력하면 위와 같은 화면이 뜬다. 2022. 1. 1.
[BOJ] Bronze Ⅴ- Day 3 사용 언어 : Python 푼 문제 : #3003, #3046, #5337, #5338, #5339 #3003 [Python] num = list(map(int, input().split())) std = [1, 1, 2, 2, 2, 8] for i in range(6) : print(std[i] - num[i], end = ' ') #3046 [Python] R1, S = map(int, input().split()) print(2 * S - R1) #5337 [Python] print(""". . . | | _ | _. _ ._ _ _ |/\|(/.|(_.(_)[ | )(/. """) #5338 [Python] print(""" _.-;;-._ '-..-'| || | '-..-'|_.-;;-._| '.. 2021. 12. 29.