-
-
[原创]企业微信转发卡bug的漏洞分析
-
发表于:
2024-6-8 20:34
6994
-
企业微信转发的上限正常是9个
但通过手动卡bug可以突破9个
同样的办法在个人微信上就不行
好奇背后的原因,分析了一下
个人微信和企业微信的界面都是Duilib
Duilib是基于消息做响应
鼠标的消息:
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编辑
,原因: