다음과 같이 str1, str2 를 선언 해봅시다. str1 과 str2 는 동일하게 "Hello world" 를 나타내지만 둘은 같은 객체일까요? 각각의 실행 결과는 아래와 같이 나옵니다. 중요한 것은 str1 과 str2 는 서로 다른 객체이기 때문에 false 가 표기되었다는 것입니다. 코드의 7~9번 라인은 아래와 같이 바꿔서 이해해도 됩니다. if ( str1 == str2) System.out.println("true"); else System.out.println("flase"); str1 과 str2 는 같은 값을 표기할 뿐이지 서로 다른 객체입니다. str1.hashCode() 와 str2.hashCode() 는 각각의 String 객체에 담겨있는 값을 hash 로 표현한 값입니다. 객체..
grep은 파일의 내용에서 특정 문자열을 찾고자할 때 사용하는 명령어입니다. 리눅스에서 가장 많이, 또 가장 유용하게 사용되는 명령어 중 하나입니다. grep 은 기본 사용법을 알아봅시다. 1. grep [패턴] [파일명] 특정 패턴을 기준으로 파일내용을 검색합니다. 패턴이 포함되는 라인(line)을 출력해줍니다. /etc/passwd 파일에서 root 패턴을 찾으면 root 문자열이 포함된 line을 찾아주고 /etc/passwd 파일에서 ro 패턴을 찾으면 ro 문자열이 포함된 line을 찾아줍니다. ro 패턴으로 검색하면 당연히 root 도 포함됩니다. 2. grep [패턴] [복수 파일명] /var/log/ 에 아래와 같이 순차적으로 작성된 로그파일이 있을때 * 를 사용하면 grep 으로 복수 파..
id : bandit8 password : TESKZC0XvTetK0S9xNwm25STk5iWrBvP (2023. 3월 기준) 패스워드가 data.txt 파일에 들어있는데 딱 한번만 발생하는 라인에 있다고 합니다. 무슨 말인지 살펴봅시다. 패스워드 암호문 앞에 딱히 힌트는 없습니다만, 문제 가이드를 보니 저 암호문들이 여러번 중복되서 나올 것 같습니다. 이번엔 sort 와 uniq 명령어를 다룰 수 있어야 합니다. 더보기 sort data.txt 를 실행하면 data.txt 의 내용이 순서대로 정렬됩니다. 실제 파일내용이 수정되는 것은 아니고, 화면출력만 정렬되어서 나옵니다. sort data.txt 로 출력하면 캡쳐화면에 담기가 까다로워서 sort data.txt 옆에 | less 를 붙였습니다. | ..
id : bandit7password : morbNTDkSW6jIlUc0ymOdMaLnOlFVAaj(2024.09 기준) 패스워드가 data.txt 파일에 들어있는데 millionth 라는 단어 옆에 있다고 합니다. 일단 홈디렉토리를 살펴보니 data.txt 의 용량이 예사롭지 않습니다. ls -alh 옵션으로 4MB 용량임을 확인했습니다.-h 옵션 설명은 ls 사용법에 업데이트 했습니다. wc 명령어를 사용하면 파일내용의 크기를 알 수 있습니다.98567 lines, 197133 words, 4184396 bytes 의 크기네요 cat 으로 data.txt 를 읽어보면 내용이 너무 많아서 ctrl + c 로 중단할 수 밖에 없습니다.more data.txt 나 less data.txt 로 내용을 확인..
ls -al 을 사용하면 파일의 상세 정보를 확인할 수 있습니다. 1. 퍼미션(파일 권한) 붉은 경계선 안쪽의 문자들이 각 파일별 퍼미션를 타나내는 정보입니다. 노란색으로 구분된 inhere 디렉토리의 퍼미션을 기준으로 살펴봅시다 첫 칸은 파일 종류를 나타내며 d 는 디렉터리를 의미합니다. 퍼미션 첫 글자 파일종류 문자 유형 - 보통 파일 b 블록 장치 c 문자열 장치 d 디렉터리 l 심볼릭 링크 p 또는 = named pipe/FIFO s 소켓 그 다음 세칸(rwx)는 소유자(owner)의 권한을 나타냅니다. (readable) w(writable) x(excutable) 즉 소유자 권한이 rwx 라는 건 이 파일의 소유자들은 이 파일을 읽고, 쓰고, 실행할 수 있다는 말입니다. 그 다음 세칸(r-x)..
id : bandit6password : HWasnPhtq9AVKe0dmk45nxy20cvUa6EG(2024.09 기준) 어딘가 디렉토리안에 패스워드가 저장되어 있는데 다음 속성들을 가지고 있다고 합니다.- 소유자는 bandit7- 소유그룹은 bandit6- 33byte 사이즈find 사용법(2) 를 공부하고 직접 해결해봅시다.더보기이제는 password 파일이 home 디렉토리에 존재하지 않습니다.최상위 경로(/) 를 기준으로 find 에 필요한 옵션을 넣어서 검색해봅니다. 중간중간 permission denied 가 나타나는 파일들은 신경쓰지 않아도 됩니다.실제 해당파일의 other user 의 read 권한이 부여되어 있지않아 bandit6 user 로는 권한이 거부되어 확인이 불가능하다는 메세지..
find 는 특정 디렉토리에서 부터 내가 원하는 조건의 파일을 찾아주는 명령어 입니다. 특정 디렉토리에서 부터 라는 말은 해당 디렉토리의 하위 디렉토리를 포함해서 찾아준다는 것입니다. 예를 들어 아래와 같이 /home/test 폴더가 있고 그 안에 test00, test01, test02 폴더가 하위폴더로 존재하는 구조에서 "/home/test 에서 부터 이름에 "txt"가 들어가는 파일을 찾아주세요" 라는 식의 명령을 수행하면 하위 폴더도 포함해서 검색을 합니다. 아래와 같이 하위 폴더 및 파일이 존재할 때 find 를 사용해서 파일을 검색해봅시다. 1. find 2. find [경로] -name "[이름패턴]" 2. find [경로] -size [사이즈] 3. find [경로] -readable 4...
id : bandit5password : 4oQYVPkxZOOEOO5pTW81FB8j8lxXGUQw(2024.09월 기준) inhere 디렉토리안에 패스워드가 저장되어 있는데 다음 속성들을 가지고 있다고 합니다.- 사람이 읽을 수 있고- 1033 byte 사이즈이고- 실행이 불가능한 파일 우선 inhere 폴더 먼저 살펴봅시다. inhere 아래 20개의 하위폴더 maybehereXX 가 있네요ls -al 로 maybehere00 을 살펴보니 엄청 다양한 파일이 있습니다. ls -al 로 매 폴더마다 확인하기엔 번거로우니 한번에 전체 폴더를 한번 살펴 볼까요?사진에서는 좀 잘리지만 여러분들이 putty 환경에서 동일하게 따라왔다면마우스 스크롤을 통해서 전체 폴더 내용을 확인할 수 있을 것 입니다. 이 중..
별, 스타, 애스터리스크, 눈꽃 등으로 불리우는 이 문자는 간단하게 모든 글자를 뜻한다고 이해하시면 됩니다. 예를 들어 아래와 같은 파일이 있을때 c:\file1.txt c:\file2.txt c:\file3.txt 아래와 같은 식으로 mv 명령어가 작동할 수 있습니다. mv c:\file*.txt d:\ * 자리에는 아무 문자나 들어갈 수 있기 때문에 file1.txt file2.txt file3.txt 가 모두 해당이 되게 됩니다. 아니면 아래와 같은 방식도 가능합니다. mv c:\*.txt d:\ 위 명령은 c:\ 밑에 모든 txt 파일을 d:\ 로 mv 시키는 명령입니다. 아까와 비교했을때 적용대상이 더 많아지겠죠? 중요한건 * 이라고 해서 딱 한글자만 의미하는게 아니라 여러글자의 조합도 모두 해..
- Total
- Today
- Yesterday
- Natas
- ssh
- nc
- 풀이
- bz2
- OverTheWire
- OpenSSL
- Encode
- natas7
- 32bit
- Strings
- grep
- 압축파일
- SSL
- tr
- over the wire
- java
- find
- Bandit
- BASE64
- 웹보안공부
- 리터럴
- 웹보안
- HTTPS
- Linux
- X32
- 리눅스
- tar
- gz
- solution
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |