当前位置: 首页 > news >正文

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 状态码(如 200404 等)。
  • 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配置

  1. 右键请求选择"Send to Intruder"

  2. 配置攻击类型(Sniper、Battering ram等)

  3. 设置payload和攻击参数

  4. 启动攻击并分析结果


1.4.3 Burp Suite核心功能优势

功能模块用途在API枚举中的价值
Proxy流量拦截和修改捕获所有API请求和响应
Repeater请求重放和修改精细测试单个API端点
Intruder自动化参数攻击批量测试API参数和方法
Target目标范围管理组织和分类发现的API
Scanner自动漏洞扫描检测API安全漏洞

实践意义

🚀 从手动curl测试升级到Burp Suite,就像从手工工具升级到自动化生产线——不仅提升效率,更提高了测试的深度和广度,能够发现更多潜在的安全问题。


💥创作不易💥求一波暴击👉点赞❤️ 关注🔔 收藏⭐️ 评论💬

您的支持是我创作最大的动力!

http://www.xdnf.cn/news/1423189.html

相关文章:

  • 【STM32】状态机(State Machine)
  • 证明与激励:Walrus 可编程数据如何通过激励可用性证明获得安全性
  • SpringBoot学习日记 Day9:响应式编程新世界探索
  • 【跨境知识】密文面单
  • Linux常用命令行大全:14个核心指令详解+实战案例
  • 多线程——线程的休眠、中断和等待
  • Markdown 语法全面指南
  • Win10系统获取网络上行流量的三种方法
  • 五、导入现有模型
  • 01 2025最新VMware虚拟机下载教程
  • Unity项目基本风格/规范
  • Linux上perf工具的使用-基础采样
  • 命名空间级别应用 Pod 安全标准
  • 从组分到涌现:系统科学视域下结构、功能与层级的辨析及在人工智能中的应用
  • 安全等保复习笔记
  • 大模型 RAG 项目必看:技术架构拆解 + 实战步骤,新手也能快速上手
  • 内存管理 - 从虚拟到物理
  • Java全栈工程师面试实战:从基础到微服务的深度解析
  • CentOS10安装RabbitMQ
  • Spring Bean 生命周期中的 @PostConstruct 注解
  • NestJS 3 分钟搭好 MySQL + MongoDB,CRUD 复制粘贴直接运行
  • 【C++进阶篇】学习C++就看这篇--->多态超详解
  • 传统web项目,vue开发实践篇01
  • 微服务Docker-compose之若依部署
  • 视频提取文字用什么软件好?分享6款免费的视频转文字软件!
  • apipost 8.x 脚本循环调用接口
  • 云手机为什么会受到广泛关注?
  • 单链表的基本原理与实现
  • 深入掌握 Flask 配置管理:从基础到高级实战
  • uniapp使用uview UI,自定义级联选择组件