讨论一下本地发起的 POST 能不能算为 CSRF 攻击

2018-02-06 12:20:14 +08:00
 FONG2

最近集团换了一个安全公司为网站做渗透测试,

出了一份漏洞报告:

大体内容为,黑客可以用 CSRF 方式修改用户个人信息,条件系黑客写好 post form 保存为 test.html 并把 test.html 存放在被攻击者本机,诱导被攻击者打开该文档 或将 test.html 放在我司域名服务器,诱导客户点击

我司网站已经配置了全局 csrf 过滤器,检查 refer 字段匹配白名单

本地首次请求 refer 为空,可以成功 在我司域名服务器 refer 合法,可以成功

但是??? 黑进客户电脑 /我司服务器 这种情况来说一个修改个人信息漏洞 没事吧??

7030 次点击
所在节点    程序员
45 条回复
FONG2
2018-02-06 17:45:10 +08:00
@picasso250 我就是这个想法,我做到浏览器内的防跳转保护足以,至于用户是否有足够的安全意识我保证不了
如果用户随意打开陌生文件,加 token 其实也是防不住的
husky
2018-02-06 18:20:36 +08:00
想请教下楼主准备怎么处理这个漏洞
menc
2018-02-06 18:57:19 +08:00
算典型的安全漏洞。
现在的安全渗透不像你想象的那种,一条路走到黑。现在的安全渗透流行个黑话叫 APT,讲究一个步步为营长期渗透稳扎稳打,社会工程学,翻垃圾桶,公司楼下蹭 WIFI,和公司人员拉关系,都是安全渗透的一环。很多安全案例本身就是首先黑进一个员工电脑,再进行后续其他操作。
所以是安全漏洞,要防范。

给一个建议,安全水很深,虽然是计算机行业,但是和码农不是一个领域,在他们的领域建议听他们的。
falcon05
2018-02-06 19:03:53 +08:00
本地首次请求 refer 为空,可以成功 在我司域名服务器 refer 合法,可以成功

首次 referer 为空也能成功?你这不但没 csrf token,对 referer 的检查也怪怪的。什么鬼
FONG2
2018-02-06 20:02:47 +08:00
@menc 按他们的说法加 token 了,但是就算加 token 我还是想到一百种破解。。。如果用户随便打开脚本

但是我也要说明一下,我们关键业务 都有二次鉴权的
ytmsdy
2018-02-06 20:19:01 +08:00
算啊!假如在一个内网和外网都通的环境下,在外网的网页上加入自动 post 到内网网站的 form !
jackmasa
2018-02-06 21:59:02 +08:00
@FONG2 不用本地也可以做到空 referer 的,改吧,目前 session token 是最有效的手段。
breeswish
2018-02-07 00:04:32 +08:00
@FONG2 加 token 不能破解的,除非在同域下(不信的话说个方法出来)
binux
2018-02-07 00:11:59 +08:00
按照你的说法,反正用户电脑会被黑,那用户密码也不要有了,填个用户名就让登录就行了,反正关键业务有二次鉴权。
FONG2
2018-02-07 09:09:45 +08:00
@binux 你这是以极少数否定全部哦
FONG2
2018-02-07 09:10:18 +08:00
@ytmsdy 这种会拦截的
slgz
2018-02-07 10:16:51 +08:00
@menc 这么高级的吗= =。我现在就是一个码农,但是,公司想让我转这个方向。
FONG2
2018-02-07 10:20:05 +08:00
@slgz 如果有资源学得很快的,我一年前还在上学天天打游戏。。。
经历半年和安全公司打交道,看看文档、聊聊天。常见攻击方式、原理都懂了
只是今年换了个安全公司,把本地脚本 post 也算 csrf 一时没适应过来
DOLLOR
2018-02-07 10:26:41 +08:00
如果检查 referer 的合法性,至少能防范外部网站、本地文件、DataURL 页面的跨站请求伪造。

如果是“另一个场景 黑客攻破我司服务器,放置一个内嵌 post 的 html,地址为:www.我司域名.cn/test.html 用户点击被攻击”,这明显已经不是 CSRF 了,CSRF 本意就是跨站请求伪造(注意“跨站”),而你这个例子已经是你自己站点被黑了。不是你防住了 CSRF 就能避免的。根本办法还是防止你的网站被黑。
slgz
2018-02-07 10:29:47 +08:00
@FONG2 公司,现在就是让我独立干。但是,写代码的事情也不能落下。现在,完全都是用阿里云的产品,包括服务器、web 防火墙之类的,感觉,完全接触不到,正经人。只能自学,但是,最近代码任务也重,感觉没时间去
SlipStupig
2018-02-07 10:38:57 +08:00
很多邮件客户端为了支持 HTML 解析,集成了 webkit,比如: foxmail < 7.0,只发一个邮件,都不用你点,只要你收到了就可以可以在本地执行 JS, 你说的本地场景 1,是理论可行, 至于场景 2 完全是多此一举
SlipStupig
2018-02-07 10:41:31 +08:00
场景 1:完全可以通过恶意 JS, 去控制员工机器然后去做跳板,这种 CSRF 已经不属于伪造范畴了,也是正确的废话
FONG2
2018-02-07 11:21:33 +08:00
@DOLLOR bingo 文档提供者原话就是这样举例的
我都不知道怎么跟他聊天 一个中低程度漏洞,条件要扯上服务器被黑、用户被黑,搞得我相当反感
FONG2
2018-02-07 11:25:52 +08:00
@SlipStupig 是的,我觉得,场景 1 算为 csrf 漏洞有点牵强,要 100%安全,是不是每一个请求都要来一个人机识别校验?但是漏洞确实可以这样被利用,OK,我加了 session token。
场景 2 在讨论的时候我都想爆粗了
FONG2
2018-02-07 12:26:54 +08:00
@SlipStupig 我还有一个疑问,场景一是建立在用户已登录且保持登录状态的情况下的,邮件客服端发起的请求能带上默认浏览器的 cookie 吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/428860

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX