Credits to: Ghost1032, tel
An issue in ZenTao Community Edition v.18.10 and before, ZenTao Biz v8.10 and before, ZenTao Max v.4.10 and before allows an authenticated attacker to execute arbitrary code via a bypass to create ok.txt and achieve backdoor plugin installation.
By default you can’t install plugins in ZenTao PMS. It requires the admin to create a file in specific location. Even if ok.txt exists, you will be asked to recreate it since there’s a check on file create time.
However, in module/upgrade/control.php, an attacker can create an empty file with a fully controlled file path.
In $this->upgrade->moveExtFiles()
In $this->replaceIncludePath($toPath);
file_put_contents($filePath,$content)
is executed, thus we can create an empty file.