
NitroShare v0.3.4의 경로 탐색 취약점
NitroShare Desktop v0.3.4에는 LAN 파일 전송 서버에 경로 탐색 취약점이 있습니다. 서버는 인증 없이 모든 네트워크 인터페이스(포트 40818)에서 수신 대기합니다. 파일을 수신할 때 발신자의 JSON 항목 헤더에 있는 name 필드는 확인 없이 전달되어 해석된 경로가 전송 루트 디렉터리(C:\UserName\Downloads\NitroShare) 내에 유지되는지 확인하지 않습니다. 동일한 LAN에 있는 공격자는 ../(고전적인 점-점-슬래시 공격) 시퀀스가 포함된 조작된 파일 이름을 보내 현재 사용자가 액세스할 수 있는 모든 위치에 파일을 쓸 수 있으며, 여기에는 다음 로그인 시 코드 실행을 위한 Windows 시작 폴더도 포함됩니다(따라서 제작된 PoC). 사용자 상호 작용은 필요하지 않습니다. 또한 TLS는 기본적으로 비활성화되어 있으며(애플리케이션이 제공하는 인증 방법), 즉 기본적으로 인증이 필요하지 않습니다. IT 및 정보 보안 분야에서 수년간 일한 경험을 바탕으로 대부분의 사용자가 그렇게(인증을 활성화하지 않고) 사용할 것이라고 가정합니다.
{"name":"attacker","size":"<n>","count":"1"}.{"name":"../../AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/payload.exe","directory":false,"created":"0","last_modified":"0","last_read":"0","size":"<n>"}
작동하는 PoC가 제공되며(poc_path_traversal_via_lan_transfer___arbitrary_file_w.py) Windows의 NitroShare 0.3.4에서 검증되었습니다.
/, \) 및 .. 시퀀스를 제거하거나 거부합니다. QDir::absoluteFilePath()로 확인한 후, 결과가 루트 전송 디렉터리로 시작하는지 확인합니다.