CSRF(Pikachu靶场练习)

csrf,pikachu · 浏览次数 : 0

小编点评

**CSRF攻击的原理:** 1. 用户在登录页面中输入用户名和密码。 2. 服务器接收用户的请求并验证输入的信息。 3. 如果验证成功,服务器生成一个CSRF token,并将其存储在用户的会话中。 4. 用户再次访问登录页面,并携带CSRF token。 5. 服务器验证用户的输入信息,如果验证成功,就允许用户登录。 **如何利用CSRF攻击生成 token:** 1. 用户在登录页面中输入用户名和密码。 2. 服务器接收用户的请求并验证输入的信息。 3. 如果验证成功,服务器生成一个CSRF token,并将其存储在用户的会话中。 4. 用户再次访问登录页面,并携带CSRF token。 5. 服务器验证用户的输入信息,如果验证成功,就允许用户登录。 6. 服务器将CSRF token存储在用户的会话中,并将其返回给前端页面。 **如何利用CSRF攻击修改用户信息:** 1. 用户在修改个人信息页面中输入新的信息。 2. 浏览器将这些信息提交给服务器。 3. 服务器接收用户的请求并验证输入的信息。 4. 如果验证成功,服务器将CSRF token存储在用户的会话中。 5. 服务器将CSRF token返回给前端页面。 6. 用户在修改用户信息页面中再次提交这些信息。 7. 服务器将CSRF token与 session 中的 token vergleichen。 8. 如果验证成功,就允许用户修改个人信息。 **注意:**CSRF攻击需要在用户的会话中存储 CSRF token,因此攻击者需要找到用户在会话中的 token。如果服务器验证的机制允许,攻击者可以轻松绕过验证。

正文

CSRF(get)

自己随便输点东西,回显登录失败,查看源码没发现什么

点开提示,登录进去看看

image-20240503095741193

看到可以修改个人信息,我们把居住改成China,修改成功,没发现urlhttp://127.0.0.1/pikachu/vul/csrf/csrfget/csrf_get_edit.php有变化

image-20240503095955257

这次我们在submit时抓包看看

image-20240503101747460

/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=girl&phonenum=111&add=China&email=lili%40pikachu.com&submit=submit

url上并没有携带认证信息,所以在用户登录状态下(其实这个链接里面是不包含用户名的,谁登录都无所谓,只要有人登录着就行,登录着的用户的信息就会被改成url提供的那些),试试改一改上面的链接,比如把性别改一改。payload:

pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=boy&phonenum=111&add=China&email=lili%40pikachu.com&submit=submit

image-20240503102513889

修改成功

因为这关session时间特别短(大概不到1min)可能会导致用户登录之后后端检测结果是用户未登录

网上有很多短链接网站可以修饰url(百度搜索“短链接”就有很多)

img

先检查是否登录,如果没登录则跳转到登录页面。如果用户已登录,就不再做任何验证,直接将前端传来的数据下到数据库了(看代码这关还有sql注入漏洞呢)。

image-20240503135816699

CSRF(post)

和上一题一样修改个人信息的时候用bp抓包

image-20240503103658906

依旧没有认证信息,有CSRF漏洞。

但是这一关是post类型,URL不再显示修改参数,所以无法再使用上述办法(即通过URL来伪造请求)进行修改,

需要我们去构造一个html,这里我们直接用burp的工具生成

image-20240503105040530

image-20240503104958487
点击用浏览器测试

image-20240503105426977

点击提交

image-20240503105558825

直接跳转

image-20240503105734765

CSRF token

登录之后,修改个人信息时bp抓包

image-20240503134834450

发现有token字段

token验证原理
CSRF的主要问题是敏感操作的链接容易被伪造
每次请求,都增加一个随机码(需要够随机,不容易伪造),后台每次对随机码进行验证

网页接受从后台发过来的token,类型不可见。将其一并提交给后台进行验证。每次刷新,后台发送过来的token都不一样,起到了防止伪造的作用。

删了token行不行,显然是不行嘟

image-20240503135302230

多抓几次包发现token是无规律的,在一定程度上防御了CSRF攻击

查看源代码

image-20240503140140500

image-20240503140106927

修改用户信息时,服务器会比较url中的token字段和session中的token字段,如果相同才能修改用户信息。

修改完用户信息之后,会用set_token()函数生成新的token,将其返回到html表单中并隐藏起来,以便下次用户修改信息时代入url。

与CSRF(Pikachu靶场练习)相似的内容:

CSRF(Pikachu靶场练习)

CSRF(get) 自己随便输点东西,回显登录失败,查看源码没发现什么 点开提示,登录进去看看 看到可以修改个人信息,我们把居住改成China,修改成功,没发现urlhttp://127.0.0.1/pikachu/vul/csrf/csrfget/csrf_get_edit.php有变化 这次我们

Web通用漏洞--CSRF

# Web通用漏洞--CSRF ## 漏洞简介 CSRF(Cross Site Request Forgery, 跨站请求伪造/客户端请求伪造),即通过伪造访问数据包并制作成网页的形式,使受害者访问伪造网页,同时触发伪造的请求而达到攻击效果的一种手段。 ![在这里插入图片描述](https://im

Django 安全性与防御性编程:如何保护 Django Web 应用

title: Django 安全性与防御性编程:如何保护 Django Web 应用 date: 2024/5/13 20:26:58 updated: 2024/5/13 20:26:58 categories: 后端开发 tags: CSRF XSS SQL Upload HTTPOnly Pa

java代码审计-某酒店管理系统

java代码审计-某酒店后台管理系统 目录java代码审计-某酒店后台管理系统1、简介2、文件上传漏洞3、CSRF漏洞4、存储型XSS 1、简介 文章只作研究学习,请勿非法渗透测试; 该系统是使用SpringMVC+Mysql搭建开发的一套中小型企业酒店后台管理系统; 这里只对源代码进行审计,第三方

DVWA CRSF

主要方式就是引诱用户去点击一个是黑客精心构造的一个html中的一个按钮(或者是引诱用户去访问一个精心构造的url),而该按钮会发生一个请求给目标服务器

深入探讨安全验证:OAuth2.0、Cookie与Session、JWT令牌、SSO与开放授权平台设计

这篇文章讨论了认证和授权的概念,并探讨了设计权限认证框架的原则。它还比较了Cookie和Session的区别,并探讨了处理分布式部署时的Session保存问题。此外,文章还介绍了CSRF攻击及其防范方法,以及OAuth2.0、JWT令牌和SSO的概念。最后,文章提出了设计开放授权平台时需要考虑的因素。

[转帖]Jmeter常用配置元件(二):“HTTP Cookie管理器”登录状态保持

在API接口测试过程中,我们需要传递cookie值作为连接状态的保持,例如登录后状态信息。通过使用Jmeter提供的“HTTP Cookie管理器”来实现。 一般情况下不需要输入什么值,就这样即可,如何想手动传递cookie值。可以请参考“渗透测试:通过Jmeter实现CSRF(Cross-site