我尝试创建一个PHP脚本,当有人点击某个按钮时会调用该脚本并将被带到vt.php
现在我想根据现在从以前的PHP页面收到的VT哈希来下载样本我尝试使用这种逻辑,但它无法正常工作。
<?php
$fileHash = $_POST['hash'];
echo $fileHash;
#$command = escapeshellcmd("python vt_download.py $fileHash");
$command = escapeshellcmd("curl -v --location https://www.virustotal.com/vtapi/v2/file/download?apikey=APIKEY\&hash=$fileHash -o $fileHash");
$output = shell_exec($command);
echo $output;
?>
输出 c75b5e2ca63adb462f4bb941e0c9f509
预期输出 c75b5e2ca63adb462f4bb941e0c9f509 文件下行过程-------卷曲输出
当调用此页面时,它只打印哈希而不下载文件。有什么建议可以解决这个问题吗?
P.S:Error in downloading file from VirusTotal only on server? - 之前在这里问过这个问题,无论是使用python还是使用python都会有所帮助。
答案 0 :(得分:1)
您可以直接使用PHP cURL library,而不是使用shell_exec
功能,这可能会在使用用户输入的数据时迅速导致安全问题。
<?php
$fileHash = $_POST['hash'];
// Initializing cURL, we can put the URL in the curl_init function
$ch = curl_init("https://www.virustotal.com/vtapi/v2/file/download?apikey=APIKEY&hash=$fileHash")
// We need to retrieve the response, setting appropriate options :
curl_setopt($ch , CURLOPT_RETURNTRANSFERT , true);
// Executing the request
$result = curl_exec($ch);
// Error verification
if (!$result){
echo('Error: "' . curl_error($curl) . '" - Code: ' . curl_errno($curl));
}
curl_close($ch);
?>