第14天 信息打点-JS 架构&框架识别&泄漏提取&API 接口枚举&FUZZ 爬虫&插件项目
这个问题看起来是要求我们帮助他们实现一个自动化的信息收集工具,该工具可以识别网站的技术栈、泄露的API接口和执行模糊测试来发现更多的API接口。
以下是一个简化的Python脚本示例,它可以帮助你识别网站的JavaScript框架和API接口:
import requests
from bs4 import BeautifulSoup
import re
def identify_frameworks(url):
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
scripts = soup.find_all('script', src=True)
frameworks = []
for script in scripts:
if 'framework' in script['src']:
framework = script['src'].split('/')[-1]
frameworks.append(framework)
return frameworks
def extract_api_endpoints(url):
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
comments = soup.find_all('!--')
api_endpoints = []
for comment in comments:
if 'API' in comment.text:
api_endpoints.append(re.search('API: (.*)', comment.text).group(1))
return api_endpoints
def fuzz_api_endpoints(base_url, wordlist):
import requests
import time
successful_endpoints = []
for word in wordlist:
endpoint = f"{base_url}/{word}"
try:
response = requests.get(endpoint)
if response.status_code == 200:
successful_endpoints.append(endpoint)
except requests.exceptions.RequestException:
pass
time.sleep(0.5) # 防止被服务器封禁
return successful_endpoints
# 使用示例
url = 'http://example.com'
frameworks = identify_frameworks(url)
print("Identified Frameworks:", frameworks)
api_endpoints = extract_api_endpoints(url)
print("Extracted API Endpoints:", api_endpoints)
wordlist = ['api', 'auth', 'login', 'users', 'products', 'orders'] # 这里使用一个简单的词汇列表作为模糊测试的基础
fuzzed_endpoints = fuzz_api_endpoints(url, wordlist)
print("Fuzzed API Endpoints:", fuzzed_endpoints)
这个脚本首先定义了一个函数来识别网页中的JavaScript框架,另一个函数用于提取HTML注释中的API接口信息,最后一个函数使用一个词汇列表进行模糊测试来发现更多的API接口。
请注意,这个脚本需要requests和beautifulsoup库,可以通过pip install requests beautifulsoup4
来安装。同时,模糊测试部分需要根据实际情况进行调整,可能需要一个更大的词汇列表和更复杂的模糊测试逻辑。
评论已关闭