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页面,放在WWW\pikachu-master\pkxss\csrf下

 构造链接: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.增加验证码,验证是人还是机器

pikachu CSRF的更多相关文章

  1. pikachu的xss及csrf

    一.XSS 可解析的js 未经过滤 XSS见框就插     script 大小写  中间插入 <img src="" onerror="alert(11111)&q ...

  2. Pikachu漏洞练习平台实验——CSRF(三)

    概述 CSRF 是 Cross Site Request Forgery 的 简称,中文名为跨域请求伪造 在CSRF的攻击场景中,攻击者会伪造一个请求(一般是一个链接) 然后欺骗目标用户进行点击,用户 ...

  3. pikachu靶场-CSRF

    xss和csrf区别: CSRF是借用户的权限完成攻击,攻击者并没有拿到用户的权限,而XSS是直接盗取到了用户的权限,然后实施破坏. PS: 由于之前将php5升级到php7,导致靶场环境出现以下问题 ...

  4. CSRF - Pikachu

    概述: Cross-site request forgery 简称为"CSRF"(跨站请求伪造),在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接),然后欺骗目标 ...

  5. web安全技术--XSS和CSRF

    Xss一般是脚本代码,主要是JS的,但是也有AS和VBS的. 主要分为反射型,存储型,DOM型三个大类. 一般来讲在手工测试的时候先要考虑的地方就是哪里有输入那里有输出. 然后是进行敏感字符测试,通常 ...

  6. pikachu-xss和csrf

    简介 XSS是一种发生在Web前端的漏洞,所以其危害的对象也主要是前端用户 XSS漏洞可以用来进行钓鱼攻击.前端js挖矿.盗取用户cookie,甚至对主机进行远程控制 攻击流程 假设存在漏洞的是一个论 ...

  7. pikachu-跨站请求伪造(CSRF)

    一.CSRF漏洞概述 1.1 什么是CSRF漏洞 在CSRF的攻击场景中攻击者会伪造一个请求(整个请求一般是一个链接),然后七篇目标用户进行点击,用户一旦点击了这个请求,整个攻击也就完成了,所以CSR ...

  8. pikaqiu练习平台(CSRF(跨站请求伪造) )

    CSRF(跨站请求伪造)   CSRF(跨站请求伪造)概述 Cross-site request forgery 简称为“CSRF”,在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接 ...

  9. Pikachu练习平台(暴力破解)

    Pikachu练习平台(暴力破解) 因为下面要用到burp suite,这里先简单介绍一下intruder模块的东西 Target选项:        设置攻击目标,可以通过proxy发送 Pasit ...

随机推荐

  1. kafka、rabbitmq、redis区别,各自适合什么场景?

    在应用场景方面 RabbitMQ RabbitMQ遵循AMQP协议,由内在高并发的erlanng语言开发,用在实时的对可靠性要求比较高的消息传递上,适合企业级的消息发送订阅,也是比较受到大家欢迎的. ...

  2. Vector ArrayList LinkedList

    三者都实现了List接口! Vector与ArrayList:采用顺序存储的方式,但是Vector是线程安全的,ArrayList是线程不安全的,按需使用: 当存储空间不足的时候,ArrayList默 ...

  3. BUU mrctf shit

    吐槽:去年没写出的题,现在终于可以上手了,昂哥nb 动调发现直接卡着不动了,怀疑是反调试,果然有好几处反调试 这里选择就不先nop了,先让程序跑起来,然后attach,在输入函数下面下个断点,atta ...

  4. 一文看懂HTTPS、证书机构(CA)、证书、数字签名、私钥、公钥(转)

    说到https,我们就不得不说tls/ssl,那说到tls/ssl,我们就不得不说证书机构(CA).证书.数字签名.私钥.公钥.对称加密.非对称加密.这些到底有什么用呢,正所谓存在即合理,这篇文章我就 ...

  5. 深度解析HashMap底层实现架构

    摘要:分析Map接口的详细使用以及HashMap的底层是如何实现的? 本文分享自华为云社区<[图文并茂]深度解析HashMap高频面试及底层实现结构![奔跑吧!JAVA]>,原文作者:灰小 ...

  6. 盘点linux操作系统中的10条性能调优命令,一文搞懂Linux系统调优

    原文链接:猛戳这里 性能调优一直是运维工程师最重要的工作之一,如果您所在的生产环境中遇到了系统响应速度慢,硬盘IO吞吐量异常,数据处理速度低于预期值的情况,又或者如CPU.内存.硬盘.网络等系统资源长 ...

  7. 从源码角度谈谈MySQL "Too many open files"错误的根本原因

    "Too many open files"是一个比较常见的错误,不仅仅是在 MySQL 中.只要是在 Linux 中启动的进程,都有可能遇到这个错误. 究其原因,是进程打开的文件描 ...

  8. Redis学习——常用小功能

    一.慢查询分析(查询日志:所谓慢查询日志就是系统在命令执行前后计算每条命令的执行时间,当超过预设阀值,就将这条命令的相关信息(例如:发生时间,耗时,命令的详细信息)记录下来,Redis也提供了类似的功 ...

  9. iTextSharp导出PDF模板(报告)

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.IO;us ...

  10. UIAutomator2 之 计算机积极拒绝

    启动 问题: Failed to establish a new connection 由于目标计算机积极拒绝,无法连接 原因: 电脑重启被IE主动开了本地代理 解决: 网络设置-关闭手动代理