csrf跨站请求伪造

网络安全 无标签

csrf

CSRF简介

CSRF,全名 Cross Site Request Forgery,跨站请求伪造,由于目标物token或referer防御,导致攻击者使用某种操作模拟用户发送数据。

原理

目标没有token或referer防御,用户cookie在有效期内,访问了攻击者的攻击链接,导致浏览器往服务器发送含有参数数据,更改用户的某些资料。比如修改用户邮箱,使用户通知都发送到恶意邮箱去,或者修改用户密码等。

利用

GET

使用网站标签src或href等就可以发送一个GET请求。如:

<img src="http://**.***/a.php?a=123">
<link href="http://**.***/a.php?a=123">
<img lowsrc="http://**.***/a.php?a=123">

POST

构造含有参数的表单,访问时使用JavaScript发送请求

<form action="http://**.***/a.php" method="post" id="sendcsrf">
    <input type="text" name="username" value="snow">
    <input type="text" name="password" value="123456">
    <input type="text" name="age" value="1">
</form>
<script>
    document.getElementById("sendcsrf").submit();
</script>

防御

添加token

在表单添加token与服务段session保存的token验证。token是随机可变的,攻击者很难猜到token。token尽量不要出现在url链接中,避免token泄露

referer

检测referer头,判断是否来自网站内。

验证码

使用验证码是用户参与交互。

1条评论

    VPS234

    这个是安全测试必测试的项目

    Windows10 65 天前回复