微信小程序的修炼五脉(降妖)
2022-7-14 00:2:5 Author: 白帽子(查看原文) 阅读量:22 收藏

声明

由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测以及文章作者不为此承担任何责任。

雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。

No.1

前言

历经寻魔、访道、如意、修仙之后来降妖,这也是本微信⼩程序渗透专题的最后⼀篇⽂章了。有攻既有守,前四篇为⼤家带来的都是攻,收尾作者不妨同样站在“⽆恶不赦”的攻击者⻆度浅谈⼀下微信⼩程序的⼏个防守要点。敌⼈所讨厌的便是我们需要注意的,如何有效的刺中攻击者的痛处在防守中⼗分的重要。安全在⼀些时候是⼀个成本的问题,防守成本和攻击成本是成正⽐的,在这种情况下不能⼀味地增加防守成本,要在防守成本有限时尽可能加⼤⽐率使攻击成本成倍增⾼。

No.2

道高一丈

保护⼩程序安全应从源码安全、接⼝安全、后台安全、平台安全四⽅⾯⼊⼿。

源码安全: 

     由于⽬前微信⼩程序对IOS/安卓客户端上的⼩程序包并未做任何加密,所以⼩程序的源码可以轻松被还 原出来。并且在本⼈看来加密⼩程序也是完全没有必要的,毕竟全部都是静态的本地的资源,即使加密 了花点时间照样逆向出本地代码。那么既然源码终究是要被看⻅的,使⽤代码混淆和类似Webpack打包 ⼯具来开发⼩程序将会是⼀个不错的选择。对于混淆以及打包之后的源码,可能能直接劝退⼀部分渗透 ⼩萌新或者能延⻓渗透测试者的分析时间,虽然⽆法百分百保护源码但能增加攻击成本这⼀点就⾜够 了。另外请在发布⼩程序时在设置中勾选“上传代码时⾃动压缩混淆”和“上传时进⾏代码保护”,虽然这样 做只会并没有多⼤⽤处,但⼼⾥安慰还是有的,和买《五年中考三年模拟》却从来不做⼀个道理。

另外设置⼩程序⾃动/⼿动埋点也是⼀个⾮常不错的选择,好的埋点可以监控到⼩程序的各种异常。它好 ⽐是⼀个没有交互的蜜罐,⼀个不熟悉您程序的陌⽣⼈在还原完源码之后⼀次性⼲净利落的把埋点代码 全部去除是基本不可能的,难免会遗漏⼀些点,那么当他将⼩程序导⼊⾄开发者⼯具运⾏时,就像我们 对⼀个不熟悉的且载有蜜罐的内⽹⼀顿扫描⼀样,必然会触发埋点(蜜罐)。普通⽤户是不可能将⼀个微 信⼩程序放置在开发者⼯具上运⾏的,若收到了⼩程序在开发环境中运⾏的数据报告,并且其IP不是⾃ ⼰公司的出⼝IP那必然是有攻击者在对您的⼩程序做渗透测试。

接⼝安全: 

推荐使⽤AES+RSA的⽅式对数据进⾏加密,并且结合时间戳对数据包进⾏签名(具体详情本⼈已和⾕歌 达成战略合作,⼤家直接在⾕歌搜索即可获取多套成熟⽅案)。如此⼀来便可保证传输数据在攻击者没 有解包⼩程序之前⽆法被读取/修改,⽽且这样做真的挺恶⼼⼈的也从侧⾯增加了攻击成本。保证了传输 过程中的相对安全,接下去便是不能有SQL注⼊、⽔平越权这样的漏洞存在。

另外请不要忘记微信⼩程序 wx.login 功能的特性:

1.每⼀次调⽤都会⽣成⼀个⼀次性有效的 js_code 参数

2.⽣成的 js_code 具有有效时间

3.同时间只能有⼀个 js_code 有效(例如⼩程序内连续⽣成两 个code A和B,那么⽼的A便不再有效)

4.渗透测试者⽆法在开发者⼯具内⽣成合法的 js_code 。搞安全,领导的话⼀定要听,但说明书上的内容不⼀定要全听,我们可以让 wx.login 这个功能应⽤场景丰富⼀些,并不只有在登录相关操作时才调⽤它。我们也可以把他当做⼀个校验码⽣成⼯具,在⼀些关键 操作调⽤此函数⽣成 js_code 返回⾄后端来判断此操作是否合法。 

那么当攻击者想要测试API时他必须每⼀个操作都使⽤⼀个新的 js_code ,⽽ js_code ⼜不能⾃⼰本地 合法⽣成只有去⼿机上真⼈操作抓取⼀个,但这样测⼀次抓⼀次很烦啊,但是如果攻击者想投乔同时抓 取多个 js_code 也不想⾏,同时间只有⼀个有效⽽且放时间⻓了还会过期。此时若数据包本身还有加密 以及签名步骤,攻击者便是有苦说不出,直接想砸电脑⾛⼈。

