首页
社区
课程
招聘
[原创]企业微信转发卡bug的漏洞分析
发表于: 2024-6-8 20:34 6994

[原创]企业微信转发卡bug的漏洞分析

2024-6-8 20:34
6994

企业微信转发的上限正常是9个
图片描述

但通过手动卡bug可以突破9个
图片描述

同样的办法在个人微信上就不行
好奇背后的原因,分析了一下


个人微信和企业微信的界面都是Duilib
Duilib是基于消息做响应
鼠标的消息:

1
2
3
4
#define WM_LBUTTONDOWN                  0x0201 // 鼠标左键按下
#define WM_LBUTTONUP                    0x0202 // 鼠标左键抬起
#define WM_RBUTTONDOWN                  0x0204 // 鼠标右键按下
#define WM_RBUTTONUP                    0x0205 // 鼠标右键抬起

Duilib的响应:

1
2
3
4
5
6
7
8
9
10
11
12
13
case WM_LBUTTONDOWN:
    CControlUI* pControl = FindControl(pt);
    m_pEventClick = pControl;
    event.Type = UIEVENT_BUTTONDOWN;
 
case WM_LBUTTONUP:
    if( m_pEventClick == NULL ) break;
    event.Type = UIEVENT_BUTTONUP;
    m_pEventClick = NULL;
 
case WM_RBUTTONDOWN:
    m_pEventClick = pControl;
    event.Type = UIEVENT_RBUTTONDOWN;

四个鼠标消息中
原生的Duilib没有响应WM_RBUTTONUP // 鼠标右键抬起
个人微信的Duilib也没有响应WM_RBUTTONUP
但企业微信的Duilib有响应WM_RBUTTONUP

1
2
3
4
// if (uMsg == WM_RBUTTONUP)
v115 = uMsg - 0x205;
if ( !v115 )
    m_pEventClick = NULL;

这就埋下了一个bug
正常点击复选框,会发出事件:UIEVENT_BUTTONUP

1
2
3
4
5
6
7
8
9
10
1、鼠标左键按下
case WM_LBUTTONDOWN:
    CControlUI* pControl = FindControl(pt);
    m_pEventClick = pControl;                 // m_pEventClick赋值
 
2、鼠标左键抬起
case WM_LBUTTONUP:
    if( m_pEventClick == NULL ) break;       // m_pEventClick有值,不跳过
    event.Type = UIEVENT_BUTTONUP;           // 发出事件:UIEVENT_BUTTONUP
    m_pEventClick = NULL;                    // m_pEventClick置空

特殊点击复选框,发不出事件:UIEVENT_BUTTONUP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1、鼠标左键按下
case WM_LBUTTONDOWN:
    CControlUI* pControl = FindControl(pt);
    m_pEventClick = pControl;                // m_pEventClick赋值
 
2、鼠标右键按下
case WM_RBUTTONDOWN:
    CControlUI* pControl = FindControl(pt);
    m_pEventClick = pControl;                // m_pEventClick赋值
 
3、鼠标右键抬起
case WM_RBUTTONUP:
    m_pEventClick = NULL;                    // m_pEventClick置空
 
4、鼠标左抬起
if( m_pEventClick == NULL ) break;          // m_pEventClick为空,跳过
                                            //没有发出事件:UIEVENT_BUTTONUP

复选框卡在按下未抬起的状态
左边已经选择,但右边没有选择
图片描述
再单击一下复选框,就卡出bug
左边没有选择,但右边已经选择
图片描述


新版本漏洞修补情况
上面说的方法已经失效
用另外一种特殊操作
选择还是可以超过9个
但发送提示不能超过9个
图片描述


[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

最后于 2024-7-31 10:46 被GhHei编辑 ,原因:
收藏
免费 1
支持
分享
最新回复 (1)
雪    币: 761
活跃值: (618)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
思路不错。
2024-7-24 14:34
0
游客
登录 | 注册 方可回帖
返回
//