CSRF/跨站请求伪造

环境搭建

源码链接:https://pan.baidu.com/s/1V6bUrpQaMWgi4KG4TnNcHA
提取码:8yj0
本地搭建 在集成环境phpStudy下,将源码放在WWW文件夹中,打开浏览器url中输入:http://127.0.0.1/pikachu即可。

CSRF(get)模块

点击进入模块,登陆进入在这里插入图片描述
账号密码在提示框中显示。在这里插入图片描述
进入显示hello,vince,欢迎来到个人会员中心在这里插入图片描述
我们单击修改个人信息,设置代理抓包看一下。源数据原封不动点击提交。
在这里插入图片描述
通过burpsuite进行抓包将修改相关个人信息的GET请求截获,我们可以看到传参方式为get,表单中的信息全都显示在url中。GET/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=boy&phonenum=hahaha&add=chain&email=vince%40pikachu.com&submit=submit
可见后台没有做任何的防范CSRF的措施。这时候我们可以构造跨站请求伪造攻击。

构造url/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=boy&phonenum=1777777777&add=luoyang&email=hahaha%40pikachu.com&submit=submit。
点击进入显示在这里插入图片描述
这样就把vince的信息给修改了。

举个例子:A想盗取B的xx网站的密码,A进入xx网站,点击自己的修改密码选项,填写提交,发现url中显示【http://www.xxx.com/edit.php?新密码=123456&确认密码=123456&Change=Change】
然后把这个网址发给已经登陆xx网站的B,如果B点击进去,那么他的密码就会被改成123456。
当然这个例子中进行的修改是很容易暴露,因为url中的信息都能看到,有点安全意识的人应该都不会点进去··,所以,我们来介绍一下POST传参模式的CSRF.

CSRF(post)模块

跟GET一样,首先进行登陆,修改一下个人信息,并到Brup Suite上进行抓包,POST请求下已经不能通过修改URL来借用用户权限,那么和反射型XSS(POST)的方法相同,需要自己做一个表单,再返回到提交页面来完成修改。
这里我们可以用Brup Suite自带的实现检测CSRF漏洞的功能,在对Request包右键>Engagement tools>Generate CSRF PoC,其会自动生成一个HTML文件。在这里插入图片描述
生成的html网页源码如下:
在这里插入图片描述
我们来测试一下,在桌面新建一个html文件,把代码写进去,然后打开。
在这里插入图片描述
点击提交请求按钮看到:在这里插入图片描述
信息已经修改,但是url跟正常修改个人信息一样。

CSRF(Token)

进入修改信息界面审查元素发现:在这里插入图片描述

 <input type="hidden" value="351995d22eca4b4e1e361905882" name="token">
 表单中添加信息 类型为隐藏 值为351995d22eca4b4e1e361905882  命名为token  令牌

token的值并不是固定的,每次请求都会刷新一个token,而且也是有时间限制的,过了规定时间,token就会失效。

token防止跨站请求伪造的原理:在浏览器访问网站A时,网站A设置cookie会增加随机值token,这个值是随机的。返回给浏览器时,cookie会储存在浏览器,同时会把token传给表单里面的隐藏字段。所以当浏览器用自己的表单时会自带token,网站A取到这个值和cookie里的token一致就通过。而网站B里面的表单没有这个值,所以不能通过,这样就阻止了恶意攻击。非表单也是这样的原理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值