Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- use GuzzleHttp\Client;
- use Symfony\Component\DomCrawler\Crawler;
- use \GuzzleHttp\Cookie\CookieJar;
- use GuzzleHttp\TransferStats;
- require_once('vendor/autoload.php');
- define('TEST_ID',19);
- $client = new Client([
- 'base_uri' => 'http://iok.co.il',
- //'read_timeout' => 1,
- //'connect_timeout' => 1,
- 'cookies' => true,
- //'proxy' => '127.0.0.1:8080'
- ]);
- $jar = new CookieJar();
- $username = generateRandomString(12);
- $password = generateRandomString(12);
- $email = $username . '@mailinator.com';
- $response = $client->request('POST', '/ru/auth/register', [
- 'cookies' => $jar,
- 'form_params' => [
- 'username' => $username,
- 'email' => $email,
- 'password' => $password,
- 'company' => '',
- 'confirm_password' => $password,
- 'submit' => 'submit'
- ]
- ]);
- sleep(5);
- $message = getMailinatorMessage($email, 'Ok Psychometry');
- $matches = [];
- preg_match('/http:\/\/iok\.co\.il(\/ru\/auth\/activate\/[\S]*?\s)/m',$message,$matches);
- $link = trim($matches[1]);
- $client->request('GET',$link, [
- 'cookies' => $jar,
- ]);
- //var_dump($email,$password);die();
- $client->request('POST', '/ru/auth/login', [
- 'cookies' => $jar,
- 'form_params' => [
- 'login_field' => $username,
- 'password' => $password,
- 'remember' => 'yes',
- 'submit' => 'submit'
- ]
- ]);
- $response = $client->request('GET','/ru/testing/testtype/' . TEST_ID, [
- 'cookies' => $jar,
- ]);
- $dom = new Crawler($response->getBody()->getContents());
- $elem = $dom->filterXPath('//form//input')->eq(0);
- $csrfField = trim($elem->attr('name'));
- $csrfValue = trim($elem->attr('value'));
- $client->request('POST','/ru/testing/testtype/go', [
- 'cookies' => $jar,
- 'form_params' => [
- $csrfField => $csrfValue
- ],
- 'on_stats' => function (TransferStats $stats) use (&$url) {
- $url = $stats->getEffectiveUri();
- },
- ]);
- //var_dump($response->getBody()->getContents());die();
- $response = $client->request('POST', '/ru/testing/test/getBlocks/', [
- 'cookies' => $jar,
- 'form_params' => [
- 'params' => 'a:0:{}'
- ],
- 'headers' => $client->getConfig('headers') + [
- 'X-Requested-With' => 'XMLHttpRequest',
- 'Referer' => (string)$url
- ],
- ]);
- //var_dump($response->getBody()->getContents());die();
- $response = $client->request('POST', '/ru/testing/test/getListBlocks/', [
- 'cookies' => $jar,
- 'form_params' => [
- 'bl' => $response->getBody()->getContents()
- ],
- 'headers' => $client->getConfig('headers') + [
- 'X-Requested-With' => 'XMLHttpRequest',
- 'Referer' => (string)$url
- ],
- 'debug' => true
- ]);
- // var_dump($response->getBody()->getContents());die();
- foreach (json_decode($response->getBody()->getContents()) as $question) {
- $response = $client->request('POST', '/ru/testing/test/getQuestions/', [
- 'cookies' => $jar,
- 'form_params' => [
- 'bid' => $question->id
- ],
- 'headers' => $client->getConfig('headers') + [
- 'X-Requested-With' => 'XMLHttpRequest',
- 'Referer' => (string)$url
- ]
- ]);
- var_dump(json_decode($response->getBody()->getContents()));
- }
- die();
- function generateRandomString($length) {
- $chars = range('a','z');
- $res = '';
- for($i = 0; $i < $length; $i++) {
- $res .= $chars[mt_rand(0,count($chars) - 1)];
- }
- return $res;
- }
- function getMailinatorMessage($email, $subject) {
- $json = true;
- $jar = new CookieJar();
- $client = new Client([
- 'cookies' => $jar,
- 'verify' => false,
- ]);
- $username = substr($email,0,strpos($email,'@'));
- try {
- $json = $client->get('https://www.mailinator.com/fetch_inbox',
- [
- 'query' => [
- 'x' => '0',
- 'to' => $username,
- 'zone' => 'public'
- ]
- ])->getBody()->getContents();
- $msgid = false;
- foreach (json_decode($json)->messages as $msg) {
- if (preg_match('/' . $subject . '/', $msg->subject)) {
- $msgid = $msg->id;
- break;
- }
- }
- sleep(2);
- $json = $client->get('https://www.mailinator.com/fetch_email',
- [
- 'query' => [
- 'msgid' => $msgid,
- 'zone' => 'public'
- ]
- ])->getBody()->getContents();
- $json = json_decode($json);
- } catch(\Exception $e) {
- }
- if(is_object($json) && property_exists($json->data,'parts') && !empty($json->data->parts)) {
- return $json->data->parts[0]->body;
- } else {
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement