H

CSRF漏洞相关

HackApt-37 Team已验证会员

黑客倉庫站長

贡献: 83%

CSRF 漏洞相关​

1 定义与原理​

CSRF-跨站点请求伪造

1.1 cookie 相关​

用户登录数据包:
20210110111113.png-water_print

响应数据包:
提交用户名和密码登录后,该类的集合-cookie字段在服务器返回的数据包中携带,这是当前登录用户的cookie设置的值。
20210110111127.png-water_print

收到这些cookie的值后,浏览器将在浏览器中存储Set-Cookie字段的值。
通过修改请求数据包作为管理员的cookie的cookie,您可以在不输入密码的情况下登录到网站后端。
20210110111419.png-water_print

数据包中的cookie的值是由浏览器从本地存储中取出的,并自动填充到数据包中。如果攻击者控制用户的浏览器并窃取cookie,则浏览器将自动填充cookie。目标网站会错误地认为数据包是由管理员发送的,并将通过管理员的权限执行相关操作。

1.2 CSRF​

先决条件:数据包中的cookie的值是由浏览器从本地存储中取出的,并自动填充到数据包中。
在某些攻击条件下,攻击者使用攻击人员的身份向服务器启动请求,服务器可以正常解析并返回结果。
原理:一般而言,攻击者将用户浏览器的请求发送到用户已认证和访问的网站,从而导致目标网站接收并错误地认为这是用户的真实操作和执行命令。
20210110111625.png-water_print

20210110111911.png-water_print

发生条件:
攻击者在现场登录
您必须在与网站的同一浏览器中打开黑客提供的链接
背景身份验证并不严格(例如,除cookie以外,没有其他身份验证)

2 防御​

2.1 HTTP Referer 限制​

一个站点可以限制其引用器字段的某些敏感操作的价值,例如在网站转移资金时:
http://bank.example/tust?帐户=bobam=1000000 for=mallory
用户登录后,必须在本网站的页面上执行传输操作,因为参考器字段只能仅限于此站点。

2.2 Token​

CSRF成功的原因是该网站依靠Cookie来识别用户的身份,因此攻击者可以直接使用用户的Cookie来传递安全验证而不知道用户的密码。
在HTTP请求中以参数的形式添加随机生成的HTTP令牌。接收用户请求后,服务器将验证令牌。如果没有令牌或令牌不正确,它将被视为攻击,并将直接丢弃。
获取请求:http://url?csrftoken=tokenvalue
发帖请求:输入类型='隐藏'名称='csrftoken'value='tokenvalue'/
信息
例如,攻击者可以在网站上发布其服务器的地址。当普通用户单击地址时,该站点将在地址后面添加一个令牌,这将导致令牌泄漏。
因此,有必要区分站点的内部链接和外部链接。仅在内部链接中添加令牌,并且为外部链接添加了不添加令牌。
 
后退
顶部