将我自己的HTML页面中的数据解析为第三方PHP页面

时间:2012-03-30 09:57:27

标签: php html xss

我参加了一场美容比赛,我要求获得提名。

提名表格需要我的详细信息和我的提名人详细信息。

我的提名者在我的电子邮件中包含我的详细信息和提名表格之间可能会出现问题,并且可能会阻止他们首先填写表格。

我提出的解决方案是创建一个HTML页面(我有100%的控制权),它已经包含了我预先填写的详细信息,因此提名者不会因为填写我的详细信息而感到困惑,所有我要做的就是问他们自己的细节。

现在我希望我的HTML表单将详细信息解析到另一个网站(竞赛组织者的网站)并自动填写表格,所有提名者必须做的是点击竞赛网站上的提交。我绝对无法控制比赛的网站,因此我无法添加或更改任何编程代码。

如何将我自己的HTML页面(100%在我的控制下)中的数据解析到第三方PHP页面上?

感谢编码的任何例子。

谢谢你xx

2 个答案:

答案 0 :(得分:1)

除非竞赛组织者要same origin policy,否则grant you permission using CORS会使这变得不可能(在这种情况下,您可以在一个框架中加载他们的网站并使用JavaScript修改它以操纵其DOM ...在支持浏览器中)。

答案 1 :(得分:0)

他们使用的表单是将表单数据提交给邮件脚本,邮件脚本通过检查引用程序(至少)来保护。您可以在PHP中使用类似cURL的内容来欺骗 像这样的引用者(未经测试):

function get_web_page( $url,$curl_data ) 
{ 
    $options = array( 
        CURLOPT_RETURNTRANSFER => true,         // return web page 
        CURLOPT_HEADER         => false,        // don't return headers 
        CURLOPT_FOLLOWLOCATION => true,         // follow redirects 
        CURLOPT_ENCODING       => "",           // handle all encodings 
        CURLOPT_USERAGENT      => "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)",     // who am i 
        CURLOPT_CONNECTTIMEOUT => 120,          // timeout on connect 
        CURLOPT_TIMEOUT        => 120,          // timeout on response 
        CURLOPT_MAXREDIRS      => 10,           // stop after 10 redirects 
        CURLOPT_POST           => 1,            // i am sending post data 
        CURLOPT_POSTFIELDS     => $curl_data,    // this are my post vars 
        CURLOPT_SSL_VERIFYHOST => 0,            // don't verify ssl 
        CURLOPT_SSL_VERIFYPEER => false,        // 
        CURLOPT_REFERER        => "http://http://fashionawards.com.mt/nominationform.php",
        CURLOPT_VERBOSE        => 1                // 
    ); 

    $ch      = curl_init($url); 
    curl_setopt_array($ch,$options); 
    $content = curl_exec($ch); 
    $err     = curl_errno($ch); 
    $errmsg  = curl_error($ch) ; 
    $header  = curl_getinfo($ch); 
    curl_close($ch); 

    $header['errno']   = $err; 
    $header['errmsg']  = $errmsg; 
    $header['content'] = $content; 
    return $header; 
} 

$curl_data = "nameandsurname_nominator=XXXX&id_nominator=XXX.....etc...."; 
$url = "http://www.logix.com.mt/cgi-bin/FormMail.pl"; 
$response = get_web_page($url,$curl_data); 

print '<pre>'; 
print_r($response); 
print '</pre>'; 

在显示$curl_data = "nameandsurname_nominator=XXXX&id_nominator=XXX.....etc....";的行中,您可以根据原始表单中的名称设置发布变量。

因此,您可以将自己的表单提交到他们的邮件脚本&amp;有一些字段填充了你需要的......

当心:您可能很容易因使用此类技术而被取消资格或遇到法律问题!收件人可能很容易发现表单已被泄露!