Pikachu漏洞练习平台之CSRF(跨站请求伪造)

本质:挟制用户在当前已登录的Web应用程序上执行非本意的操作(由客户端发起)

耐心看完皮卡丘靶场的这个例子你就明白什么是CSRF了

CSRF(get) 

使用提示里给的用户和密码进行登录(这里以lili为例)

Pikachu漏洞练习平台之CSRF(跨站请求伪造)_第1张图片

登录成功后显示用户个人信息,并且提供修改个人信息的链接

Pikachu漏洞练习平台之CSRF(跨站请求伪造)_第2张图片

点击修改个人信息,这里我们可以修改:性别、手机、住址、邮箱

Pikachu漏洞练习平台之CSRF(跨站请求伪造)_第3张图片

尝试对用户信息进行修改

Pikachu漏洞练习平台之CSRF(跨站请求伪造)_第4张图片

点击submit提交后,发现用户信息已经被修改

Pikachu漏洞练习平台之CSRF(跨站请求伪造)_第5张图片

看到这里你肯定还是没明白CSRF到底是啥,攻击体现在哪儿

我们使用burpsuite来对请求进行抓包

Pikachu漏洞练习平台之CSRF(跨站请求伪造)_第6张图片

提取url

/vul/csrf/csrfget/csrf_get_edit.php?sex=sex&phonenum=phone&add=address&email=email&submit=submit

拼接好完整的URL(我这里是在自己服务器上搭建的靶场)

http://snert.vip:10005/vul/csrf/csrfget/csrf_get_edit.php?sex=sex&phonenum=phone&add=address&email=email&submit=submit

访问这个url,即可实现对用户信息的修改

注意:实际加载出来的URL里面是看不到这些信息的(姓名、手机、地址等)

Pikachu漏洞练习平台之CSRF(跨站请求伪造)_第7张图片

Pikachu漏洞练习平台之CSRF(跨站请求伪造)_第8张图片

我们对payload进行修改

http://snert.vip:10005/vul/csrf/csrfget/csrf_get_edit.php?sex=SSS&phonenum=NNN&add=AAA&email=EEE&submit=submit

访问该url

 

可以看到用户信息被再次修改 

Pikachu漏洞练习平台之CSRF(跨站请求伪造)_第9张图片 

回到csrf的本质上:挟制用户在当前已登录的Web应用程序上执行非本意的操作

换句话说,这个修改的操作只能是用户本生自己去进行的(客户端发起的请求),只是说用户他自己并不知情,他不知道自己只是点了一个链接竟然就修改了自己的信息或者密码。

比如我们换一个浏览器(没有进行过登录没有cookie信息缓存),并尝试访问上一个URL

http://snert.vip:10005/vul/csrf/csrfget/csrf_get_edit.php?sex=sex&phonenum=phone&add=address&email=email&submit=submit

回显的是要求我们登录的页面

Pikachu漏洞练习平台之CSRF(跨站请求伪造)_第10张图片

假如我不知道lili的密码,我只有vince的密码 

Pikachu漏洞练习平台之CSRF(跨站请求伪造)_第11张图片

使用vince的账号登录后,再次访问上述url看看会怎样

这是vince原始的信息:

Pikachu漏洞练习平台之CSRF(跨站请求伪造)_第12张图片

访问

http://snert.vip:10005/vul/csrf/csrfget/csrf_get_edit.php?sex=sex&phonenum=phone&add=address&email=email&submit=submit

发现被修改掉的是vince自己的信息

Pikachu漏洞练习平台之CSRF(跨站请求伪造)_第13张图片

也就是说:登录的用户是谁,产生的效果(payload)就作用于谁

至于怎样构造这样的URL,如果我们在某个平台有自己的账户,我们是不是就可以通过抓包来知道了呢,从而构造出恶意的URL,让其他用户点击,就可以实现对其他用户信息的修改。

当然,上面的这种URL看着太明显了,我们需要对恶意的URL进行一定处理,不被受害者察觉,

最简单的方法就是进行短链接处理(有很多的在线网站),比如对

http://snert.vip:10005/vul/csrf/csrfget/csrf_get_edit.php?sex=SSS&phonenum=NNN&add=AAA&email=EEE&submit=submit

处理之后就变成了

http://mrw.so/6vyWU4
http://i7q.cn/5xoQ1t
http://mtw.so/6vMlGu

Pikachu漏洞练习平台之CSRF(跨站请求伪造)_第14张图片

这还能看出来是进行密码或者信息修改的操作吗?

当用户随便访问了其中的一个链接,就会对用户信息的进行修改。

Pikachu漏洞练习平台之CSRF(跨站请求伪造)_第15张图片

有些平台的短链接需要进行跳转,不建议使用这种

https://dlj.li/2vq1G

Pikachu漏洞练习平台之CSRF(跨站请求伪造)_第16张图片

Pikachu漏洞练习平台之CSRF(跨站请求伪造)_第17张图片

目前来说,对抗CSRF攻击最简洁而有效的方法就是使用验证码。CSRF攻击是在用户不知情的情况下构造了网络请求,而验证码则是强制要求用户与应用程序进行交互,才能完成最终请求。

关于CSRF的基本介绍就到这里,希望这篇博客能让你了解到什么是CSRF。

你可能感兴趣的:(web,CSRF,csrf,前端,web安全)