Ben anahtar kelimeler asp giriş kıvırmak php. ASPXAUTH içeren internet üzerinde hazır her yazı var hemen hemen% 100 eminim, ama ben bir çözüm bulmak mümkün olmuştur. Ama zarif geliştirici daha kod hacker daha duyuyorum, bu yüzden birisi bana lütfen yardımcı olabilir umuyoruz.
Ben başarılı bir giriş arkasından formları göndermek için iki, diğer web sitelerine oturum bir kıvrılma komut dosyası var. Ancak, son zamanlarda üçüncü bir web sitesi için bu komut bir varyasyonu kullanmayı denedim. Bu kadar giriş yaptıktan sonra ilk sayfayı dönen olarak çalışıyor ama ben keşfettim ben in giriş yapmamış gibi sonra onu ayarlı değil. ASPXAUTH cookie ile yapmak olduğunu (iyi bence) başka cURL aramaları davranır. Benim cURL kodunda bir cookiefile ve cookiejar kurulum yapmak ve başarılı. ASP.NET_SessionID yakalar, ama değil. ASPXAUTH çerez.
Ben "Live HTTP başlıklarını" izlerken ben başlıklarındaki. ASPXAUTH çerez değerini görebilirsiniz fark ama benim cURL komut çok kolay bu set-cookie ile başlığını geri alınamıyor. Bu çerez giriş yaptıktan sonra bir 302 ayarlanır ve cURL bu doğru işleyen değil gibi görünüyor. Yani CURLOPT_FOLLOWLOCATION kapalı ve yönlendirmek kendimi işlemek için çalışıyordu ama ben hala (sunucu gerçekten garip bir yönlendirme url döner ve ben doğru bu kısmını yapıyorum sanmıyorum) doğru alınamıyor
Birisi bana yardımcı olabilir, ama ben çok minnettar olacaktır ...
İşte benim kod:
//setup Curl
$cookiename = substr($from,4,5);
$cookiefile = $cookiename . ".txt";
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (Windows; MSIE 6.0; U; Windows NT 5.1)");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiefile);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiefile);
//read login page
curl_setopt($ch, CURLOPT_URL, "Login.aspx");
$result = curl_exec ($ch);
echo $result;
// extract values for hidden form fields __REQUESTDIGEST __VIEWSTATE __EVENTVALIDATION fields
//extract __REQUESTDIGEST
$start = strpos($result,"id=\"__REQUESTDIGEST\" value=\"") + 28;
$end = $start + 157;
$rdigest = substr($result , $start , $end - $start );
//extract __VIEWSTATE
$start = strpos($result,"id=\"__VIEWSTATE\" value=\"") + 24;
$end = $start + 16300;
$vstate = substr($result , $start , $end - $start );
$vstate = urlencode($vstate);
//extract __EVENTVALIDATION
$start = strpos($result,"id=\"__EVENTVALIDATION\" value=\"") + 30;
$end = $start + 120;
$event = substr($result , $start , $end - $start );
$event = urlencode($event);
//set login form values and login
//curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_REFERER, 'Login.aspx');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, '__REQUESTDIGEST=' . $rdigest . '&__VIEWSTATE=' . $vstate . '&__EVENTVALIDATION=' . $event . '&UserName=' . $from . '&Password=' . $password);
$result = curl_exec ($ch);
echo $result;
//extract __redirect
$start = strpos($result,"Location:") + 10;
$end = strpos($result,".aspx") +5;
$redirect = substr($result , $start , $end - $start );
$redirect = "https://www.domain.com/" . $redirect;
echo $redirect ."<br /><br />";
echo $result;
curl_setopt($ch, CURLOPT_URL, $redirect);
$result = curl_exec ($ch);
echo $result;
Ve burada çıktı:
//Login page headers
HTTP/1.1 200 OK Date: Tue, 30 Nov 2010 12:57:09 GMT Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET X-AspNet-Version: 2.0.50727 Cache-Control: no-cache Pragma: no-cache Expires: -1 Content-Type: text/html; charset=utf-8 Content-Length: 81835
//Login page body
Submit login page headers
HTTP/1.1 100 Continue HTTP/1.1 302 Found Date: Tue, 30 Nov 2010 13:40:30 GMT Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET X-AspNet-Version: 2.0.50727 Location: /(F(RZPDiDBb9OPbTuBnj2RAgH8KglRdj4B4u8trRMpa6QbBjff4evKMtHnOFNyX046Xdr33PZA3-6dHoZjxQpeZ7aNTevF75gArtpeScCjE9fI1))/default.aspx Set-Cookie: ASP.NET_SessionId=bhugr045cyybck45xvhpeb55; path=/; HttpOnly Cache-Control: no-cache Pragma: no-cache Expires: -1 Content-Type: text/html; charset=utf-8 Content-Length: 82196
//Redirect page body
//The login page body is displayed again
//More headers
HTTP/1.1 100 Continue HTTP/1.1 500 Internal Server Error Date: Tue, 30 Nov 2010 13:29:05 GMT Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET X-AspNet-Version: 2.0.50727 Cache-Control: private Content-Type: text/html; charset=utf-8 Content-Length: 3026
//Error message from server
Server Error in '/' Application.
Runtime Error
Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine.