跨站请求伪造
low级别
分析页面源码发现对用户两次输入直接比较是否相等之后就没有别的验证了,然后直接修改数据库密码
随便改个密码看看,发现get方式的明文传输,那不是可以伪造个链接在用户登系统时骗他点就能改他密码。
直接在url链接里改密码验证是否存在csrf,发现直接执行url也能改密码,也可以伪装一个恶意页面通过img标签中的src属性来加载CSRF攻击利用的URL,并进行布局隐藏,让用户访问从而达到改用户信息的目的。
medium级别
分析源码发现多了个校验referer浏览器来源包含主机名的,就是说得想办法让referer里得包含主机名
将low级别的文件名改为目标主机地址,放在一个搭建好的站点上让受害者访问就可以修改成功了
high级别
分析源码发现有个token的生成和验证
只能想办法获取它的token值,一般都是写个脚本,但是我不会啊,只能用High级别的XSS漏洞获取token(因为这里的XSS注入有长度限制,不能够注入完整的攻击脚本,所以只获取 token)利用<iframe src="…/csrf/" οnlοad=alert(frames[0].document.getElementsByName(‘user_token’)[0].value)>获取token
在这里插入图片描述
最后用和前面一样的方法攻击
总结:
原理:对用户的操作没有限制,没有验证完全referer字段,虽然使用了token,但没有在做敏感操作时再次验证密码
方法:伪造恶意链接,搭站点伪造referer,利用其他漏洞获取token。
防御方法:采用敏感信息再次输入密码认证机制,增加对referer的审查,对用户的操作不在当前页面应该有请求验证。
采用敏感信息再次输入密码认证机制,增加对referer的审查,对用户的操作不在当前页面应该有请求验证。