2

hey i'm trying to cURL "https://www.libertyreserve.com/captcha.jpg"
so i tried to curl it but the result was "1x1" Gif Pic
then i reialized that the site want a cookie from the Login Page to show a valid Captcha i used function

$file['cookie'] = "cookie.txt";
function cURL_Page($url='',$var=''){
    global $file;
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT,20);
    curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31');
    curl_setopt($curl, CURLOPT_REFERER, "http://www.libertyreserve.com/en/login");
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
    if($var) {
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $var);
    }
    curl_setopt($curl, CURLOPT_COOKIE,$file['cookie']);
    curl_setopt($curl, CURLOPT_COOKIEFILE,$file['cookie']);
    curl_setopt($curl, CURLOPT_COOKIEJAR,$file['cookie']);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 3);
    curl_setopt($curl, CURLOPT_HEADER, 0);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
    $result = curl_exec($curl);
    curl_close($curl);
    return $result;
}

then i cURL Login page

$LoginPage = cURL_Page("https://www.libertyreserve.com/en/login");

then cURl the PIC and put header and print it

$ImageCode = cURL_Page("https://www.libertyreserve.com/captcha.jpg");
header("Content-Type: image/gif");
echo $ImageCode;

but result still "1x1" bcz the curl function don;t save the cookies
p.s : the site response with "Content-Type: image/gif" for that i put it in header

1 Answer 1

1

Few Observation

  • You are not properly sharing the cookie be cause you don't need CURLOPT_COOKIE
  • Even if SSL verification is false .. you need to add certification information see Code does not work without disabling SSL on how that can be done

Here is a working code:

$ch = new SharedCurl(__DIR__ . "\libertyreserve.crt");

try {
    $ch->get('https://www.libertyreserve.com/en/login');
    $image = $ch->get('https://www.libertyreserve.com/captcha.jpg');
    header("Content-Type: image/gif");
    echo $image;
} catch (Exception $e) {
    print $e->getMessage();
}

Output

enter image description here

Class Used

class SharedCurl {
    private $ch;
    private $info;

    function __construct($cert) {
        $this->cookie = tempnam("/tmp", "CURLCOOKIE");
        $this->cert = $cert;
        if (! is_file($this->cert)) {
            throw new Exception("Can't find Certificate");
        }
    }

    function get($url) {
        $this->ch = curl_init($url);
        $this->shared();
        $responce = curl_exec($this->ch);
        $this->info = curl_getinfo($this->ch);

        if (curl_errno($this->ch)) {
            throw new Exception(curl_error($this->ch));
        }
        curl_close($this->ch);
        return $responce;
    }

    function shared() {
        curl_setopt($this->ch, CURLOPT_CONNECTTIMEOUT, 20);
        curl_setopt($this->ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31');
        curl_setopt($this->ch, CURLOPT_REFERER, "http://www.libertyreserve.com/en/login");
        curl_setopt($this->ch, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($this->ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($this->ch, CURLOPT_COOKIEJAR, $this->cookie);
        curl_setopt($this->ch, CURLOPT_COOKIEFILE, $this->cookie);
        curl_setopt($this->ch, CURLOPT_CAINFO, $this->cert);
        curl_setopt($this->ch, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($this->ch, CURLOPT_SSL_VERIFYHOST, 0);
    }
}

Certificate File Used

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.