用于重定向URL的PHP​​页面

时间:2014-03-16 18:53:01

标签: php html csrf url-redirection

我正在尝试实施CSRF攻击。我理解在一键攻击中使用session-id并在其中使用浏览器角色的概念。

我希望我的php页面能够在单个超链接/ url中转换,而不是包含代码的url,并被重定向到上一页。

我从该帐户中扣除金额的PHP代码是

<?php
    include "config.php";
    session_start();
    $email = $_SESSION['email'];

    $acc = 'sn123';
    $amt = '1';

    $query = "update account set balance = balance + $amt where acc_no = '$acc'";

    mysql_query($query);

    $query = "update account set balance = balance - $amt where email = '$email'";

    mysql_query($query);
    header('Location: kclick.html');
?>

我希望它转换为URL,例如 -

<img src="http://bank.example.com/withdraw?account=bob&amount=1000000&for=Fred">

2 个答案:

答案 0 :(得分:0)

我不确定你是如何尝试实施此类攻击所以我会给你一个基本的例子。

假设你的服务器上有这个脚本(实际上是这样的,现在无法测试):

<强> your_server.com/withdraw.php

<?php

session_start();
include('db_stuff.php');
$amount = $_GET['amount'];
$for = $_GET['for'];

mysql_query('insert into tbl_withdraw("user_id", "target_user", "amount") values("'.$_SESSION['user_id'].'", "'.$for.'", "'.$amount.'")');
?>

然后,要使用CSRF,可以向应用程序的用户发送特制链接:

http://your_server.com/withdraw.php?amount=1000&for=Loic

答案 1 :(得分:0)

如果您想使用URL中的GET参数,请尝试使用

<?php
        include "config.php";
        session_start();
        $email = $_SESSION['email'];

        $acc = $_GET['account'];
        $amt = $_GET['amount'];

        $query = "update account set balance = balance + $amt where acc_no = '$acc'";

        mysql_query($query);

        $query = "update account set balance = balance - $amt where email = '$email'";

        mysql_query($query);
        header('Location: kclick.html');
    ?>