漏洞挖掘与Web安全实战:从SQL注入到XSS攻防
1. 漏洞挖掘入门从零开始的认知框架第一次接触漏洞挖掘时我完全被各种术语和工具淹没了。直到在某个深夜调试SQL注入漏洞时突然开窍原来所有漏洞挖掘本质上都是在寻找程序处理数据时的非预期行为。这个认知转变让我从盲目工具使用者成长为有方法论的研究者。漏洞挖掘的核心在于理解三个基本问题程序如何接收输入入口点程序如何处理这些输入处理逻辑处理结果如何影响系统状态影响范围以最常见的Web漏洞为例下图展示了典型的数据流路径用户输入 → 前端过滤 → 网络传输 → 后端处理 → 数据库操作 → 结果返回每个箭头代表一个可能的漏洞触发点。新手常犯的错误是只关注明显的注入点如登录框而忽略Cookie、HTTP头、文件元数据等隐蔽入口。关键认知漏洞挖掘不是碰运气而是系统性地验证程序对各类输入的容错能力2. SQL注入实战从基础到绕过技巧2.1 基础注入原理与检测还记得我第一次成功注入时的场景在一个简单的用户搜索功能中输入单引号导致服务器返回了数据库错误信息。这个报错直接暴露了后端使用MySQL且未做参数化查询。基础检测流程寻找可能拼接SQL的输入点URL参数、表单字段等尝试触发语法错误输入、、\等特殊字符观察响应差异错误信息、延迟、空白页等经典检测payload AND 11 -- AND 12 -- OR 2.2 高级绕过技术实战现代WAFWeb应用防火墙让基础注入越来越难成功。去年在某次渗透测试中我遇到了一个过滤了所有常见关键词的防御系统。最终通过以下方式绕过大小写混淆SeLeCt * fRoM users注释分割SEL/*xxx*/ECT user/*yyy*/name FROM admin等价函数替换CONCAT(ad,min) 代替 admin编码绕过%53%45%4C%45%43%54 (SELECT的URL编码)实战心得永远准备三套方案 - 基础payload用于快速检测混淆payload用于绕过备用方案应对突发情况3. XSS攻防从弹窗到实际危害3.1 三种XSS类型对比在一次企业SRC项目中我通过存储型XSS拿到了管理员cookie。这个漏洞存在于富文本编辑器允许插入未过滤的HTML标签类型触发场景持久性危害等级反射型URL参数即时响应临时中存储型数据库存储后展示永久高DOM型前端JS处理不当依赖环境中高3.2 现代前端环境下的绕过技巧随着前端框架的普及传统scriptalert(1)/script越来越难生效。最新实战中有效的技巧事件处理器绕过img srcx onerroralert(1)SVG向量利用svgscriptalert(1)/script/svg模板字符串注入${alert(1)}AngularJS沙箱逃逸{{constructor.constructor(alert(1))()}}重要发现在React/Vue项目中尝试通过javascript:协议或eval相关函数寻找突破口4. 文件上传漏洞的深度利用4.1 绕过前端验证的三种方式某次攻防演练中目标系统前端检查了文件扩展名但后端处理存在缺陷Burp拦截修改上传.jpg文件 → 拦截请求 → 修改为.php双扩展名绕过shell.php.jpgshell.jpg.php大小写变异SHELL.PHpshell.PhP4.2 后端解析漏洞实战更危险的是服务器自身的解析漏洞Apache解析缺陷shell.php.xxx配置错误时会执行php代码IIS6.0分号漏洞shell.asp;.jpgNginx错误配置/uploads/1.jpg/1.php配合目录穿越文件内容检测绕过技巧在图片EXIF中插入PHP代码或使用GIF头PHP代码的混合文件5. 漏洞挖掘方法论与工具链5.1 系统化挖掘流程根据多年经验总结的漏洞挖掘SOP信息收集阶段子域名枚举assetfinder、amass目录扫描dirsearch、gobuster技术指纹识别wappalyzer自动化扫描阶段基础漏洞扫描nmap、nikto专项检测sqlmap、XSStrike手工验证阶段业务逻辑测试非常规输入测试漏洞利用阶段编写PoC权限提升尝试5.2 必备工具清单工具类型推荐工具适用场景代理工具Burp Suite Pro、Charles请求拦截与重放扫描器sqlmap、nuclei自动化漏洞检测开发辅助Postman、CyberChef数据构造与转换信息收集theHarvester、shodan-cli目标资产发现漏洞利用metasploit、Cobalt Strike后期渗透6. 新手常见误区与进阶建议6.1 必须避免的五个错误过度依赖工具案例sqlmap跑不出结果就放弃没尝试手工注入忽略业务上下文案例在JSON API端点测试传统表单XSS payload测试姿势不当案例生产环境直接使用rm -rf类危险命令报告描述不清案例只说存在SQL注入不提供具体参数和重现步骤法律意识薄弱案例未经授权测试非自己负责的系统6.2 能力提升路线图根据带新人的经验建议分阶段成长第一阶段1-3个月掌握OWASP Top 10漏洞原理熟练使用Burp Suite基础功能能复现简单靶场漏洞第二阶段3-6个月理解WAF工作原理及绕过方法能独立完成完整渗透测试流程开始关注业务逻辑漏洞第三阶段6-12个月具备代码审计能力能开发自定义漏洞利用工具形成个人方法论最后分享一个真实案例在某次审计中通过仔细分析分页排序参数发现了基于ORDER BY的SQL注入。这个漏洞被多人忽略因为常规扫描器不会测试排序功能。这提醒我们优秀的漏洞猎手需要工具辅助但更需要独立思考的能力。