后台安全:

第⼀,绝对不使⽤弱⼝令;第⼆,绝对不漏升级任何⼀个插件;第三,绝对后台的不对外访问。这⼀块 并没有什么可以详谈的,使⽤复杂密码和及时升级是基本内容,⽽将管理平台放置在内⽹不让公⽹访问 则能⼀劳永逸,是先有可被攻击的系统后有⼊侵者,当管理系统在公⽹下不可直接访问时也只能考虑物 理⼊侵了。

平台安全:

这⾥提到的平台是“微信开发平台”,⼩程序的⼀切都与他息息相关,在此平台上⼀切数据的安全⽆疑也 是⼗分重要的。每个⼩程序都有⼀组与之对应的登录账户,这个账户的密码理应定期更换,若被意外泄 露也问题不⼤毕竟微信有强⼤的安全机制后续还要开发者扫码确认之后才可登录。

接下来⽐较重要的两块便是“开发设置”中的“⼩程序AppSecet(密钥)”和“⼩程序代码上传密钥”,这两两串 密钥不应该在⼩程序包内或者互联⽹任何⼀个可被公开访问到的地⽅储存,另⼀旦怀疑被泄露需及时重 置以及重新⽣成。⼩程序代码上传功能的“IP⽩名单”是默认开启的,请务必保持其开启状态并配置完善的⽩名单。

随后便是“第三⽅设置”中的授权问题,请定期查看您⼩程序账户内的授权,若有已经不再使⽤的第三⽅ 平台请⽴即停⽌授权给他们权限,并及时更改⼀些已授权权限⼤于实际需要使⽤权限的第三⽅平台的权 限(可以通过重新授权的⽅式实现)。

No.3

结语

“⾏久以致远 继往⽅开来”

除了微信⼩程序还有百度⼩程序、京东⼩程序、⽀付宝⼩程序等等,想要⼀⼀列举是徒劳的,这⼀类类 ⼩程序是当今百年未有之⼤变局下⼀个时代⽂化的缩影,他只是我们中华⽂明此时的⼀种载体。我们是 ⼀股股传奇的后浪推挤着这⼀切前⾏,当时间⼀点⼀点的往后挤啊,⼩程序他可能也就变了或者成为了 只能带⾛的回忆,但不论⻓河之后会出现什么,当这篇⽂章必然过了时时,安全研究渗透测试的本质终 究还是换汤不换药。不断地学习⼲货和实战经验是我们此时为了活下去的“硬通货”,但如果我们失去了 安全⼈的思想和初⼼,只顾⼀昧实践却丢了万不变的理论帽⼦失去了本应坚守的品德操守也会有些乏味 了吧。站在巨⼈、萍客、⼀个⾜够强⼤并不服输的⾃⼰身上向前继续学习,活出潇洒!

招聘启事

安恒雷神众测SRC运营(实习生)
————————
【职责描述】
1.  负责SRC的微博、微信公众号等线上新媒体的运营工作,保持用户活跃度,提高站点访问量;
2.  负责白帽子提交漏洞的漏洞审核、Rank评级、漏洞修复处理等相关沟通工作,促进审核人员与白帽子之间友好协作沟通;
3.  参与策划、组织和落实针对白帽子的线下活动,如沙龙、发布会、技术交流论坛等;
4.  积极参与雷神众测的品牌推广工作,协助技术人员输出优质的技术文章;
5.  积极参与公司媒体、行业内相关媒体及其他市场资源的工作沟通工作。

【任职要求】 
 1.  责任心强,性格活泼,具备良好的人际交往能力;
 2.  对网络安全感兴趣,对行业有基本了解;
 3.  良好的文案写作能力和活动组织协调能力。

简历投递至 [email protected]

设计师(实习生)

————————

【职位描述】
负责设计公司日常宣传图片、软文等与设计相关工作,负责产品品牌设计。

【职位要求】
1、从事平面设计相关工作1年以上,熟悉印刷工艺;具有敏锐的观察力及审美能力,及优异的创意设计能力;有 VI 设计、广告设计、画册设计等专长;
2、有良好的美术功底,审美能力和创意,色彩感强;精通photoshop/illustrator/coreldrew/等设计制作软件;
3、有品牌传播、产品设计或新媒体视觉工作经历;

【关于岗位的其他信息】
企业名称:杭州安恒信息技术股份有限公司
办公地点:杭州市滨江区安恒大厦19楼
学历要求:本科及以上
工作年限:1年及以上,条件优秀者可放宽

