CSRF基础
CSRF
1.CSRF基础
CSRF(Cross-Site Request Forgery),也称为跨站请求伪造,是一种常见的Web应用程序安全漏洞。它利用了Web应用程序对用户请求的信任,攻击者通过欺骗用户在受害者身份下执行恶意操作。
CSRF攻击的基本过程如下:
- 用户登录:用户在一个网站A上进行登录,网站A会为其分配一个会话(session)。
- 恶意网站:用户后续浏览其他网站时,访问了一个恶意网站B。
- 伪造请求:恶意网站B会构造一个请求,该请求会针对用户在网站A上的身份进行操作,例如修改密码、转账等。
- 伪装请求:恶意网站B使用各种技术手段,如隐藏表单、图片标签或者通过Ajax请求等,将这个伪造的请求发送给网站A。
- 用户误操作:由于用户已经登录了网站A并信任该网站,浏览器会在不知情的情况下发送伪造请求,并执行恶意操作。
CSRF攻击的危害取决于受到攻击的网站的业务逻辑和用户权限。该漏洞可能导致用户账户被盗、敏感信息泄露、非授权操作等。为了防范CSRF攻击,开发者可以采取一些措施,如使用CSRF令牌、验证Referer头、双重因素身份验证等。
漏洞危害
具体功能决定危害程度 |
2.CSRF防御
1.验证HTTP Referer字段
2.添加Token字段并验证
3.添加自定义字段并验证
3.CSRF漏洞检测
漏洞检测:
a.敏感功能缺乏csrf防护机制
- 在burpsuite中观察post请求是否带有随机Token 和 验证码
- 再判断 去掉/修改 Referer后是否仍然可以提交成功
b.网站可以允许写入csrf payload
- 测试用户头像
<img>
/ 富文本区域的<img>
<svg>
标签(可控) - 插入payload
挖掘思路:
1.是否存在token和验证码,是否可以删除或伪造
2.是否可以删除或伪造referer
3.<img>/<svg>等标签链接是否可控
常见漏洞点
1.修改密码 2.修改个人信息 3.发布文章 4.与账号相关的大部分业务功能点
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Xrect1fy's blog!