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

第一章: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)

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

  • Payloadusername=admin&username=wrong_user&password=123456

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

1.4.2 空格绕过

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

  • Payloaduser=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 次失败后,增加二次验证(短信/邮箱),而非单纯锁定账户。

相关推荐
笨鸟先飞,勤能补拙13 分钟前
AI 赋能网络安全:技术全景、成熟度评估与实战案例
人工智能·python·安全·web安全·网络安全·sqlite·github
加密狗复制模拟38 分钟前
使用x64dbg进行超级狗super dog 加密狗逆向分析复制 超级狗克隆备份
安全·软件工程·个人开发·同态加密
ZeroNews内网穿透1 小时前
内网部署企业知识库,通过 HTTPS 隧道实现异地安全访问
安全·内网穿透
笨鸟先飞,勤能补拙3 小时前
AI 赋能网络安全领域深度剖析
网络·人工智能·windows·安全·web安全·网络安全·github
HackTwoHub3 小时前
轻量化AI渗透武器库|ARTEX自主攻防系统、资产梳理、漏洞挖掘、链路分析全流程智能化落地
人工智能·安全·web安全·网络安全·系统安全·网络攻击模型·安全架构
流浪法师124 小时前
GA/T 2380-2026《信息安全技术 网络安全等级保护数据安全基本要求》深度解读
安全
BEOL贝尔科技6 小时前
样本安全存储中还有哪些重要因素需要考虑?如何设置样本安全?
人工智能·安全·数据分析
卓豪终端管理6 小时前
零信任落地,终端是「最后一公里」也是「最难一公里」
安全
RisunJan8 小时前
Linux命令-shutdown(安全关闭或重启系统)
linux·服务器·安全
贩卖黄昏的熊9 小时前
NestJS简明教程——安全
开发语言·javascript·安全·typescript·nest.js