简历投递至 [email protected]

安全招聘
————————

公司:安恒信息
岗位:Web安全 安全研究员
部门:战略支援部
薪资:13-30K
工作年限:1年+
工作地点:杭州(总部)、广州、成都、上海、北京

工作环境:一座大厦,健身场所,医师,帅哥,美女,高级食堂…

【岗位职责】
1.定期面向部门、全公司技术分享;
2.前沿攻防技术研究、跟踪国内外安全领域的安全动态、漏洞披露并落地沉淀;
3.负责完成部门渗透测试、红蓝对抗业务;
4.负责自动化平台建设
5.负责针对常见WAF产品规则进行测试并落地bypass方案

【岗位要求】
1.至少1年安全领域工作经验;
2.熟悉HTTP协议相关技术
3.拥有大型产品、CMS、厂商漏洞挖掘案例;
4.熟练掌握php、java、asp.net代码审计基础(一种或多种)
5.精通Web Fuzz模糊测试漏洞挖掘技术
6.精通OWASP TOP 10安全漏洞原理并熟悉漏洞利用方法
7.有过独立分析漏洞的经验,熟悉各种Web调试技巧
8.熟悉常见编程语言中的至少一种(Asp.net、Python、php、java)

【加分项】
1.具备良好的英语文档阅读能力;
2.曾参加过技术沙龙担任嘉宾进行技术分享;
3.具有CISSP、CISA、CSSLP、ISO27001、ITIL、PMP、COBIT、Security+、CISP、OSCP等安全相关资质者;
4.具有大型SRC漏洞提交经验、获得年度表彰、大型CTF夺得名次者;
5.开发过安全相关的开源项目;
6.具备良好的人际沟通、协调能力、分析和解决问题的能力者优先;
7.个人技术博客;
8.在优质社区投稿过文章;

岗位:安全红队武器自动化工程师
薪资:13-30K
工作年限:2年+
工作地点:杭州(总部)

【岗位职责】
1.负责红蓝对抗中的武器化落地与研究;
2.平台化建设;
3.安全研究落地。

【岗位要求】
1.熟练使用Python、java、c/c++等至少一门语言作为主要开发语言;
2.熟练使用Django、flask 等常用web开发框架、以及熟练使用mysql、mongoDB、redis等数据存储方案;
3:熟悉域安全以及内网横向渗透、常见web等漏洞原理;
4.对安全技术有浓厚的兴趣及热情,有主观研究和学习的动力;
5.具备正向价值观、良好的团队协作能力和较强的问题解决能力,善于沟通、乐于分享。

【加分项】
1.有高并发tcp服务、分布式等相关经验者优先;
2.在github上有开源安全产品优先;
3:有过安全开发经验、独自分析过相关开源安全工具、以及参与开发过相关后渗透框架等优先;
4.在freebuf、安全客、先知等安全平台分享过相关技术文章优先;
5.具备良好的英语文档阅读能力。

简历投递至 [email protected]

岗位:红队武器化Golang开发工程师
薪资:13-30K
工作年限:2年+
工作地点:杭州(总部)

【岗位职责】
1.负责红蓝对抗中的武器化落地与研究;
2.平台化建设;
3.安全研究落地。

【岗位要求】
1.掌握C/C++/Java/Go/Python/JavaScript等至少一门语言作为主要开发语言;
2.熟练使用Gin、Beego、Echo等常用web开发框架、熟悉MySQL、Redis、MongoDB等主流数据库结构的设计,有独立部署调优经验;
3.了解docker,能进行简单的项目部署;
3.熟悉常见web漏洞原理,并能写出对应的利用工具;
4.熟悉TCP/IP协议的基本运作原理;
5.对安全技术与开发技术有浓厚的兴趣及热情,有主观研究和学习的动力,具备正向价值观、良好的团队协作能力和较强的问题解决能力,善于沟通、乐于分享。

【加分项】
1.有高并发tcp服务、分布式、消息队列等相关经验者优先;
2.在github上有开源安全产品优先;
3:有过安全开发经验、独自分析过相关开源安全工具、以及参与开发过相关后渗透框架等优先;
4.在freebuf、安全客、先知等安全平台分享过相关技术文章优先;
5.具备良好的英语文档阅读能力。

简历投递至 [email protected]

专注渗透测试技术

全球最新网络攻击技术

END


文章来源: http://mp.weixin.qq.com/s?__biz=MzAwMDQwNTE5MA==&mid=2650246176&idx=1&sn=5d9e9aa21a1ea8be8587b098b83255ea&chksm=82ea5789b59dde9fe5cc83f960c683614bcd4ec0e11358748f6023764600e9eb778aa95904cb#rd
如有侵权请联系:admin#unsafe.sh