🏆 2024

맛집 분야 크리에이터

🏆 2023

IT 분야 크리에이터

👩‍❤️‍👨 구독자 수

180

✒️ 게시글 수

0
https://tistory1.daumcdn.net/tistory/4631271/skin/images/blank.png 네이버블로그

🩷 방문자 추이

오늘

어제

전체

🏆 인기글 순위

티스토리 뷰

개발환경/Server

[Linux] tar / tar.gz 압축 및 압축 해제

알 수 없는 사용자 2022. 7. 14. 23:43
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

 

[Linux] tar / tar.gz / zip 압축 및 압축 해제

보통 리눅스에서 파일을 압축 파일을 다룰 때, "tar로 압축(compress)한다"는 표현을 쓰는 경우가 많은데, 정확히 말하자면 tar 자체는 "데이터의 크기를 줄이기 위한 파일 압축"을 수행하지 않는다.

eehoeskrap.tistory.com

 

728x90
반응형
댓글