0Day CVE-2023-26615:某路由器密码重置漏洞

0Day CVE-2023-26615:某路由器密码重置漏洞

时间:2023-06-29 作者:安帝科技-CSX安全实验室

Part1 漏洞状态

Part2 漏洞描述


分析环境:
Win 7 6.1.7601 SP1

Part3 漏洞验证

1.验证环境
系统版本:Kali 2022.4
2.验证过程
修改WEB管理密码

使用BurpSuite发送PoC

随后可以通过空密码登录

Part4 漏洞分析

请求处理函数sub_4339E8使用for循环检测传入的XML数据,满足条件时调用dword_58AA80 + 4,其dword_58AA80初始值为地址off_589200。

查看off_589200处数据,发现了SetPasswdSettings字段,其后面跟着一个函数地址。

分析sub_43D518函数函数,发现其32行获取了修改的密码,随后在38行调用sub_45B320函数进行解密。当sub_45B320执行成功,且原始密码长度小于0x40,则会在41行设置密码。当sub_45B320执行失败时,则在53行设置一个密码。

查看dword_4A7540,发现其值是硬编码的00,这意味着当sub_45B320函数调用失败时,则会置为空密码。

查看sub_45B320函数,其29行调用 sub_425ED0函数进行解密,并在30行检测byte_58ADEC是否为0,为0则继续循环。当循环20次后则通过16行代码跳出循环,返回结果0。

sub_425ED0函数第30行调用 sub_425CB0函数将密码写入到v11,然后在31和32行将密码写入sub_45B320函数提供的缓冲区内。但14行代码首先将v11数组初始化为了0,因此如果sub_425ED0函数没有操作v11数组,则写出的数据也将是0。

sub_425CB0函数18行调用了sub_425830函数检测密码格式,当返回结果为0时,将不处理加密密码。

sub_425830函数第10行代码获取加密密码的长度,并在11行检测密码长度是否为奇数,如果为奇数则退出函数,并返回结果0。

因此当加密密码的长度为奇数时,sub_425830函数返回0,从而导致sub_425CB0函数不会进行解密操作,此时sub_425ED0函数的v11数组将为0,并写入到sub_45B320函数提供的缓冲区内。sub_45B320函数判断byte_58ADEC缓冲区首字节为0,则继续执行循环,直至i为20,跳出循环,并返回结果0。当sub_43D518函数36行代码检测sub_45B320执行失败后,则使用空字符串设置登录密码。
————————————————
获取更多情报
联系我们,获取更多漏洞情报详情及处置建议,让企业远离漏洞威胁。
电话:18511745601
邮箱:shiliangang@andisec.com