我正在尝试实施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">
答案 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,可以向应用程序的用户发送特制链接:
答案 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');
?>