티스토리 뷰
728x90
반응형
CTF 문제를 풀면 보통 RCE 문제의 경우 파일 업로드나 명령 실행 취약점으로 Flag 파일을 찾아서 내용을 읽어오면 끝인데, 현실에서는 그걸로 끝나면 안되고 웹서버에 있는 소스코드 추출이라던지 백도어 파일 작성이라던지 등의 행위를 하게 됩니다. (물론 버그바운티나 모의해킹 같은 합법적인 환경에서 말이죠)
그럼 웹쉘도 업로드 했겠다 소스코드들을 어떻게 뽑아야 될까 고민이 된 적이 있지 않나요?
여러 방법들이 있겠지만 그 중에서 저는 바로바로바로바로 이 방법을 사용했습니다.
소스코드들을 모두 압축해서 그 압축파일을 웹에서 접근가능한 public 경로에 위치해두고 웹으로 접근해서 직접 다운 받기
어마어마하죠? 그래서 결국 본론으로 돌아와서 저걸 하려면 리눅스에서 파일 및 디렉토리를 압축하는 방법을 알아야했기에 이번 포스팅에서는 tar 명령에 대해서 정리해보려고 합니다. (휴 이제 서론 끝)
tar 명령어 옵션
tar [OPTION...] [FILE]...
-f : 대상 tar 아카이브 지정. (기본 옵션)
-c : tar 아카이브 생성. 기존 아카이브 덮어 쓰기. (파일 묶을 때 사용)
-x : tar 아카이브에서 파일 추출. (파일 풀 때 사용)
-v : 처리되는 과정(파일 정보)을 자세하게 나열.
-z : gzip 압축 적용 옵션.
-j : bzip2 압축 적용 옵션.
-t : tar 아카이브에 포함된 내용 확인.
-C : 대상 디렉토리 경로 지정.
-A : 지정된 파일을 tar 아카이브에 추가.
-d : tar 아카이브와 파일 시스템 간 차이점 검색.
-r : tar 아카이브의 마지막에 파일들 추가.
-u : tar 아카이브의 마지막에 파일들 추가.
-k : tar 아카이브 추출 시, 기존 파일 유지.
-U : tar 아카이브 추출 전, 기존 파일 삭제.
-w : 모든 진행 과정에 대해 확인 요청. (interactive)
-e : 첫 번째 에러 발생 시 중지.
tar 압축
$ tar -cvf [파일명.tar] [폴더명]
$ tar -cvf /home/domdomi/test.tar /app/src/
tar.gz 압축
$ tar -zcvf [파일명.tar.gz] [폴더명]
$ tar -zcvf /home/domdomi/test.tar.gz /app/src/
만약에 위 명령이 동작하지 않을 경우라면 gzip 명령어와 함께 사용할 수도 있음
$ tar -cvf [파일명.tar] [폴더명]
$ gzip [파일명]
$ tar -cvf /home/domdomi/test.tar /app/src/
$ gzip /home/domdomi/test.tar
gzip 명령은 별도의 옵션을 주지 않으면 원본 파일을 제거하기 때문에 원본 파일을 유지하고 싶다면 -k 옵션을 사용하면 됨
tar 압축 해제
$ tar -xvf [파일명.tar]
$ tar -xvf /home/domdomi/test.tar
tar.gz 압축 해제
$ tar -zxvf [파일명.tar.gz]
$ tar -zxvf /home/domdomi/test.tar.gz
만약에 위 명령이 동작하지 않을 경우라면 gzip 명령어와 함께 사용할 수도 있음
$ gzip -d [파일명.gz]
$ tar -xvf [파일명.tar]
$ gzip -d /home/domdomi/test.tar.gz
$ tar -xvf /home/domdomi/test.tar
gzip 명령으로 압축을 풀기 위해서는 -d 옵션을 주면 됨(gunzip 명령어 사용해도 압축풀 수 있음)
참고자료 : https://eehoeskrap.tistory.com/555
728x90
반응형
'개발환경 > Server' 카테고리의 다른 글
[Ubuntu] apt-add-repository: command not found 오류해결 (0) | 2022.09.13 |
---|---|
[ubuntu] mongodb를 실행할 때 등장하는 다양한 오류 해결 (2) | 2022.08.08 |
[Linux] scp 명령어 (로컬↔원격) 파일 전송 사용법 (0) | 2022.07.03 |
[네이버 클라우드] 엔클라우드 우분투서버 스토리지 생성 방법 (0) | 2022.03.22 |
[Ubuntu] 리눅스에서 ... is not in the sudoers file. This incident will be reported. 문제 해결 방법 (0) | 2022.03.17 |
댓글