DVWA —— CSRF分析

Low

csrf是一个修改密码的界面

DVWA —— CSRF分析

Low级别的源码如下,新密码和确认密码通过GET传参,并未做任何过滤

DVWA —— CSRF分析

尝试修改一次密码

DVWA —— CSRF分析

若用户点击了被攻击者修改password_new和password_conf参数的url,则密码就会被修改

由于这个url的参数过于明显,攻击者还可以通过构造钓鱼界面来进行攻击

 

Medium

Medium等级的源码如下,利用stripos()来检测HTTP的REFERER头中是否含有SERVER_NAME(大致等同于http头中的Host)

DVWA —— CSRF分析

因此攻击者可以构造一个钓鱼界面放在自己的服务器,将该页面的文件名修改为服务器端的ip或域名,就可以让Referer头中包含Host的内容

这里使用的是本机127.0.0.1

DVWA —— CSRF分析

当用户打开该页面后,自己的密码就被重置

DVWA —— CSRF分析

 

进入phpmyadmin后可以看到密码被修改为url对应的123456

DVWA —— CSRF分析

DVWA —— CSRF分析

 

High

High级别源码如下,该级别加入了token机制来防御csrf

DVWA —— CSRF分析

当修改密码时可看到url中新增了token参数,理论上攻击者可通过XSS来获取用户的token,进而构造url来进行修改密码

DVWA —— CSRF分析

 

 

Impossible

此时代码中不仅有token机制,并在用户修改密码时要求输入原密码,这就导致攻击url无法构造

DVWA —— CSRF分析

 

上一篇:设计模式2-工厂模式


下一篇:DVWA--SQLInjection