vlambda博客
学习文章列表

CSRF 1~3 | 融洽协作不香吗

小目标:2021-02-25 开始日拱三年七百篇 #59/720,迭代三疯白帽笔记,入门白帽。


1. 日拱学习

  • 地铁看书:「金庸作品集」4301/26907。

  • 技术学习:WebGoat Lessons 22/32。

  • 商业学习:生财日历 2021 共读营 6.1~6.2。



2. 日拱白帽

WebGoat 今天课是 (A8:2013) Request Forgeries -> Cross-Site Request Forgeries 的 1~3 节。


第 1 节,介绍 CSRF,并简要说明与 XSS 的区别。


第 2 节,CSRF 的一个简单的 GET 请求示例。


第 3 节,很基础的 CSRF 练习。


点击上边的「提交」按钮,跳转到一个 URL:

http://127.0.0.1:8089/WebGoat/csrf/basic-get-flag


响应:

{

 "flag" : null,

 "success" : false,

 "message" : "Appears the request came from the original host"

}


这个提示很明显了,其实题目也说了,需要你在一个外部网站(就是不要在本站内触发)访问这个链接,才能拿到 Flag。


前提是你已经登录了 WebGoat,然后在同一个浏览器的其他站里访问 WebGoat 的这个链接获取到东西。这其实就是 CSRF。


所以思路也比较简单。我一开始看下边提示本题可以用 WebWolf,但想半天没想到怎么用。


WebWolf 也就一个 landing 可以用:

http://127.0.0.1:9090/landing


这个页面在浏览器打开,就是个空白,里边啥元素也没有。所以直接用貌似也不大行。


联想到上节的网银的例子。所以我在 WebWolf 的 landing 的页面里,把 basic-get-flag 这个请求放到页面里了,替换掉了 body 里默认的 audio 元素:

<body> <a href="http://127.0.0.1:8089/WebGoat/csrf/basic-get-flag">Test3Mad</a></body>

这一步直接在 Chrome 的 Elements 页签里,右键即可操作。选中元素,右键选择「Edit as HTML」,贴进去你的代码,在别的地方点下鼠标就完成了。


然后页面上就出现了可以点击的「Test3Mad」,点击它,就跳转到那个链接,但是响应报错,表示这个链接不支持 GET 方法。


果断将题目中的那个「提交」按钮的源码 Copy 到 landing 里,landing 里新 body 如下:

<body> <form accept-charset="UNKNOWN" id="basic-csrf-get" method="POST" name="form1" target="_blank" successcallback="" action="http://127.0.0.1:8089/WebGoat/csrf/basic-get-flag"> <input name="csrf" type="hidden" value="true"> <input type="submit" name="submit"> </form></body>


这次点击 WebWolf 的改造后的 landing 里的「提交」按钮,Biu…… Flag 拿到了,我这里是 11316。


其实,最后我也看了下提示。自己造个网站,在同个浏览器打开也一样的。



3. 日拱唠嗑

融洽协作不香吗?


我们把 Android SDK 这块复杂性封装后,提供给业务部门用。因为它本身就复杂性就比较高,难免多少会出些问题。同时我们跟业务合作的时候,业务方也会多少出现些问题。


以前我们各方,因为公司规模小些、人员也稳定些,几个老大合作的久些,坐下来聊的机会也多些。主观上相互理解就更多些,同时也会积极及时地向各自团队内部,去传达这种相互理解,那时候整个合作中,虽有磕绊,但整体都还融洽。


如今,公司规模大了,公司在新的竞争下目标更高,相应规模也变大了,人员流动性也变大了。各业务方与各技术中台之间的沟通,感觉就例行公事了,相互理解的变少了。我感觉整体合作氛围稍差了些,作为中台负责人或中台一线同学,都比以前难受。


有人跟我说,新的目标和新的环境下,中台部门可以将自己往市场化的方向去考虑。市场化环境下,面对的客户千姿百态,得想着怎么去打造自己的服务标准,去适应不同客户。


我虽觉得有道理,但还是隐约觉得,市场化的心态和服务调整,并不一定能解决我说的问题。


首先,市场化了,服务方与被服务方,也应该是合作关系,相互之间还是应该多多互相理解。干啥都不容易,被服务方不容易,服务方也不容易。


其次,服务方并没有停止过提升自己底层产品质量和服务质量,并不是市场化之后,才会想着去提升。起码我们团队是一直在努力提升自己的产品。


再次,如果市场化了,服务方也可以挑选被服务方。这话虽然可能政治不正确,但其实对于服务方的立场,我觉得应该把更多精力放在服务优质客户那。当然,反过来,被服务方也可以挑选服务方。不过,这样就更好了,既然是相互挑选的,精诚合作,还是及时解除合作,大家都会活的更容易些。


那么以后,我们怎么将合作氛围恢复融洽呢?


简单思考了下:

  • 很多新业务团队,规模比较大,他们老大没精力去沟通。

  • 我自己也没太多精力,去跟每个业务团队的一线主管去沟通。

  • 所以我部门内部一线主管,得培养这样的意思,频繁去跟各自合作对象沟通。

  • 或者及时向我反馈,我来组织沟通。