简析CSRF

1、简介

CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF;

2、功能

你这可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私泄露以及财产安全;

3、原理

4、示例

<!--  这个页面是用来进行登录的 -->
<form action="#" method="post">
    username:<input type="text" name="username">
    password:<input type="text" name="password">
    <input type="submit" value="submit">
</form>

<?php
session_start();
include('conn.php');
if(isset($_POST["username"]) && isset($_POST["password"]))
{
    $user=$_POST["username"];
    $pass=$_POST["password"];
    $sql="select * from admin where username='$user' and password='$pass'";
    $res=mysql_query($sql);
    while($row=mysql_fetch_array($res)){
        $_SESSION['username']=$row["username"];
        header("Location:welcome.php");
    }
}
else{
    exit();
}

?>
<?php
//登陆成功,如果id=1,就添加一个admin账号
session_start();
include("conn.php");
if(isset($_SESSION['username']))
{
    if(isset($_GET['id']))
    {
        if($_GET['id']==1)
        {
            $sql="insert into admin values('admin','admin')";
            $res=mysql_query($sql);
        }
        else
        {
            exit();
        }
    }
}
else
{
    echo "please login ";
}
?>

这个时候如果黑客有这样的代码

hack.php
<html>
<img src="http://localhost/csrf/welcome.php?id=1">
</html>

当用户登录了以后,再去访问我们的hack.php文件,这个时候,就会执行添加用户!其他的大家同理进行推论~~~~

原文地址:https://www.cnblogs.com/BloodZero/p/4411224.html