get型CSRF,
所有的参数都是url提交的,这种是比较好利用的
攻击者只需要能伪造出来链接,然后把对应的参数改成想要的参数,发给登入态的目标,他只要点击就完成啦。
开始我们的实验
先点下提示,登入
修改下个人信息,设置代理,网页提交个人信息,并且抓包,查看下后台有没有做防CSRF的措施,比如token
发现get请求并没有向后台发送token参数,说明后台是没有做防CSRF的措施的,同时又是get请求提交的。
GET /pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=giao&phonenum=12345678922&add=usa&email=lucy%40pikachu.com&submit=submit
这样的话攻击者只需要拿到这个链接,(自己注册个账号,改下地址就能拿到这个链接)
之后,比如说想改目标的收货地址,只需将url里的地址改完,伪造下发送给目标就行
比如说下面这个就是攻击者伪造的链接:
192.168.43.116/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=giao&phonenum=12345678922&add=wogiao,yigiao&email=lucy%40pikachu.com&submit=submit
lucy目前正在这个购物网站,且收货地址是河北。而这时收到啦攻击者发的链接,而她去访问啦一下
当她敲下回车的那一刻,个人信息就已经修改了
post型CSRF
这个时候,它这个修改个人信息的请求,是通过post方式提交的,所有的参数是在请求体里传输的,也就是说没法通过url来伪造这个请求。
利用方法我们之前的xss一样,伪造一个站点(在站点上做个表单),让lucy去点我们这个恶意表单的url,通过这个url去向存在CSRF漏洞的页面提交post。