DVWA-CSRF

简单版:

  1.查看代码:

DVWA-CSRF

  由代码可知:
        代码从表单中获取新的密码信息,对照了两次输入的一致性,
        还调用mysql_real_escape_string()函数对其进行了SQL的防护,
        但没有对CSRF漏洞进行防护,
        同时,我们也可以得知low难度的源代码中,并没有隐藏的token,

  2.做法:
        (1)我们先尝试着去改密码;发现url上出现了我们改的密码参数:

DVWA-CSRF

        (2)接下来猜想:
                    如果直接改变url上的参数,在进行访问会不会修改密码;

DVWA-CSRF

  根据提示密码已经被修改;

中等版:

  1.查看代码:

DVWA-CSRF

  Medium级别的代码检查了保留变量HTTP_REFERER(http包头的Referer参数的值,表示来源地址)中是否包含SERVER_NAME(http包头的Host参数,即要访问的主机名),希望通过这种机制抵御CSRF攻击。
  过滤规则是http包头的Referer参数的值中必须包含主机名(这里是localhost)
  我们可以将攻击页面命名为127.0.0.1.html(页面被放置在攻击者的服务器里,这里是127.0.0.1)就可以绕过了

  2.执行操作:
  因此,用burp抓包发送repeater,将Referer地址改为http://攻击者服务器地址/dvwa/被攻击ip地址.html格式,如图:

DVWA-CSRF
DVWA-CSRF

高等版:

  1.查看代码:

DVWA-CSRF

  2.代码审计:
        由此可知:服务器在接受请求时会检查token;检查token参数是否相同;

  3执行操作:
  (1)在这理用burpsuite来绕过token

DVWA-CSRF
DVWA-CSRF
(2)打开插件设置host以及name
DVWA-CSRF
(3)发送到repeater,点击go查看,发现密码修改
DVWA-CSRF

上一篇:web攻击文章总结


下一篇:web ajax 排错流程