#### 认证绕过漏洞 可以通过两种方式实现认证绕过: 第一种是.cab方式,cab格式文件是视频播放器插件,存储在web的根目录下,它可以无需验证直接被访问和下载,而设备端只是通过strstr函数查找链接中是否存在.cab字段,如果含有就直接认为免认证。 第二种是nobody方法,同样由于设备端只是通过strstr函数去查找链接中是否存在nobody字段,如果有就直接免认证。 两种方式的链接可以如下,.cab和/nobody可以放在链接中的其他地方,获取设备的配置信息,其中包括登录的用户名和密码。 ``` http://<device_ip>/cgi-bin/user/Config.cgi?.cab&action=get&category=Account.* http://<device_ip>/cgi-bin/user/Config.cgi?/nobody&action=get&category=Account.* ```  #### 登录验证码绕过 设备在登录时通过增加验证码方式防止暴力猜解用户名和密码,但是由于系统设计的不合理,可以通过增加login=quick直接绕过。 链接格式如下: ``` http://<device_ip>/cgi-bin/nobody/VerifyCode.cgi?account=<b64(username:password)>&login=quick ``` 如果没有采用quick方式的话,链接的格式如下: ``` http://<device_ip>/cgi-bin/nobody/VerifyCode.cgi?account=<b64(username:password)>&captcha_code=ZVFU&verify_code=ZVmHTLN5eiGB ``` 由于`captcha_code`和`verify_code`是配套的,我们可以通过人工设置使他们保持一致同样可以绕过验证码验证,从而暴力猜解用户名和密码。 #### 其他安全漏洞...
#### 认证绕过漏洞 可以通过两种方式实现认证绕过: 第一种是.cab方式,cab格式文件是视频播放器插件,存储在web的根目录下,它可以无需验证直接被访问和下载,而设备端只是通过strstr函数查找链接中是否存在.cab字段,如果含有就直接认为免认证。 第二种是nobody方法,同样由于设备端只是通过strstr函数去查找链接中是否存在nobody字段,如果有就直接免认证。 两种方式的链接可以如下,.cab和/nobody可以放在链接中的其他地方,获取设备的配置信息,其中包括登录的用户名和密码。 ``` http://<device_ip>/cgi-bin/user/Config.cgi?.cab&action=get&category=Account.* http://<device_ip>/cgi-bin/user/Config.cgi?/nobody&action=get&category=Account.* ```  #### 登录验证码绕过 设备在登录时通过增加验证码方式防止暴力猜解用户名和密码,但是由于系统设计的不合理,可以通过增加login=quick直接绕过。 链接格式如下: ``` http://<device_ip>/cgi-bin/nobody/VerifyCode.cgi?account=<b64(username:password)>&login=quick ``` 如果没有采用quick方式的话,链接的格式如下: ``` http://<device_ip>/cgi-bin/nobody/VerifyCode.cgi?account=<b64(username:password)>&captcha_code=ZVFU&verify_code=ZVmHTLN5eiGB ``` 由于`captcha_code`和`verify_code`是配套的,我们可以通过人工设置使他们保持一致同样可以绕过验证码验证,从而暴力猜解用户名和密码。 #### 其他安全漏洞 **第一个**:使用没有认证证书的Https服务。系统中的`SyncCloudAccount.sh`,`QueryFromClient.sh`和`SyncPermit.sh`使用wget去访问https网站,如https://payment.eagleeyes.tw 等。由于没有证书验证,此https通信可能遭受中间人攻击。 **第二个**:密码明文存储。容易被攻击轻易获取所有的用户登录密码等敏感信息。 **第三个**:CSRF漏洞。设备没有任何防CSRF攻击的措施,当管理员正登录时,可能受到CSRF攻击。