Jump to content

andreevpopov

New Members
  • Posts

    4
  • Joined

  • Last visited

    Never

Posts posted by andreevpopov

  1. (3) a normal POST request, captured from Wireshark

     

    POST /free/ HTTP/1.1
    Host: www.myfax.com
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2. Gecko/20100722 Firefox/3.6.8 ( .NET CLR 3.5.30729)
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: en-us,en;q=0.5
    Accept-Encoding: gzip,deflate
    Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
    Keep-Alive: 115
    Connection: keep-alive
    Referer: http://www.myfax.com/free/
    Cookie: SSID=AgABRCkIAAAAM3ZQTGq1DAEzdlBMGgAAAAAA5jRdTAAAAAB6hWJMAAAAAAAAAAAAAAAJAAAAM3ZQTA; SSRT=241iTAE; __utma=88471047.1847435192.1280341560.1281500199.1281525105.28; __utmz=88471047.1281176797.15.8.utmcsr=forums.devnetwork.net|utmccn=(referral)|utmcmd=referral|utmcct=/viewtopic.php; __utma=1.873224143.1280342275.1281110208.1281114508.6; __utmz=1.1281114508.6.4.utmcsr=cogito-lab.com|utmccn=(referral)|utmcmd=referral|utmcct=/auto_fax.php; velaroret1336=5; myfaxAff=aid=AFCJ; AffiliateID=AFCJ; SSLB=1; SSSC=1.G5499025106452395370.26.0.0; ASP.NET_SessionId=r2tlytvtzmxc2345wltujo2v; ProtusIPSolutions=4211124416.23552.0000; __utmb=88471047.10.10.1281525105; __utmc=88471047
    Content-Type: multipart/form-data; boundary=---------------------------162821245525734
    Content-Length: 148474
    
    -----------------------------162821245525734
    Content-Disposition: form-data; name="__EVENTTARGET"
    
    
    -----------------------------162821245525734
    Content-Disposition: form-data; name="__EVENTARGUMENT"
    
    
    -----------------------------162821245525734
    Content-Disposition: form-data; name="__VIEWSTATE"
    
    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
    -----------------------------162821245525734
    Content-Disposition: form-data; name="__VIEWSTATEENCRYPTED"
    
    
    -----------------------------162821245525734
    Content-Disposition: form-data; name="__EVENTVALIDATION"
    
    KIERL6+Sc+++cILAxQvrHn0Hk2XYcu/lEql4ige5KP7t1Bo01nOliNfci+COsWSv0edaQ9M2J7D3X1KgIcmo1rUYYI9QGAfsiSL5S56Gl+tsyfQL42TxViyxp7IPGWg3SnWNdgB3aHbc43iS8gMrKujFLoO1J6W1tEa+3+NwouWA2sqdwa3PUL678qS3t/NtzEFraYfy6q9WX53xjlFgKJwLgl6J2uR1ZkDlqWYs+eN4I4jqrBn01db2sgNor3hTl2iS4B/ANmvxdNh/AsEVjBXWDLy6lk08ry7UHOUHqHeUq337BoxFgejcw4Xpwtdi0DTDnL8jD4rz6PnbzvB5dilE5jGvO2ib2mtpPjVs+GhsL/Pa6dJVcQ9MF1oS/OtR+qDH4itQ46+lJZ+RwVjmorTs3hzgO8Dxjy30u0RvU/SxCRMafDGJ6Dq2uNvKxzwFze+H+yHiuXHOcpeXV0Kj95I1+bRwRfKfabHmcYZ/xod+/UJ/U+SE5h5acAPYsTbVnd3u+cdPJq75nKoOKCO0VQ==
    -----------------------------162821245525734
    Content-Disposition: form-data; name="ctl00$MainSection$nbAntiSpam$nbAntiSpam_NoBotExtender_ClientState"
    
    -241
    -----------------------------162821245525734
    Content-Disposition: form-data; name="ctl00$MainSection$tbRecipientName"
    
    Recipient
    -----------------------------162821245525734
    Content-Disposition: form-data; name="ctl00$MainSection$tbRecipientCompany"
    
    RecipientCompany
    -----------------------------162821245525734
    Content-Disposition: form-data; name="ctl00$MainSection$ddlRecipientCountry"
    
    {"c":{"i":"2","n":"United States","t":"1","s":"US"},"m":{"i":"1","v":"+1 (###) ###-####","d":"","f":"","c":"","r":""}}
    -----------------------------162821245525734
    Content-Disposition: form-data; name="ctl00$MainSection$tbRecipientFaxNumber"
    
    +1 (206) 202-8273
    -----------------------------162821245525734
    Content-Disposition: form-data; name="ctl00$MainSection$meeRecipientFaxNumber_ClientState"
    
    
    -----------------------------162821245525734
    Content-Disposition: form-data; name="ctl00$MainSection$tbSenderName"
    
    Sender
    -----------------------------162821245525734
    Content-Disposition: form-data; name="ctl00$MainSection$tbSenderCompany"
    
    SenderCompany
    -----------------------------162821245525734
    Content-Disposition: form-data; name="ctl00$MainSection$tbSenderEmailAddress"
    
    abc@example.com
    -----------------------------162821245525734
    Content-Disposition: form-data; name="ctl00$MainSection$fileUpload"; filename="file.pdf"
    Content-Type: application/pdf
    
    [PDF DETAILS REMOVED TO SAVE SPACE]
    
    -----------------------------162821245525734
    Content-Disposition: form-data; name="ctl00$MainSection$tbMessage"
    
    helloworld
    -----------------------------162821245525734
    Content-Disposition: form-data; name="ctl00$MainSection$tbFriend1"
    
    
    -----------------------------162821245525734
    Content-Disposition: form-data; name="ctl00$MainSection$tbFriend2"
    
    
    -----------------------------162821245525734
    Content-Disposition: form-data; name="ctl00$MainSection$tbFriend3"
    
    
    -----------------------------162821245525734
    Content-Disposition: form-data; name="ctl00$MainSection$ibSendFax.x"
    
    84
    -----------------------------162821245525734
    Content-Disposition: form-data; name="ctl00$MainSection$ibSendFax.y"
    
    6
    -----------------------------162821245525734
    Content-Disposition: form-data; name="ctl00$MainSection$hfRecipientFaxNumber"
    
    12062028273
    -----------------------------162821245525734
    Content-Disposition: form-data; name="ctl00$MainSection$hfRecipientFaxNumberMask"
    
    +1 (999) 999-9999
    -----------------------------162821245525734
    Content-Disposition: form-data; name="ctl00$MainSection$hfRecipientFaxNumberCountryId"
    
    2
    -----------------------------162821245525734
    Content-Disposition: form-data; name="ctl00$MainSection$hfRecipientFaxNumberMaskId"
    
    1
    -----------------------------162821245525734
    Content-Disposition: form-data; name="ctl00$MainSection$hfTimeZone"
    
    -480
    -----------------------------162821245525734
    Content-Disposition: form-data; name="ctl00$MainSection$hfModalMessage"
    
    
    -----------------------------162821245525734
    Content-Disposition: form-data; name="hiddenInputToUpdateATBuffer_CommonToolkitScripts"
    
    0
    -----------------------------162821245525734--
    

  2. I updated my script but I still couldn't get the script to work. What I mean by this is that -

     

    when I use a browser to open the page and submit a fax, I would receive a confirmation email with a "confirmation link" in it. This is what I expect would happen if the script runs successfully. However, so far I have received no confirmation emails after using the script to submit my fax. Hence, I am still debugging the script to try to get it to work.

     

    Would someone please point me in the right direction please? Many thanks!

     

    Further details:

     

    (1) my updated script

     

    <?php
    //target page url
    $strPage_url = 'http://www.myfax.com/free/';
    
    //create array of data to be posted
    $arrPost_data = array (
    'ctl00$MainSection$tbRecipientName' => 'Recipient', // max length = 50
    'ctl00$MainSection$tbRecipientCompany' => 'RecipientCompany', //max length = 50
    'ctl00$MainSection$tbRecipientFaxNumber' => '+1 (206) 202-8273', //recipient fax
    'ctl00$MainSection$ddlRecipientCountry' => html_entity_decode ('{"c":{"i":"2","n":"United States","t":"1","s":"US"},"m":{"i":"1","v":"+1 (###) ###-####","d":"","f":"","c":"","r":""}}'),
    'ctl00$MainSection$tbSenderName' => 'Sender', //max length = 50
    'ctl00$MainSection$tbSenderCompany' => 'SenderCompany', //max length = 50
    'ctl00$MainSection$tbSenderEmailAddress' => 'abc@example.com', //email
    'ctl00$MainSection$fileUpload' => '@/files/file.pdf', //file
    'ctl00$MainSection$tbMessage' => 'hello world!', //message
    'ctl00$MainSection$ibSendFax.x' => mt_rand ( 1 , 182 ),
    'ctl00$MainSection$ibSendFax.y' => mt_rand ( 1 , 40 ),
    '__EVENTTARGET' => '',
    '__EVENTARGUMENT' => '',
    '__VIEWSTATEENCRYPTED' => '',
    'ctl00$MainSection$meeRecipientFaxNumber_ClientState' => '',
    'ctl00$MainSection$tbFriend1' => '',
    'ctl00$MainSection$tbFriend2' => '',
    'ctl00$MainSection$tbFriend3' => '',
    'ctl00$MainSection$hfRecipientFaxNumber' => 12062028273,
    'ctl00$MainSection$hfRecipientFaxNumberMask' => '+1 (999) 999-9999',
    'ctl00$MainSection$hfRecipientFaxNumberCountryId' => 2,
    'ctl00$MainSection$hfRecipientFaxNumberMaskId' => 1,
    'ctl00$MainSection$hfTimeZone' => '-480',
    'ctl00$MainSection$hfModalMessage' => '',
    'hiddenInputToUpdateATBuffer_CommonToolkitScripts' => 0
    );
    
    //several variables unique to each visit
    if ( preg_match ( '/"__VIEWSTATE"[\s]+?value="([\s\S]+?)"/' , $strGet_page_contents , $arrView_state ) ) {
    	$strView_state = $arrView_state[1];
    	$arrPost_data['__VIEWSTATE'] = $strView_state; //
    }
    if ( preg_match ( '/"__EVENTVALIDATION"[\s]+?value="([\s\S]+?)"/' , $strGet_page_contents , $arrEvent_validation ) ) {
    	$strEvent_validation = $arrEvent_validation[1];
    	$arrPost_data['__EVENTVALIDATION'] = $strEvent_validation; //
    }
    if ( preg_match ( '/AjaxControlToolkit\.NoBotBehavior, \{"ChallengeScript":"~([\d]+?)"/' , $strGet_page_contents , $arrAnti_spam ) ) {
    	$strAnti_spam = $arrAnti_spam[1];
    	$intAnti_spam_value = ~intval($strAnti_spam);
    	$arrPost_data['ctl00$MainSection$nbAntiSpam$nbAntiSpam_NoBotExtender_ClientState'] = $intAnti_spam_value; //
    }
    
    //preparing data for posting
    foreach ( $arrPost_data as $key => $value ) {
    	//1. escape the $'s
    	$strNew_key = str_replace ( '$' , '\$' , $key );
    	$strNew_value = str_replace ( '$' , '\$' , $value );
    	//2. urlencode
    	$strNew_key = urlencode ( $strNew_key );
    	$strNew_value = urlencode ( $strNew_value );
    	$arrPost_data[$strNew_key] = $strNew_value;
    	if ( $strNew_key != $key ) {
    		unset ( $arrPost_data[$key] );
    	}
    }
    
    //set page url
    $curl_connection = curl_init ($strPage_url);
    
    //set curl options
    curl_setopt($curl_connection, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2. Gecko/20100722 Firefox/3.6.8 ( .NET CLR 3.5.30729)");
    curl_setopt($curl_connection, CURLOPT_REFERER, "http://www.myfax.com/free/");
    curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl_connection, CURLOPT_COOKIEJAR, 'CURLCOOKIE');
    curl_setopt($curl_connection, CURLOPT_HEADER, true);
    curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 0);
    curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);
    
    //visit page to get cookies
    $strGet_page_contents = curl_exec ($curl_connection);
    
    //log page
    $fhGet_page = fopen ( 'Get_page.html' , 'w' );
    fwrite ( $fhGet_page , $strGet_page_contents );
    fclose ( $fhGet_page );
    
    //2nd curl connection
    
    //set headers: mimic a firefox connection
    $arrHeaders = array (
    'Host: www.myfax.com',
    'Origin: http://www.myfax.com',
    'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Language: en-us,en;q=0.5',
    'Accept-Encoding: gzip,deflate',
    'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7',
    'Keep-Alive: 115',
    'Connection: keep-alive'
    );
    curl_setopt($curl_connection, CURLOPT_HTTPHEADER, $arrHeaders );
    
    //set data to be posted
    curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $arrPost_data);
    
    //display headers
    curl_setopt($curl_connection, CURLINFO_HEADER_OUT, true);
    
    //post to page
    $strPost_page_contents = curl_exec($curl_connection);
    
    //log the page
    $fhPost_page = fopen ( 'Post_page.html' , 'w' );
    fwrite ( $fhPost_page , $strPost_page_contents );
    fclose ( $fhPost_page );
    
    //show information regarding the request
    echo "<pre>";
    print_r(curl_getinfo($curl_connection, CURLINFO_HEADER_OUT));
    echo curl_errno($curl_connection) . '-' . curl_error($curl_connection);
    
    //close the connection
    curl_close($curl_connection);
    ?>

     

    (2) output from my script

     

    POST /free/ HTTP/1.1
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2. Gecko/20100722 Firefox/3.6.8 ( .NET CLR 3.5.30729)
    Referer: http://www.myfax.com/free/
    Cookie: ProtusIPSolutions=4211124416.20992.0000; ASP.NET_SessionId=yez3aw55s03jsv45412qbb45
    Host: www.myfax.com
    Origin: http://www.myfax.com
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: en-us,en;q=0.5
    Accept-Encoding: gzip,deflate
    Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
    Keep-Alive: 115
    Connection: keep-alive
    Content-Length: 3737
    Expect: 100-continue
    Content-Type: multipart/form-data; boundary=----------------------------9add31cf2d64
    
    0-

  3. I updated my script, polished out some useless lines of code, but I still couldn't get it to work. I did a watch on the packets sent by the webpage on normal use and I found that it had the following cookies.

     

    [output from Wireshark]

    Cookie: __utmz=88471047.1280829735.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); SSLB=1; SSID=AgB6lCkAAAAAJ-lXTKasAQEn6VdMCgApI2BMAAAAAAAAAAApI2BMAQAJAAAAygAAAAA; SSSC=1.G5501121823586233510.10.9.202; SSRT=KSNgTAE; ASP.NET_SessionId=hjscdafaki3d3m45fngdpmft; ProtusIPSolutions=4211124416.23808.0000; __utma=88471047.1550346862.1280829735.1281355449.1281368864.10; __utmc=88471047; __utmb=88471047.2.10.1281368864
    

     

    However, only the cookies " ASP.NET_SessionId" and "ProtusIPSolutions" are present when I access the page through cURL:

     

    [headers captured from cURL script, line 41-46 below in PHP script]

    Set-Cookie: ASP.NET_SessionId=lubhg1i52no5gz45pgwh4ly3; path=/; HttpOnly
    Set-Cookie: ProtusIPSolutions=4211124416.23808.0000; expires=Mon, 09-Aug-2010 17:56:00 GMT; path=/
    

     

    I'm not sure if those cookies are the key to the my problem, though.

    Would someone please help me on the code and drop me a hint to point me in the right direction? Many thanks!

     

    <?php
    //target page url
    $strPage_url = 'www.myfax.com/free/';
    
    //create array of data to be posted
    $arrPost_data = array (
    'ctl00$MainSection$tbRecipientName' => 'Recipient', //max length = 50
    'ctl00$MainSection$tbRecipientCompany' => 'RecipientCompany', //max length = 50
    'ctl00$MainSection$tbRecipientFaxNumber' => '+1 (206) 202-8273', //recipient fax
    'ctl00$MainSection$ddlRecipientCountry' => html_entity_decode ('{"c":{"i":"2","n":"United States","t":"1","s":"US"},"m":{"i":"1","v":"+1 (###) ###-####","d":"","f":"","c":"","r":""}}'), //
    'ctl00$MainSection$tbSenderName' => 'Sender', //max length = 50
    'ctl00$MainSection$tbSenderCompany' => 'SenderCompany', //max length = 50
    'ctl00$MainSection$tbSenderEmailAddress' => 'abc@example.com', //email
    'ctl00$MainSection$fileUpload' => '@/files/file.pdf', //file
    'ctl00$MainSection$tbMessage' => 'hello world!',//message
    '__EVENTTARGET' => '',
    '__EVENTARGUMENT' => '',
    '__VIEWSTATEENCRYPTED' => '',
    'ctl00$MainSection$meeRecipientFaxNumber_ClientState' => '',
    'ctl00$MainSection$tbFriend1' => '',
    'ctl00$MainSection$tbFriend2' => '',
    'ctl00$MainSection$tbFriend3' => '',
    'ctl00$MainSection$ibSendFax.x' => 39, //? unknown number
    'ctl00$MainSection$ibSendFax.y' => 17, //? unknown number
    'ctl00$MainSection$hfRecipientFaxNumber' => 12062028273,
    'ctl00$MainSection$hfRecipientFaxNumberMask' => '+1 (999) 999-9999',
    'ctl00$MainSection$hfRecipientFaxNumberCountryId' => 2,
    'ctl00$MainSection$hfRecipientFaxNumberMaskId' => 1,
    'ctl00$MainSection$hfTimeZone' => '-480',
    'ctl00$MainSection$hfModalMessage' => '',
    'hiddenInputToUpdateATBuffer_CommonToolkitScripts' => 1 //?
    );
    
    //visit the page and get cookies
    $curl_connection = curl_init ($strPage_url);
    curl_setopt($curl_connection, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
    curl_setopt($curl_connection, CURLOPT_REFERER, "http://www.myfax.com/free/");
    curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
    curl_setopt ($curl_connection, CURLOPT_COOKIEJAR, 'CURLCOOKIE');
    curl_setopt($curl_connection, CURLOPT_HEADER, true);
    $strGet_page_contents = curl_exec ($curl_connection);
    
    //log the page
    $fhGet_page = fopen ( 'Get_page.html' , 'w' );
    fwrite ( $fhGet_page , $strGet_page_contents );
    fclose ( $fhGet_page );
    
    //several variables unique to each visit
    if ( preg_match ( '/"__VIEWSTATE"[\s]+?value="([\s\S]+?)"/' , $strGet_page_contents , $arrView_state ) ) {
    	$strView_state = $arrView_state[1];
    	$arrPost_data['__VIEWSTATE'] = $strView_state;
    }
    if ( preg_match ( '/"__EVENTVALIDATION"[\s]+?value="([\s\S]+?)"/' , $strGet_page_contents , $arrEvent_validation ) ) {
    	$strEvent_validation = $arrEvent_validation[1];
    	$arrPost_data['__EVENTVALIDATION'] = $strEvent_validation;
    }
    if ( preg_match ( '/AjaxControlToolkit\.NoBotBehavior, \{"ChallengeScript":"~([\d]+?)"/' , $strGet_page_contents , $arrAnti_spam ) ) {
    	$strAnti_spam = $arrAnti_spam[1];
    	$intAnti_spam_value = ~intval($strAnti_spam);
    	$arrPost_data['ctl00$MainSection$nbAntiSpam$nbAntiSpam_NoBotExtender_ClientState'] = $intAnti_spam_value;
    }
    
    //escape the $'s
    foreach ( $arrPost_data as $key => $value ) {
    $strNew_key = str_replace ( '$' , '\$' , $key );
    $strNew_value = str_replace ( '$' , '\$' , $value );
    $arrPost_data[$strNew_key] = $strNew_value;
    if ( $strNew_key != $key ) {
    	unset ( $arrPost_data[$key] );
    }
    }
    
    //traverse array and prepare data for posting (key1=value1)
    foreach ( $arrPost_data as $key => $value) {
    $arrPost_items[] = urlencode ( $key ) . '=' . urlencode ( $value );
    }
    
    //create the final string to be posted using implode()
    $strPost_string = implode ('&', $arrPost_items);
    
    //create cURL connection
    $curl_connection = curl_init($strPage_url);
    
    //set options
    curl_setopt($curl_connection, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
    curl_setopt($curl_connection, CURLOPT_REFERER, "http://www.myfax.com/free/");
    curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl_connection, CURLOPT_HEADER, true);
    
    //set cookie
    curl_setopt ($curl_connection, CURLOPT_COOKIEFILE, 'CURLCOOKIE');
    unlink ( 'CURLCOOKIE' );
    
    //set header
    $arrHeaders = array ( 'Host' => 'www.myfax.com', 'Origin' => 'http://www.myfax.com' );
    curl_setopt($curl_connection, CURLOPT_HTTPHEADER, $arrHeaders );
    
    //set data to be posted
    curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $strPost_string);
    
    //perform our request
    $strPost_page_contents = curl_exec($curl_connection);
    
    //log the POST-resulting page
    $fhPost_page = fopen ( 'Post_page.html' , 'w' );
    fwrite ( $fhPost_page , $strPost_page_contents );
    fclose ( $fhPost_page );
    
    //show information regarding the request
    echo "<pre>";
    print_r(curl_getinfo($curl_connection));
    echo curl_errno($curl_connection) . '-' . curl_error($curl_connection);
    echo "<hr>";
    var_dump ($strPost_string);
    echo "</pre>";
    
    //close the connection
    curl_close($curl_connection);
    ?>
    

  4. Hi all,

     

    I am new here and I really thank God that I found this forum! I have read the materials here on working with cURL on javascript-form-submission pages. However, I can't to get my script to work. Can anybody here please help me out or drop me a hint on where to correct my script?

     

    ==Situation==

     

    My company utilizes http://www.myfax.com/free/ to send our company faxes. My task is to write a code that would submit files for faxes electronically.

     

    Note: The site also requires e-mail confirmation but I haven't get to that stage yet. I have run tests on submitting fax requests both by code and manually through the site, and have confirmed that the code doesn't work on the submission level because I managed to receive confirmation e-mails for manual submissions. Also, I tried my script with different staff email addresses because I figured out that it blocks only the same e-mail address from sending more than 2 faxes a day.

     

    <?php
    
    //target page url
    $strPage_url = 'www.myfax.com/free/';
    
    //create array of data to be posted
    $arrPost_data = array (
        'ctl00$MainSection$tbRecipientName' => 'I am recipient', //max length = 50
        'ctl00$MainSection$tbRecipientCompany' => 'I am recipient company', //max length = 50
        'ctl00$MainSection$tbRecipientFaxNumber' => '+1 (206) 202-8273', //recipient fax
        'ctl00$MainSection$ddlRecipientCountry' => html_entity_decode ('{"c":{"i":"2","n":"United States","t":"1","s":"US"},"m":{"i":"1","v":"+1 (###) ###-####","d":"","f":"","c":"","r":""}}'),
        'ctl00$MainSection$tbSenderName' => 'I am sender', //max length = 50
        'ctl00$MainSection$tbSenderCompany' => 'I am sender company', //max length = 50
        'ctl00$MainSection$tbSenderEmailAddress' => 'abc@example.com', //email
        'ctl00$MainSection$nbAntiSpam$nbAntiSpam_NoBotExtender_ClientState' => '-150', //number drawn from inspecting the packages sent by manual form submission
        'ctl00$MainSection$fileUpload' => '@/files/file.pdf', //file
        'ctl00$MainSection$tbMessage' => 'hello world', //message
        '__EVENTTARGET' => '',
        '__EVENTARGUMENT' => '',
        '__VIEWSTATEENCRYPTED' => ''
        );
    
    //visit the page and get cookies
    $curl_connection = curl_init ($strPage_url);
    curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 0);
    curl_setopt($curl_connection, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
    curl_setopt($curl_connection, CURLOPT_REFERER, "http://www.myfax.com/free/");
    curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt ($curl_connection, CURLOPT_COOKIEJAR, 'CURLCOOKIE');
    $strGet_page_contents = curl_exec ($curl_connection);
    curl_close ($curl_connection);
    
        //get page to retrieve view state and event validation
        if ( preg_match ( '/"__VIEWSTATE"[\s]+?value="([\s\S]+?)"/' , $strGet_page_contents , $arrView_state ) ) {
            $strView_state = $arrView_state[1];
            $arrPost_data['__VIEWSTATE'] = $strView_state;
        }
        if ( preg_match ( '/"__EVENTVALIDATION"[\s]+?value="([\s\S]+?)"/' , $strGet_page_contents , $arrEvent_validation ) ) {
            $strEvent_validation = $arrEvent_validation[1];
            $arrPost_data['__EVENTVALIDATION'] = $strEvent_validation;
        }
        if ( preg_match ( '/id="ctl00_MainSection_nbAntiSpam_nbAntiSpam_NoBotExtender_ClientState" value="([\s\S]+?)"/' , $strGet_page_contents , $arrAnti_spam ) ) {
            $strAnti_spam = $arrAnti_spam[1];
            $arrPost_data['ctl00$MainSection$nbAntiSpam$nbAntiSpam_NoBotExtender_ClientState'] = $strAnti_spam;
        }
    
    //traverse array and prepare data for posting (key1=value1)
    foreach ( $arrPost_data as $key => $value) {
        $arrPost_items[] = $key . '=' . $value;
    }
    
    //create the final string to be posted using implode()
    $strPost_string = implode ('&', $arrPost_items);
    
    //create cURL connection
    $curl_connection = curl_init($strPage_url);
    
    //set options
    curl_setopt ($curl_connection, CURLOPT_POST, 1);
    curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 0);
    curl_setopt($curl_connection, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
    curl_setopt($curl_connection, CURLOPT_REFERER, "http://www.myfax.com/free/");
    curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);
    //set cookie
    curl_setopt ($curl_connection, CURLOPT_COOKIEFILE, 'CURLCOOKIE');
    unlink ( 'CURLCOOKIE' );
    curl_setopt($curl_connection, CURLOPT_COOKIE, session_name() . '=' . session_id());
    //set header
    $arrHeaders = array ( 'Content-Type' => 'application/x-www-form-urlencoded; charset=utf-8' );
    curl_setopt($curl_connection, CURLOPT_HTTPHEADER, $arrHeaders );
    
    //set data to be posted
    curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $strPost_string);
    
    //perform our request
    $strResult = curl_exec($curl_connection);
    
    //show information regarding the request - for debugging
    echo "<pre>";
    print_r(curl_getinfo($curl_connection));
    echo curl_errno($curl_connection) . '-' . curl_error($curl_connection);
    echo "<hr>";
    var_dump ($arrPost_items);
    echo "</pre>";
    
    //close the connection
    curl_close($curl_connection);
    ?> 

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.