eveplw

导航

19.CSRF跨站请求伪造

一.概述

1.定义

Crose-Site Request Forgerry,跨站请求伪造,攻击者利用服务器对用户的信任,从而欺骗受害者去服务器上执行受害者不知情的请求。

在CSRF的攻击场景中,攻击者会伪造一个请求(一般为链接),然后欺骗用户进行点击。用户一旦点击,整个攻击也就完成了。所以

CSRF攻击也被成为“one click”攻击。

2.于XSS的区别

(1)XSS是利用用户对服务端的信任,CSRF是利用服务端对用户的信任。

(2)XSS是将恶意代码植入被攻击服务器,利用用户对服务器的信任完成攻击。而CSRF是攻击者预先在自己攻击服务器的页面植入恶意

代码,引诱受害者访问,在受害者不知情的情况下执行了恶意代码。而攻击服务器是独立的域名或ip地址。

3.攻击要点

(1)服务器没有对操作来源进行判断

(2)受害者处于登录状态

(3)攻击者需要找到一条可以修改或获取敏感信息的请求

二.攻击场景

(1)Alice在购物网站X上修改个人资料。正常情况下修改资料的第一步是登录个人账号。Alice登录后对相关参数进行修改:

 http://www.x.com/member/edit.php?name=Alice$phone=133xxxxxx&add=上海市XXX

这个请求跟正常请求时一样的,所以点击后便修改了资料

 

DVWA中的CSRF进阶

一.Medium级

1.按照Low级操作复现

(1)按照相同的步骤完成CSRF操作

(2)在攻击服务器的URL地址中点击按钮,提示:That request didn‘t look correct

2.分析问题原因

在页面中查看源码,发现

if(stripos($_SERVER['HTTP_REFERER']),$_SERVER['SERVER_NAME']) !== false)

源码会判断http协议中的referer字段

解决方案:

在攻击网站上创建懿个新的HTML页面,并命名为:change_192.168.19.130.html,内容为:

<a href="http://192.168.19.130/dvwa/vulnerabilities/csrf/?
password_new=1234$password_conf=1234$Change=Chang">
<img src="http://192.168.19.130/dateme.gif"/></a>

此时referer变成

 

posted on 2022-09-11 19:42  eveplw  阅读(38)  评论(0编辑  收藏  举报