OSRF与CSRF攻击与防御思路 – 作者:Pretty

OSRF(on-site request forgery) 本站点请求伪造

利用存储型XSS进行攻击的有效载荷,有时在存储型XSS漏洞不存在的情况下,OSRF攻击依旧存在。

若用户提交的数据能被其他用户看到,可以通过修改URL,使得查看信息的任何用户提交一个本站点的GET请求

例如:在type参数中,提交以下值,会使查看信息的任何用户提出一个创建新用户的请求:

./admin/newUser.php?username=apple&password=0121&role=admin#

渗透测试步骤:

  • 如果一个用户提交的内容可以被其他用户看见,且测试员检测存储型XSS漏洞不存在,那么在此位置,可以检测应用是否会受到OSRF攻击
  • 漏洞经常出现在用户提交的数据被插入到超链接目标或者返回到页面的URL中,可以通过过滤其他字符(/.\’?=*&-等),可以杜绝大多数攻击

CSRF (Cross-site request forgery)

当用户登录的网站会话还有效时,如果点击了攻击者发送的恶意链接,则可能受到CSRF攻击。

攻击条件:

  • 服务器与服务端建立了链接
  • 用户访问了URL

攻击场景:

  1. GET型请求

构造链接诱导用户点击

设置网页:只要用户点击网站之后就能自动执行某些操作(转发博客等)

  1. POST型请求

可以通过burp suite 构造CSRF POC,点击”text in browser”,burp将自动打开浏览器使用这个poc进行攻击

预防跨站请求伪造

  1. 使用二次验证

例如:用户执行一个操作时,发出一个提示框,用户点击确认后继续进行操作

  1. token认证

HTML中的令牌

  • 用户登录时,产生一段随机的字符串,存储在session中
  • 在向session赋值时隐藏标签,type设置为hidden,value为session中的值

<input type=”hidden” name=”token” value=”xxx” >

  • 提交后,将服务器和session中的值进行对比,如果相同进行下一步操作
  • 定时更新token的值

来源:freebuf.com 2020-09-10 22:16:34 by: Pretty

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论