原理CSRF漏洞是指利用受害者尚未失效的身份认证信息( cookie、会话等信息),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况下,以受害者的身份向服务器发送请求,从而完成非法操作(如转账、改密、信息修改等操作)。形成原因
CSRF的形成原因主要是由于Web应用程序没有充分验证请求来源的问题。正常的请求必须携带正确的Cookie信息,而攻击者可以构造一个恶意网站,在其中包含一个发送CSRF请求的链接或表单,当用户访问这个网站时,浏览器会自动发送CSRF请求到被攻击的网站,从而实现攻击。
防御措施
- 随机令牌:在表单中增加一个随机生成的令牌(token),每次提交表单时都需要提交该令牌,服务器验证令牌是否正确,从而保证请求来源的合法性。
- Referer验证:通过检查HTTP头部中的Referer字段,判断请求来源是否合法。但是该方法并非绝对可靠,因为发送请求时可能会篡改Referer字段。
- Cookie:设置cookie的SameSite属性,值为Strict或Lax,可以限制第三方网站访问该cookie,从而避免其他网站利用cookie发起CSRF攻击。
- 双重认证:采用双重认证机制,例如使用短信验证码、Google Authenticator等方式,增强用户身份验证,防止受到CSRF攻击。
- 请求验证:在服务器端对所有请求进行验证,判断请求是否合法,例如判断请求头是否包含特定的自定义HTTP头字段,或者验证请求参数是否合法等。
突破方式
- Session劫持:攻击者通过某些手段获取用户的Session ID,然后模拟用户的身份访问服务器,从而完成攻击。
- 跨域POST:攻击者以受害者身份向其他网站发起POST请求,通过头部设置绕过同源策略(Same-Origin Policy),达到攻击目的。
- Clickjacking:攻击者在一个网站上通过iframe嵌套形式,覆盖另一个网站的操作界面,使用户执行不知情的行为。
- XSS攻击:攻击者将恶意脚本注入到目标网站或者通过链接传递给受害者,当受害者访问包含恶意脚本的网页时,攻击者就可以利用受害者的权限发送恶意请求,完成攻击。
【Low】级别
在csrf的界面,点击Test credentials,输入默认的账号和密码(admin,password),点击登录,提示密码有效。
修改密码界面输入新的密码,再使用工具burpsuit抓包,抓到包后,点击右键,选择Engagement tools,点击CSRF Poc,最后会生成一段payload。
复制这段html代码,把它单独存下来,再将这个html文件的两个密码都改成123456,并在浏览器里面打开。
点击submit request后会跳转回dvwa,这时再次验证原来的密码,会发现密码已经失效。
输入更改后的密码(123456),验证成功,证明crsf修改了用户密码。
【Medium】级别
这里查看源码,与刚刚的low等级比较发现,这里只有一个等级发生了改变,即在传入密码和确认密码参数前先进行了一个if语句的判断,判断里面的内容主要是验证这个访问请求是否从dvwa网站本身发起的,如果不是这个网站发起的请求,后面的操作就不执行。
源码是通过referrer这个字段的参数进行判断的,通常情况下在增加referrer验证时就是网站本省当前页面的ip地址,这里需要抓包看看相关信息。
首先,修改密码为10086(这里密码没有要求,随便设置一个),修改密码成功,这里的网站如下图url栏中所示。
将刚刚url栏中的网址复制到一个新的网页打开,发现change下面有提示,大致意思就是请求的来源不正确。
利用工具burpsuit抓包分析有:
对于最开始更改密码成功的页面抓包,可以看到有referer信息。
那解决办法就将刚刚页面没有问题的referer信息复制到第二个页面中,再返回给浏览器响应,可以看到密码已经更改成功。
【High】级别
首先查看源码,发现该级别加入了token机制,当用户访问修改密码页面修改时,服务器会返回一个随机的token,向服务器发送请求时,需要提交token,服务器接收请求时会先检查token,只有token正确,才会去处理响应请求。
利用burpsuit工具抓包可以看到主机名和token值。
通过存储型的XSS获得token,这里name长度限制抓包解决,然后将name值设为
然后回到csrf界面,修改密码,将url栏中的token值改为刚刚得到的新token值。即把:
http://www.dvwa.com/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change&user_token=7732854e8c3912dd284538ed7533fe51#
改为:
http://www.dvwa.com/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change&user_token=3914162e7106cc2b9dc4905883a2b636#
然后修改密码成功。文章来源:https://www.toymoban.com/news/detail-496568.html
然后去登录验证,修改密码成功。文章来源地址https://www.toymoban.com/news/detail-496568.html
到了这里,关于DVWA靶场之CSRF通关详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!