一、
首先声明,这一篇文稿是整活项,不建议用于正常的闯关,因为推测会拿不到高级的flag。
其次声明,这几篇文稿的漏洞都是个人首先发现,不存在盗用他人的情况,同时也鼓励更多志同道合的朋友们去钻研、去探讨。
二、
(1)准备好dvwa靶场,这是作者已经修改好的文件参数,不会的伙伴可以对照修改
(2)进入DVWA网站,账号为admin和密码为password
(3)将安全等级调整为impossible(这样才有整活的意思)
(4)选择关卡CSRF(选择这一关的原因:这一关的通关条件为获取账户密码,使用网站漏洞攻击表现最为直观)
我们将原本的密码password修改为234567,利用burpsuite对网站用户数据进行抓包
(5)注意要切换为社区版进行下载,这是免费的。
下图为抓包界面,代码第一条为抓到的用户密码,cookie那一条为用户安全等级与session值,注意这两条都非常重要
(6)进行抓包修改
首先将抓到的新密码234567修改为123456
其次修改cookie位置安全等级:impossible为low
然后进行放包
(7)得到结果:密码修改成功,此时的密码为123456,这里并不直观,我们去观察数据库
(8)进入dvwa数据库,观察表数据得到加密的password
(9)将加密的password进行解密,因为使用的MD5加密,所以要通过MD5解密,得到结果123456
三、结论
仅仅通过简单的方式就成功的修改了密码,而且是在impossible的难度下,可以见到dvwa的网站漏洞还是很明显的。
但是细心的朋友也能发现,当impossible调整为low级别后实现放包,dvwa的CSRF界面会变为low级别的页面,这涉及到dvwa网站底端代码利用安全等级进行代码调取,所以当在durpsuite中调整了安全等级就会使得你面对的难度被调整为low,界面也会回到low。
当然也会有小伙伴觉得这样的攻击没有用处,但是如果假设在CSRF中用户的密码为flag,那么你最终的结果就是获得了这个flag,而且是利用了本身网站的漏洞并不算违规。
同时作者也测试过了,dvwa的所有关卡都可以用这种方法攻击,当然并不推荐,首先是背离了靶场的初衷,其次是除CSRF外在其他关卡中只能获取第一关的flag,这对于攻击者而言没有意义。
最后也非常感谢各位能看到这,这一篇是为个人整活项目,如果有伙伴喜欢可以沿着这个思路继续研究。