3-6〔OSCP ◈ 研记〕❘ WEB应用攻击▸WEB应用枚举B
郑重声明: 本文所有安全知识与技术,仅用于探讨、研究及学习,严禁用于违反国家法律法规的非法活动。对于因不当使用相关内容造成的任何损失或法律责任,本人不承担任何责任。 如需转载,请注明出处且不得用于商业盈利。
💥👉点赞❤️ 关注🔔 收藏⭐️ 评论💬💥
更多文章戳👉Whoami!-CSDN博客🚀
𖤐 嘿,经过前面的预热,我们正式打开这扇门,来吧 !
𖤐 𝓗𝓮𝔂, 𝓪𝓯𝓽𝓮𝓻 𝔀𝓪𝓻𝓶-𝓾𝓹,𝔀𝓮'𝓻𝓮 𝓷𝓸𝔀 𝓸𝓯𝓯𝓲𝓬𝓲𝓪𝓵𝓵𝔂 𝓸𝓹𝓮𝓷𝓲𝓷𝓰 𝓽𝓱𝓲𝓼 𝓭𝓸𝓸𝓻,𝓒𝓸𝓶𝓮 𝓸𝓷 !
→ 信息收集▸WEB应用攻击▸Web应用枚举B-----我们在这儿~ 🔥🔥🔥
→ 漏洞检测
→ 初始立足点
→ 权限提升
→ 横向移动
→ 报告/分析
→ 教训/修复
目录
1.Web应用枚举
1.3 使用cURL进行Web枚举
1.3.1 基本枚举方法
1.基础网站探测
2.目录和文件枚举
1.3.2 高级枚举方法
1.API端点发现
2.HTTP方法测试
3.参数模糊测试
1.3.3 响应分析与过滤
1. 状态码分析
2. 内容分析
1.3.4 认证和会话枚举
1. 基本认证测试
2. Cookie和会话测试
1.3.5 批量枚举脚本示例
1. 简单目录枚举脚本
2. API端点发现脚本
1.4 使用Burp Suite高效批量枚举API
1.4.1 Burp Suite工作流程
1.4.2 详细操作步骤
1. 使用curl将请求发送至Burp代理
2. 请求捕获与重放
3. 站点地图功能利用
4. 使用Intruder进行批量测试
1.4.3 Burp Suite核心功能优势
💥创作不易💥求一波暴击👉点赞❤️ 关注🔔 收藏⭐️ 评论💬
1.Web应用枚举
1.3 使用cURL进行Web枚举
cURL是一个强大的命令行工具,用于传输数据,支持多种协议。在Web枚举中,cURL可以帮助安全研究人员手动探测目标网站的结构、API端点和敏感信息。
1.3.1 基本枚举方法
1.基础网站探测
# 获取网站首页内容
curl http://example.com# 仅显示HTTP响应头
curl -I http://example.com# 包含HTTP响应头和响应体
curl -i http://example.com# 跟随重定向
curl -L http://example.com# 详细输出,显示请求和响应过程
curl -v http://example.com
2.目录和文件枚举
# 测试特定目录是否存在,返回200表示存在,404表示不存在
curl -s -o /dev/null -w "%{http_code}" http://example.com/admin/# 测试常见管理后台检查WordPress管理后台页面 (/wp-admin/) 中是否包含“login”相关内容,常用于快速判断登录页面是否存在。
curl -s http://example.com/wp-admin/ | grep -i "login"# 检查robots.txt文件
curl http://example.com/robots.txt# 检查sitemap.xml文件
curl http://example.com/sitemap.xml
-s
:silent(静默)模式,不显示下载进度或错误信息。-o /dev/null
:将响应的内容丢弃,不保存输出。-w "%{http_code}"
:仅输出 HTTP 状态码(如200
、404
等)。grep -i "login"
:在传入的文本中查找包含 "login" 的行。-i 表示忽略大小写,因此 Login、LOGIN 都会匹配。
1.3.2 高级枚举方法
1.API端点发现
# 测试常见API端点,并分别赋值给变量enedpoint,然后分别测试。
for endpoint in api v1 v2 rest graphql; doecho "Testing /$endpoint:"curl -s -o /dev/null -w "%{http_code}" http://example.com/$endpointecho
done# 测试带版本的API,-X指定用GET方法。
curl -X GET http://example.com/api/v1/users
2.HTTP方法测试
# 测试不同的HTTP方法
for method in GET POST PUT DELETE HEAD OPTIONS; doecho "Testing $method:"curl -X $method -s -o /dev/null -w "%{http_code}" http://example.com/admin/echo
done
3.参数模糊测试
# 测试常见参数
for param in id user token admin debug; doecho "Testing parameter: $param"curl -s "http://example.com/page?$param=test" | grep -i "error\|sql\|exception"
done
1.3.3 响应分析与过滤
1. 状态码分析
# 批量检查URL列表的文本文件中的每个URL的HTTP状态码
while read url; dostatus=$(curl -s -o /dev/null -w "%{http_code}" "$url")echo "$status - $url"
done < urls.txt# 输出结果形如:
# 200 - http://example.com
# 404 - http://example.com/404
# 403 - http://example.com/restricted
-------------------------------------------------------# 只显示成功的请求(2xx和3xx状态码)
while read url; dostatus=$(curl -s -o /dev/null -w "%{http_code}" "$url")if [[ $status =~ ^[23][0-9]{2}$ ]]; thenecho "$status - $url"fi
done < urls.txt
2. 内容分析
# 搜索页面中的特定内容
curl -s http://example.com/ | grep -i "password\|admin\|login"# 检查JavaScript文件中的敏感信息,
# -E 表示启用扩展正则表达式(使得使用“|”作为“或”操作符)。
# 表示查找包含“api”或“key”或“token”或“secret”任意一个的行。
curl -s http://example.com/static/app.js | grep -E "api|key|token|secret"# 提取并列出页面中所有链接(href属性值)的URL;grep -o:仅输出匹配的部分,而不是整行。
curl -s http://example.com/ | grep -o 'href="[^"]*"' | cut -d'"' -f2
1.3.4 认证和会话枚举
1. 基本认证测试
# 测试HTTP基本认证 (admin:password) 访问页面,-u选项用于指定用户名和密码
curl -u admin:password http://example.com/admin/# 使用常见凭据字典测试
while read cred; dousername=$(echo $cred | cut -d: -f1)password=$(echo $cred | cut -d: -f2)response=$(curl -s -u "$username:$password" -w "%{http_code}" http://example.com/admin/)echo "Testing $username:$password - $response"
done < credentials.txt
2. Cookie和会话测试
# 发送特定Cookie。-b选项用于发送Cookie:"session=abc123; admin=true"
# session=abc123表示会话ID;admin=true可能表示管理员身份或权限标识。
# curl会将这些Cookie添加到HTTP请求头中发送给服务器。
curl -b "session=abc123; admin=true" http://example.com/admin/# 保存服务器返回的Cookie,-c选项用于将服务器返回的cookies保存到指定的文件(cookies.txt)中。
curl -c cookies.txt http://example.com/login/# 使用保存的Cookie进行后续请求
curl -b cookies.txt http://example.com/dashboard/
1.3.5 批量枚举脚本示例
1. 简单目录枚举脚本
#!/bin/bash
TARGET="http://example.com"
WORDLIST="/usr/share/wordlists/dirb/common.txt"while read path; dourl="$TARGET/$path"status=$(curl -s -o /dev/null -w "%{http_code}" "$url")size=$(curl -s -o /dev/null -w "%{size_download}" "$url")if [[ $status != "404" ]] && [[ $size -gt 0 ]]; thenecho "[FOUND] $status ($size bytes) - $url"fi
done < $WORDLIST
2. API端点发现脚本
#!/bin/bash
TARGET="http://example.com"
API_PATHS=("api" "v1" "v2" "rest" "graphql" "users" "admin" "data")for base_path in "${API_PATHS[@]}"; dofor version in "" "v1" "v2" "v3"; doif [ -z "$version" ]; thenpath="$base_path"elsepath="$base_path/$version"firesponse=$(curl -s -o /dev/null -w "%{http_code}" "$TARGET/$path")if [ "$response" != "404" ]; thenecho "Found: $TARGET/$path (Status: $response)"# 测试各种HTTP方法for method in GET POST PUT DELETE; domethod_response=$(curl -X $method -s -o /dev/null -w "%{http_code}" "$TARGET/$path")echo " $method: $method_response"donefidone
done
1.4 使用Burp Suite高效批量枚举API
当需要测试大量API端点时,手动使用curl工具效率低下且难以扩展。Burp Suite作为专业的Web应用安全测试平台,提供了完整的解决方案,能够有效管理和批量处理API枚举任务。
手动测试 vs Burp Suite对比
特性 | 手动curl测试 | Burp Suite自动化 |
---|---|---|
测试规模 | 适合少量API测试 | 支持大规模API批量测试 |
请求管理 | 难以管理历史请求 | 完整请求历史记录和分类 |
数据分析 | 需要手动分析响应 | 自动化的响应对比和分析 |
工作效率 | 低效,容易出错 | 高效,可自动化重复任务 |
团队协作 | 难以共享测试结果 | 方便测试结果共享和协作 |
1.4.1 Burp Suite工作流程
1.4.2 详细操作步骤
1. 使用curl将请求发送至Burp代理
# -x 选项用于指定代理服务器,就是代理到本地Burp。
# -d 选项用于指定要发送的请求数据。curl -x http://127.0.0.1:8080 -d '{"username":"admin","password":"test"}' \
-H 'Content-Type: application/json' \
http://target-api.com/users/v1/login
💡 关键步骤:通过在命令中添加-x -http://127.0.0.1:8080将其发送到Burp代理。捕获所有请求/响应数据。
2. 请求捕获与重放
在Burp Repeater中的操作:
-
从Proxy选项卡捕获请求
-
右键选择"Send to Repeater"
-
在Repeater中修改参数和方法
-
点击"Send"发送请求并分析响应
我们能够在BP代理中重新创建和curl同样的行为,这样就可以将任何测试过的API存储在其数据库中以供以后调查,而且在BP响应中显示的更加直观。
3. 站点地图功能利用
访问站点地图:
-
导航到"Target" → "Site map"选项卡
-
查看所有已测试API的完整树状结构
-
识别可能遗漏的API路径和端点
站点地图价值:
-
🌐 全面视图:可视化展示所有发现的API
-
📍 快速导航:直接跳转到特定API进行测试
-
🏷️ 注释标记:为重要API添加注释和标记
4. 使用Intruder进行批量测试
批量测试场景:
-
测试多个API端点的可用性
-
尝试不同HTTP方法(POST、PUT、DELETE等)
-
模糊测试参数和输入值
Intruder配置:
-
右键请求选择"Send to Intruder"
-
配置攻击类型(Sniper、Battering ram等)
-
设置payload和攻击参数
-
启动攻击并分析结果
1.4.3 Burp Suite核心功能优势
功能模块 | 用途 | 在API枚举中的价值 |
---|---|---|
Proxy | 流量拦截和修改 | 捕获所有API请求和响应 |
Repeater | 请求重放和修改 | 精细测试单个API端点 |
Intruder | 自动化参数攻击 | 批量测试API参数和方法 |
Target | 目标范围管理 | 组织和分类发现的API |
Scanner | 自动漏洞扫描 | 检测API安全漏洞 |
实践意义
🚀 从手动curl测试升级到Burp Suite,就像从手工工具升级到自动化生产线——不仅提升效率,更提高了测试的深度和广度,能够发现更多潜在的安全问题。
💥创作不易💥求一波暴击👉点赞❤️ 关注🔔 收藏⭐️ 评论💬
您的支持是我创作最大的动力!