zoukankan      html  css  js  c++  java
  • pikachu CSRF

    CSRF简介

    CSRFCross Site Request Forgery 的 简称,中文名为跨域请求伪造
    在CSRF的攻击场景中,攻击者会伪造一个请求(一般是一个链接)
    然后欺骗目标用户进行点击,用户一旦点击了这个请求,这个攻击也就完成了
    所以CSRF攻击也被称为“one click”攻击

    CSRF所需条件

    ① 目标网站没有对修改个人信息修改的请求进行防CSRF处理,导致该请求容易被伪造

    ②用户在登录了此网站的前提下,点击了攻击者所发的链接

    CSRF和XSS区别

    XSS目标在于获取用户cookie,利用cookie伪装为受害者身份进行登录进而造成破坏,

    CSRF并没有获取到用户的权限,而是利用用户的权限执行我们的payload进行攻击

    如何确认是否可以进行CSRF攻击?

    ①观察网站增删改地方的逻辑,可自行进行增删改操作观察是否需要旧密码也可抓包

     观察是否需要token进行验证,进而判断请求是否可以被伪造。

     token一般是防止csrf攻击的参数,每次请求都会生成的一个随机长字符串。

    ②确认cookie或者session是否长期有效(一般都不会长期有效....)

    CSRF(get)

    先登录lucy

    打开代理,用burpsuite抓包查看点击完submit之后的get请求

     可以看到这个请求包含了很多lucy的信息,没有token:

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

    攻击思路

    拿到一个相似的请求体,伪造一个包含此请求的链接,诱导用户点击,用户点击之后

    就完成了我们借用受害者的身份修改了他自己的信息。

    payload:更改phone number

    http://192.168.174.130/pikachu-master/vul/csrf/csrfget/csrf_get_edit.php?sex=girl&phonenum=12345678910&add=usa&email=lucy%40pikachu.com&submit=submit

    CSRF (post)

    通过抓包可以看到请求的参数是在请求体里而不是在URI中

     所以和之前post型的xss是一样的,需要给一个页面的链接,让用户提交一个form表单,

    将请求体放在表单里一块提交。

    构造一个html页面,放在WWWpikachu-masterpkxsscsrf下

     构造链接:http://192.168.174.130/pikachu-master/pkxss/csrf/post.html

    发给用户诱导其点击,发现用户信息已被修改

    token防止CSRF的原理

    CSRF的主要问题是,增删改等敏感操作的URI链接容易被伪造,那么我们防止的目的

    就是不轻易的让伪造的链接在后台执行。

    也就是token可以在每次请求的时候,随机生成一个验证码(字符串)将这个字符串

    赋值给token,每次请求后台都会验证这个随机生成的token。

     观察源码:

    这里get提交的token要和session中生成的token才会通过验证,否则请求不会被处理

    CSRF常见防范措施

    1.对敏感操作增加token进行验证

    2.不要在客户端保存敏感信息

    3.设置cookie和session在用户无操作、退出、关闭页面时的会话过期机制

    4.敏感信息更改要进行二次身份认证,最好使用post型请求

    5.通过http头部中的referer来限制原页面

    6.增加验证码,验证是人还是机器

  • 相关阅读:
    带有“全选”的combotree
    combotree(组合树)的使用
    根据权限显示accordion
    accordion(折叠面板)的使用
    js中substr、substring、indexOf、lastIndexOf的用法
    EasyUI中使用自定义的icon图标
    EasyUI tree的三种选中状态
    C# List集合去重使用lambda表达式
    C# DataTable去重,根据列名去重保留其他列
    win10下部署.Net Web项目到IIS10
  • 原文地址:https://www.cnblogs.com/Zh1z3ven/p/12605910.html
Copyright © 2011-2022 走看看