我们来看csrf版块
先登录一个账号看一下
我们看到他的个人信息了,接着我们退出登录,登录到另外一个账号里面
我们修改一下个人信息
在修改提交的时候进行抓包操作
从提交的请求来看,后台没做CSRF token,同时也是通过GET请求来提交修改信息,我们拿到这个,修改一下,然后让vince点击就好,我们构造的URL中把地址add改为cn。vince一点击就修改了地址。
/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=boy&phonenum=15988767673&add=nba+lakes&email=kobe%40pikachu.com&submit=submit
我们登录到那个账号,然后访问此页面后查看个人信息的变化吧
访问链接
成功更改个人信息
如果是POST型的,所有参数在请求体中提交,我们不能通过伪造URL的方式进行攻击
攻击者可以搭建一个站点,在站点上做一个表单,诱导vince点击这个链接,当用户点击时,就会自动向存在CSRF的服务器提交POST请求修改个人信息。
在我们的bp中有一键生成csrf的功能,我们直接使用即可
复制一下我们的代码到自己的html网页中
然后我们登录第三个人的账号进行访问这个页面
访问我们伪造的页面
点一下按钮试试
我们发现我们的资料直接被修改了
我们再看token的
CSRF的主要问题是敏感操作容易被伪造,我们可以加入Token让请求不容易被伪造,每次请求,都增加一个随机码(需要够随机,不容易被伪造),后台每次对这个随机码进行验证我们进入Pikachu平台的CSRF(token)页面并登录,我们可以看一下这个GET请求。
跟前面比较,这里多了一个Token,如果后台对提交的Token进行了验证,由于Token是随机的,我们就无法伪造URL了,对于token,暂时还没有什么办法通过
所以,使用token是一个很好的防御CSRF攻击的方法。