PHP - Peticion post y la data contiene captcha

 
Vista:
Imágen de perfil de mauro
Val: 50
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

Peticion post y la data contiene captcha

Publicado por mauro (17 intervenciones) el 11/08/2020 17:54:28
Estoy haciendo una peticion post a una url en la cual la data contiene un captcha que logre obtenerlo desde la codifo fuente y guardarlo en mis archivos pero resulta que al enviar la data en la peticion me sale captcha invalid no se cual sea mi problema este es el codigo que uso nesesito obtener success como respuesta porfavor gracias..


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
$ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, "https://firefaucet.win/ptc/");
  curl_setopt($ch, CURLOPT_RETURNTRANSFER,           1);                                  curl_setopt($ch, CURLOPT_POSTFIELDS,"");
  curl_setopt($ch, CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_1_1);
  curl_setopt($ch, CURLOPT_POST, 1);
  //curl_setopt($ch, CURLOPT_CUSTOMREQUEST,"POST");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST,"GET");
  curl_setopt($ch, CURLOPT_PORT,"443");
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);                                        curl_setopt($ch, CURLOPT_TIMEOUT, 1000);
  curl_setopt($ch, CURLOPT_ENCODING, '');
  curl_setopt ($ch, CURLOPT_COOKIEJAR, "cookie.txt");
  curl_setopt ($ch, CURLOPT_COOKIEFILE, "cookie.txt");
                                                                                          $headers = array();
 
                                                                                        $headers[] = "user-agent:Mozilla/5.0 (Linux; Android 9; SM-A105M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Mobile Safari/537.36";
$headers[] = "Cookie: __cfduid=d6e6d5621f36c1c5f2331fa5cd84982301596080941;session=ed38a
231-739f-4e7f-bedc-297fbd9d0703.FqTApde6bG8GaiH_iG8IxdqF1iY;_ga=GA1.2.255418458.15960810
10;_gid=GA1.2.26230630.1596610276;pnc_fcap=1;_gat_gtag_UA_113361696_1=1";
 
 
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
 
 
 
$result = curl_exec($ch);
 
//echo "$result\n";
  $p =  explode("new_ptc('", $result);
 
  $ar = explode("')", $p[1]);
$aa = $ar[0];                                                                           //echo "$aa\n";
 
$url = 'https://firefaucet.win/viewptc?id='.$aa.'';
 
$ch = curl_init();
 
curl_setopt($ch, CURLOPT_URL, "$url");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);                                            curl_setopt($ch, CURLOPT_PORT,"443");
curl_setopt($ch, CURLOPT_TIMEOUT, 800000000);                                           $headers[] = "Content-Type: text/html; charset=utf-8";                                  $headers[] = "--compressed";
curl_setopt ($ch, CURLOPT_COOKIEJAR, "cookie.txt");                                    c
url_setopt ($ch, CURLOPT_COOKIEFILE, "cookie.txt");
  curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
 
  $result = curl_exec($ch);
 
$pa =  explode(";' onclick=continueptc('", $result);
 
  $ae = explode("') ><span", $pa[1]);
$keya = $ae[0];
echo "$keya\n";
 
 
$lo = explode('<input type="hidden" name="csrf_token" value="', $result);
$tu = explode('"> <b class="f-12 captcha-input-label">', $lo[1]);
$tok = $tu[0];                                                                          echo "$tok\n";
$u9 = explode("<img src='", $result);                                                   $ei = explode("'> <input type=", $u9[1]);                         $im = $ei[0];         //echo "$im\n";
 
$dataFile="$im";
 
// abrimos un archivo para escritura
$f = fopen("miarchivo.png", "w") or die("Unable to open file!");
 
// guardamos en el archivo el contenido que hay despues de la coma
fwrite($f, base64_decode(explode(",", $dataFile, 2)[1]));
fclose($f);
 
echo " \033[0;36m(*)>..imput capcha \033[0m \033[1;33m=\033[0m ";
//$capcha = trim(fgets(STDIN));
$capcha=trim(fgets(STDIN));
 
 
$urll = "https://firefaucet.win/ptcverify?key=$keya&id=$aa";
echo "$urll\n";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $urll);
curl_setopt($ch, CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
//curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
$data = "captcha=$capcha&csrf_token=$tok";
echo"$data\n";
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_PORT,"443");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);                                         curl_setopt ($ch, CURLOPT_COOKIEJAR, "cookie.txt");                                    c
url_setopt ($ch, CURLOPT_COOKIEFILE, "cookie.txt");
 
$headers[] = "x-requested-with:XMLHttpRequest";
$headers[] = "content-length:115";
 
$headers[] = "--compressed";
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$ook = curl_exec($ch);

porfavor ayudenme a mejorar mi codigo no se cual sea el error si la imagen del captcha lo extraigo de la misma web al hacer la peticion y el captcha lo pongo manuelmente despues de visualzar la imagen . no se como expresarme en idioma programador gracias .
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder