主要是文章是 RT 同学写出来的,正所谓“绝知此事要躬行”,很多事实只有验证一遍才能证实方法的存在,同时以 Blue Team 的身份重新复现攻击手法,也可以有一些之后怎么应对的思路。
首先,要去某 B 公有云官网申请一个个人账号,同时要通过个人认证,用微信扫一下就好了, 不过微信要绑定自己的银行卡且实名。这个安全措施让我不禁想到,一旦拿到攻击者的云函数,拿到账号,理论上是应该可以拿到对应绑定的姓名手机号和身份ID的。
如下图,我就已经完成认证了,认证状态是“已认证”。
然后打开云函数模块。
初次访问需要授权。
点击“同意授权”,出卖自己的灵魂。(主要是不同意也不给你用)
然后我们就可以开始创建云函数了。
首先,我们选择自定义创建的方式,函数名称可以自己随便起一个,注意函数名不要起个人 ID 或者是独一无二的名字,因为之后我们可以通过访问云 API 抓包获取函数名称的,如果是个人 ID,RT 的小同学小心我们溯源哦~
因为笔者比较喜欢 Python,所以运行环境选择了 Python,当然也可以选别的语言。正所谓 Python 有 Python 的好,其他语言有其他语言的坏嘛。
创建成功之后,需要先点进“触发管理->创建触发器”。
这时候可能就有人问了,为啥要创建触发器呢?
简单解释就是,没有触发器,你的函数只能自己访问,创建触发器之后,国内某 B 公有云会给你一个公网的 API 地址,且每次访问这个地址都可以触发一次函数。
在创建触发器的时候,仍然需要赋予云函数触发器的权限,如下图所示(红框部分)。
赋予成功之后,立马就收到了通知。
下面开始编写函数。
我们先简单写一个函数,直接返回页面。
PS:某 B 公有云云函数有自己的一套规则,一套特别麻烦的标准和规则,我建议大家不要纠结细节,直接复制我的代码就好了。
下面这个图就是, 先简单写一个返回测试数据的函数, 返回格式需要如下图这种非常严格的字段。
访问我们的云函数地址,发现可以顺利返回数据。(当然,我被函数搞了几十次的失败就不表了~)
关于请求的所有字段,比如 headers,body,status code 这些内容都集成在 Event 这个输入字段中了,详细解释的地址在下面:
Event 字段说明地址 :https://cloud.########.com/document/product/583/12513#apiStructure
我建议大家还是不要了解了,如果以后不需要搞这种基于云的服务开发,完全没有必要重新学一遍。