PDA

View Full Version : سوال: لوگین به یاهو با تابع curl



ravand
سه شنبه 21 شهریور 1391, 10:46 صبح
سلام
من میخوام به دستورات زیر به آی دیم در یاهو لوگین بشم ولی نمیدونم چرا این کدها کار نمیکنه.

<?php
$username="email@yahoo.com";
$password="password";
$url="https://login.yahoo.com/";
$cookie="cookie.txt";
$postdata = "email=".$username."&password=".$password;
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
curl_setopt ($ch, CURLOPT_TIMEOUT, 60);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt ($ch, CURLOPT_REFERER, $url);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt ($ch, CURLOPT_POST, 1);
$result = curl_exec ($ch);
echo $result;
curl_close($ch);
?>
به این خط اخطار میده:

$ch = curl_init();

ravand
سه شنبه 21 شهریور 1391, 10:50 صبح
مشکل حل شد امدم توی فایل php.ini این ; رو برداشتم :لبخند:
متشکرم

ravand
سه شنبه 21 شهریور 1391, 10:59 صبح
حالا یه مشکل برام پیش امده اینکه اخطاری بهم نمیده ولی وارد هم نمیشه.

Hr.Ziggurat
سه شنبه 21 شهریور 1391, 13:26 عصر
سلام ، login شدن به یاهو به این راحتیا که نیس. چون یه سری md5 hashing داره واسه validation.

باید داخل فرم ورود یاهو فیلد های hidden رو پیدا کنی.
مقداراشونو تشخیص بدی از کجا میاند.
اون فیلدایی رو که کد و hashing اند باید قبل از پست کردن داده ها یه بار curl_exec کنی و response بگیری ، بعدشم با preg_match کدای هشینگ رو جدا کنی و با بقیه ی اطلاعات که پست میشند ، باید پست کنی.
بغیر از user و pass و فیلد های هشینپ باید مقدارای همه ی فیلد های hidden پست بشن.
در کل بی خیال شی بهتره!
شاید راه های راحت تری هم باشه ، تو گوگل سرچ بزن شاید پیدا کنی ، البته به زبون انگلیسی!

ravand
سه شنبه 21 شهریور 1391, 19:03 عصر
حداقل نمیشه به سایت خودم لوگین بشم؟

Hr.Ziggurat
سه شنبه 21 شهریور 1391, 19:33 عصر
چرا که نه! خیلیم راحته! به یاهو هم میشه ولی سخته.
سایتت با ASP یا PHP ؟ خودت نوشتیش؟ اگه خودت نوشته باشیش کارت خیلی راحتتره.

ravand
سه شنبه 21 شهریور 1391, 19:45 عصر
میشه بگید چجوری این کار رو بکنم؟ اخه هر چی در موردش سرچ زدم چیزی گیرم نیومد .

Hr.Ziggurat
سه شنبه 21 شهریور 1391, 21:13 عصر
حتماً ! ولی نگفتی سایتت با ASP نوشته شده یا PHP. اگه قبلش آدرس سایتت رو که می خوای بش لاگین شی بدونم بهتر میتونم کمکت کنم. اگه با ASP نوشته شده باشه یه سری فیلدای مخفی داره واسه امنیتش که تو همه سایتای ASP ثابتند. اگه هم با PHP باشه باید مقدارای فیلدای مخفیشو ببینم(البته اگه داشته باشه ، اگه هم نداشته باشه کار خیلی راحت میشه).

ravand
سه شنبه 21 شهریور 1391, 21:17 عصر
با php نوشتم خب شما فکر کنم این ادرس قسمت لوگین هست:
http://site.com/login.php

Hr.Ziggurat
چهارشنبه 22 شهریور 1391, 01:05 صبح
منظورم این بود که خود صفحه ورود رو ببینم تا توی خروجی HTML صفحت بدونم از چه متدی واسه ارسال داده های فرم ورودت (POST و GET) و چه فیلدهایی استفاده کردی. کوکی یا session داره و... ولی خوب طوری نیس ، حق داری نگران امنیتش باشی:چشمک:
تو ساده ترین حالت فرض میکنیم متد فرم پست باشه و فقط 2 تا فیلد username و password داشته باشیم (هیچ فیلد hidden ی تو فرمت نباشه) :
این کد صفحه ی ورود باشه (login.php) :


<html>
<head>
<title></title>
</head>
<body>
<form action="submit.php" method="post">
<input type="text" size="10" name="username" /><br /><input type="password" size="10" name="password" /><br /><input type="submit" value="Login" />
</form>
</body>
</html>

این کد submit ورود باشه (submit.php) :


<html>
<head>
<title></title>
</head>

<body>
<?php echo "username=".$_POST['username'].",password=".$_POST['password']; ?>
</body>
</html>

اینم کد curl واسه login شدن باشه (curl.php):


<?php
$LoginURL = "http://site.com/submit.php";

$valueUsername ='curl_user';
$valuePassword ='curl_pass';

$postData = "username=".$valueUsername."&password=".$valuePassword;
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $LoginURL);
curl_setopt($c, CURLOPT_POST, TRUE);
curl_setopt($c, CURLOPT_POSTFIELDS, $postData);
$data = curl_exec($c);
echo $data;
curl_close($c);
?>

spiderman200700
چهارشنبه 22 شهریور 1391, 01:27 صبح
عذر میخوام این کار چه فایده ای داره و کی و کجا باید ازش استفاده کرد؟

Hr.Ziggurat
چهارشنبه 22 شهریور 1391, 10:58 صبح
خواهش میکنم. یکی از کاربردش همین Remote Access. یعنی شما از یه جای دیگه (مثلاً سرور خودتون) می تونید به یه سرور دیگه وصل شید. اطلاعات بفرستید و بگیرید. مثلاً کار ثبت نام یا ورود رو انجام بدید. حتی کار Crack و Phishing رو میشه واسه سایتای ضعیف با این curl انجام داد.
جدا از اون یه کاربرد باحال دیگه هم داره. مثلاً شما میخواید سایتی داشته باشید که توش از اطلاعات و سرویس یه سایت دیگه استفاده کنید. مثل دیکشنری ، فرهنگ لغت ، موتورهای جستجو ، آخرین قیمت ها و اعداد توی سایت بورس یا هر سایت فروشگاه دیگه ای و... با curl موتونید به سایت و سرویس مورد نظرتون وصل شید و اطلاعاتی رو که می خواید از خروجی اون وردارید.
البته یه محدودیت هایی هم داره...

ravand
چهارشنبه 22 شهریور 1391, 11:11 صبح
حتی کار Crack و Phishing رو میشه واسه سایتای ضعیف با این curl انجام داد.
میشه بگید این روش چی هست؟ اصلا یعنی چی؟

Hr.Ziggurat
چهارشنبه 22 شهریور 1391, 12:07 عصر
Phishing -> صفحه های جعلی (fake pages) که به کاربرا میل میشند و باشون user و pass دزدیده میشه
Crack -> اینجا منظورم پیدا کردن user و pass کاربرا دیگه بود (bruteforce)