[문제]
[풀이]
ls -al로 passwords.new 파일과 password.old 파일이 존재함을 확인할 수 있다.
파일 비교 명령어는 cmp, diff, diff3, comm 등이 있다.
문제의 힌트로는 diff가 주어졌지만, 4개의 명령에 대해 모두 진행해보았다.
① diff
diff는 옵션에 따라 출력결과가 달라지는데, -d 명령어를 사용하니 가장 직관적이고 핵심적인 결과만이 출력되었다.
42c42는 각각의 파일의 42번째 줄에 차이가 발생함을 뜻한다.
passwords.new에 password가 존재한다고 하였으니,
kfBf3eYk5BPBRzwjqutbbfE887SVc5Yd가 bandit18의 password가 된다.
옵션 -c는 앞뒤의 상황도 보여주어 흐름을 알 수 있었다. 차이가 발생하는 곳에 !를 통해 표기를 하고 있다.
② comm
comm을 사용하니 결과 값을 한눈에 파악하기 어려워 파일 비교가 어려워 보인다.
③ cmp
cmp를 사용하니 42번째 줄에 차이가 발생하는 것을 알 수 있지만,
내용을 알 수 없어 해당 문제에서는 부적합한 명령이다.
구한 password로 bandit18에 접속하고자 하니 byebye! 메시지가 출력되며 연결이 끊어진다.
이는 의도된 부분이며, 다음 레벨을 통해 해결할 수 있다고 한다.
[핵심]
cmp
cmp는 compare 의 약어로서 두개의 파일이 어떤 부분이 다른가를 비교할 때에 사용하는 명령어이다. 두개의 파일을 단순히 같은가 다른가를 확인할 수 있으며 또한 몇행의 몇번째 문자가 다른가를 확인할 수도 있다. 두 파일이 동일한가를 확인하고자 할 때에 주로 사용한다.
사용법 : cmp [파일명] [비교할 파일명]
file1 과 file2를 예를 들어 설명한다.
diff
diff는 differences 의 약어로서 두 파일 사이의 내용을 비교하는 명령어이다. cmp 보다 diff 가 보다 직관적이고 명확하게 찾아준다. 실행결과 차이점이 없다면 0, 차이점이 있다면 1, 실행시 에러가 발생하면 2 이상의 종료코드 값을 얻는다.
사용법 : diff [파일명] [비교할 파일명]
diff3
diff3 는 3개의 파일차이점을 비교하여 출력하는 명령어이다.
사용법 : diff3 파일명 비교할파일명 비교할파일명
comm
comm은 지정한 두파일의 행과 행을 비교할 때에 사용하는 명령어이다.
사용법 : comm [옵션] 파일명 비교할파일명
우선 비교할 파일들 내용을 살펴보자.
[출처]
https://webdir.tistory.com/154
리눅스 cmp, diff, diff3, comm - 파일 비교
파일을 비교하는 가장 간단한 방법은 cmp, 그리고 보다 자세한 파일비교를 할 때에는 diff, 세개의 파일을 비교하려면 diff3을 이용합니다. 두파일에 대하여 각 행단위 비교를 할 때에는 comm을 이용
webdir.tistory.com
https://websecurity.tistory.com/105
리눅스(Linux) 파일 비교 명령어 cmp, diff, comm
cmp 파일 비교 명령어, 모든 종류의 두 개의 파일을 비교하고 그 결과물을 표준 출력에 쓴다. 기본값으로 만약 파일들이 같다면 cmp은 실행되지 않는다. 파일들이 서로 다르다면, 다른 점이 발견된
websecurity.tistory.com
'Wargame > bandit' 카테고리의 다른 글
[리눅스] Bandit level 19 -> level 20 (0) | 2021.07.15 |
---|---|
Bandit level 18 -> level 19 (0) | 2021.07.04 |
Bandit level 16 -> level 17 (1) | 2021.07.03 |
Bandit level 15 -> level 16 (0) | 2021.05.05 |
Bandit level 14 -> level 15 (0) | 2021.05.04 |