#Description
tarfile module -> tarinfo에서 "../" 와 같은 경로 문자를 검증하지 않아서 발생함.
exploit
#1. 파일에 "../"문자열을 이어붙여 .tar 파일을 만드는 스크립트 (make.py)
- make.py를 실행하면 "exploit.tar" 이름의 .tar 파일이 생성됨.
이 때, 안의 hackfile.txt는 "../hackfile.txt" 로 바뀌게 된다.
#2. .tar 파일을 압축해제하는 스크립트 (unlock.py)
- unlock.py 스크립트를 실행하면 "../hackfile.txt"가 압축해제 되면서 바로위의 경로에 해당 파일이 생기게 된다.
#tarfile module - extractall 함수에서 받아온 인자에 "."나 "/" 기호가 포함되어 있으면
"warring"경고를 출력하고 작동을 중지하게 모듈을 수정하였다.
- 다시 실행 후
- 경고 출력과 함께 파일이 생성되지 않았다.
참고 : https://www.trellix.com/en-us/about/newsroom/stories/threat-labs/tarfile-exploiting-the-world.html