Search code examples
phpposttor

sending post/get with php to TOR


Is it possible to send post/get request to tor hidden service using php? Tor installed on my VPS and it opens 127.0.0.1:9050 scoks5 to access for tor network. I am trying to use POST via proxy like in example at the end, but nothing happens. Please tell me what is wrong in that way.

<?php
$proxy = "127.0.0.1";
$port = "9050";
$url = "https://mydomain.onion/input.php";

$fp = fsockopen($proxy, $port, $errno, $errstr, 30);
$url = @parse_url($url);

if($fp)
{
    //reading data
    if(($data = @file_get_contents('php://input')) === false)$data = '';

    $request  = "POST {$url['path']}." HTTP/1.1\r\n";
   $request .= "Host: {$url['host']}\r\n";
   if(!empty($_SERVER['HTTP_USER_AGENT']))$request .= "User-Agent:    {$_SERVER['HTTP_USER_AGENT']}\r\n";
   $request .= "Content-Type: application/x-www-form-urlencoded\r\n";
   $request .= "Content-Length: ".strlen($data)."\r\n";
   $request .= "Connection: Close\r\n";
   //trying to send request
   fwrite($fp, $headers.$data);
   //trying to get answer
   while(!feof($fp))  echo fread($fp, 1024);
   fclose($fp);
}
else die; 
?>

Solution

  • I used tor this way:

        $proxy = "127.0.0.1";
        $port = "9050";
        $url = "https://mydomain.onion/input.php";
        $ch = curl_init();
        curl_setopt ($ch, CURLOPT_URL, $url);
        curl_setopt ($ch, CURLOPT_HEADER, 0);
        curl_setopt ($ch, CURLOPT_PROXYTYPE, 7 );
        curl_setopt ($ch, CURLOPT_PROXY, $proxy.':'.$port );
        ob_start();
    
        curl_exec ($ch);
        curl_close ($ch);
    
        $result = ob_get_contents();
        ob_end_clean();
        var_dump($result);