MCPcopy Create free account

hub / github.com/bansh2eBreak/SpringVulnBoot-backend / functions

Functions498 in github.com/bansh2eBreak/SpringVulnBoot-backend

↓ 391 callersMethoderror
(Object data)
src/main/java/icu/secnotes/pojo/Result.java:55
↓ 191 callersMethodsuccess
(Object data)
src/main/java/icu/secnotes/pojo/Result.java:45
↓ 85 callersMethodtoString
()
src/main/java/icu/secnotes/pojo/User.java:41
↓ 83 callersMethodgetUsername
()
src/main/java/icu/secnotes/pojo/User.java:17
↓ 26 callersMethodgetId
()
src/main/java/icu/secnotes/pojo/User.java:9
↓ 23 callersMethodgetName
()
src/main/java/icu/secnotes/controller/XML/XxeController.java:516
↓ 23 callersMethodgetPassword
()
src/main/java/icu/secnotes/pojo/User.java:25
↓ 20 callersMethodgetName
()
src/main/java/icu/secnotes/pojo/User.java:33
↓ 19 callersMethodparseJwt
JWT 令牌解析方法 @param jwttoken @return
src/main/java/icu/secnotes/utils/JwtUtils.java:37
↓ 15 callersMethodsetId
(Integer id)
src/main/java/icu/secnotes/pojo/User.java:13
↓ 13 callersMethodpasswordLogin
账号密码登录
src/main/java/icu/secnotes/mapper/UserMapper.java:53
↓ 11 callersMethodsetName
(String name)
src/main/java/icu/secnotes/pojo/User.java:37
↓ 11 callersMethodsetUsername
(String username)
src/main/java/icu/secnotes/pojo/User.java:21
↓ 10 callersMethodselectUserById
根据id查询用户,演示sql注入 @param id @return
src/main/java/icu/secnotes/mapper/UserMapper.java:19
↓ 10 callersMethodsetPassword
(String password)
src/main/java/icu/secnotes/pojo/User.java:29
↓ 9 callersMethodgetName
()
src/main/java/icu/secnotes/pojo/Person.java:10
↓ 8 callersMethodgetNodeValue
辅助方法:获取XML节点的文本内容
src/main/java/icu/secnotes/controller/XML/XPathInjectionController.java:190
↓ 8 callersMethodinsertUserLoginLog
插入登录日志
src/main/java/icu/secnotes/mapper/UserLoginLogMapper.java:18
↓ 8 callersMethodreadObject
(ObjectInputStream in)
src/main/java/icu/secnotes/pojo/BadPerson.java:29
↓ 7 callersMethodgetAge
()
src/main/java/icu/secnotes/pojo/Person.java:18
↓ 7 callersMethodgetSecretByUserId
(Integer userId)
src/main/java/icu/secnotes/service/MfaSecretService.java:14
↓ 7 callersMethodsetAge
(Integer age)
src/main/java/icu/secnotes/pojo/Person.java:22
↓ 7 callersMethodsetName
(String name)
src/main/java/icu/secnotes/pojo/Person.java:14
↓ 6 callersMethodgetAttributeValue
获取 LDAP 属性值
src/main/java/icu/secnotes/controller/Other/LdapInjectionController.java:162
↓ 5 callersMethodescapeHtml
(String s)
src/main/java/icu/secnotes/controller/Other/CrlfController.java:103
↓ 5 callersMethodgetAdminById
根据id获取管理员信息
src/main/java/icu/secnotes/mapper/LoginMapper.java:23
↓ 4 callersMethodcheckSql
sql注入检测
src/main/java/icu/secnotes/utils/Security.java:14
↓ 4 callersMethoddeserializeFromXML
从XML字符串反序列化对象
src/test/java/icu/secnotes/test/XMLDecoderTest.java:66
↓ 4 callersMethodfindById
根据 ID 查询员工完整信息(含敏感字段)
src/main/java/icu/secnotes/mapper/GraphQLMapper.java:23
↓ 4 callersMethodgetCode
()
src/main/java/icu/secnotes/pojo/Result.java:20
↓ 4 callersMethodgetContent
()
src/main/java/icu/secnotes/controller/XML/XxeController.java:503
↓ 4 callersMethodsendErrorResponse
发送 JSON 错误响应
src/main/java/icu/secnotes/interceptor/PermissionInterceptor.java:117
↓ 3 callersMethodbuildSensitiveData
从 JWT 解析当前登录用户身份,并从数据库查询其 MFA secret 作为敏感数据返回。 MFA secret 是高敏感字段,一旦泄露攻击者可伪造 OTP,直接接管账户。
src/main/java/icu/secnotes/controller/ConfigVuln/CorsController.java:47
↓ 3 callersMethodchangePassword
修改密码 - 二次注入漏洞版本(使用 ${} 拼接 username) ⚠️ 二次注入漏洞原理: 1. 第一次输入(注册):恶意 username 如 "hacker' OR username='admin'#" 被正确转义存入数据库 2. 第二次使用(修改密码):从数据库读取 username
src/main/java/icu/secnotes/mapper/LoginMapper.java:44
↓ 3 callersMethoddeserializeFromXML
从XML字符串反序列化对象
src/main/java/icu/secnotes/controller/Components/XMLDecoderController.java:107
↓ 3 callersMethoddeserializeFromXML
从XML字符串反序列化对象
src/main/java/icu/secnotes/controller/Components/XStreamController.java:156
↓ 3 callersMethodpageOrderByVuln
ORDER BY 注入 - 漏洞版本(使用 ${})
src/main/java/icu/secnotes/service/UserService.java:15
↓ 3 callersMethodselectUserByUsername
根据id查询用户,演示sql注入 @param username @return
src/main/java/icu/secnotes/mapper/UserMapper.java:27
↓ 3 callersMethodupdateSmsCodeUsed
更新验证码的使用状态
src/main/java/icu/secnotes/mapper/SmsCodeMapper.java:29
↓ 2 callersMethodbuildMailPreview
构造"模拟邮件预览"返回结构(前端会渲染成邮件卡片)
src/main/java/icu/secnotes/controller/Other/HostHeaderInjectionController.java:131
↓ 2 callersMethodchangePasswordByUserId
修改密码 - CSRF演示版本(通过 userId,不验证旧密码) @param userId 用户ID @param newPassword 新密码 @return 影响行数
src/main/java/icu/secnotes/mapper/LoginMapper.java:53
↓ 2 callersMethodcheckXPath
XPath注入危险字符检测 检测输入中是否包含可能导致XPath注入的特殊字符 @param content 待检测的内容 @return true表示包含危险字符,false表示安全
src/main/java/icu/secnotes/utils/Security.java:132
↓ 2 callersMethodcountUserLoginLogByIp
根据ip统计最近5分钟的登录失败次数
src/main/java/icu/secnotes/mapper/UserLoginLogMapper.java:30
↓ 2 callersMethoddeleteUserLoginLogByIp
根据ip删除所有登录日志
src/main/java/icu/secnotes/mapper/UserLoginLogMapper.java:24
↓ 2 callersMethodescapeXPath
XPath字符串转义 将XPath字符串中的单引号转义为两个单引号(XPath标准转义方式) @param content 待转义的内容 @return 转义后的内容
src/main/java/icu/secnotes/utils/Security.java:155
↓ 2 callersMethodextractAlgorithm
从JWT header中提取算法类型
src/main/java/icu/secnotes/utils/JwtRS256Utils.java:121
↓ 2 callersMethodgenerateCode
生成短信验证码 @param smsCode
src/main/java/icu/secnotes/service/SmsCodeService.java:11
↓ 2 callersMethodgenerateJwt
JWT 令牌生成方法 - 正常生成 @param claims JWT第二部分载荷,payload中存储的内容 @return
src/main/java/icu/secnotes/utils/JwtSignatureUtils.java:19
↓ 2 callersMethodgenerateJwt
@param claims JWT第二部分载荷,payload中存储的内容 @return
src/main/java/icu/secnotes/utils/JwtSensitiveUtils.java:18
↓ 2 callersMethodgetFieldName
()
src/main/java/icu/secnotes/controller/SQLI/OrderByInjectionController.java:166
↓ 2 callersMethodinsertMessage
添加留言
src/main/java/icu/secnotes/mapper/MessageBoardMapper.java:15
↓ 2 callersMethodlogin
管理员登录 @param admin @return
src/main/java/icu/secnotes/mapper/LoginMapper.java:17
↓ 2 callersMethodpasswordLogin2
(String username, String password)
src/main/java/icu/secnotes/mapper/UserMapper.java:56
↓ 2 callersMethodsaveOriginalZip
(byte[] zipBytes, String originalFilename, String scene)
src/main/java/icu/secnotes/controller/PathTraversal/ZipSlipController.java:182
↓ 2 callersMethodserializeToXML
将对象序列化为XML字符串
src/main/java/icu/secnotes/controller/Components/XMLDecoderController.java:122
↓ 2 callersMethodsetCode
(Integer code)
src/main/java/icu/secnotes/pojo/Result.java:24
↓ 2 callersMethodtoString
()
src/main/java/icu/secnotes/pojo/BadPerson.java:47
↓ 2 callersMethodupdateAdmin
更新管理员信息(通用动态更新方法) ⚠️ Mass Assignment 漏洞成因(通用方法被滥用): 1. 最初目的:这是为"管理员后台"设计的通用更新方法 - 使用 MyBatis 动态 SQL(<if test>),自动更新传入的所有非空字段 - 管理员可以灵活修改用户的任意信
src/main/java/icu/secnotes/mapper/LoginMapper.java:98
↓ 2 callersMethodupdateUserPassword
更新用户密码
src/main/java/icu/secnotes/mapper/UserMapper.java:62
↓ 2 callersMethodverifyCode
验证短信验证码 @param phone @param code @return
src/main/java/icu/secnotes/service/SmsCodeService.java:31
↓ 1 callersMethodDnslogSnakeYamlTest
(Yaml yaml)
src/test/java/icu/secnotes/test/SnakeYAMLTest.java:27
↓ 1 callersMethodEvilObjectSnakeYamlTest
(Yaml yaml)
src/test/java/icu/secnotes/test/SnakeYAMLTest.java:37
↓ 1 callersMethodEvilObjectXMLDecoderTest
恶意payload测试方法 - 执行系统命令
src/test/java/icu/secnotes/test/XMLDecoderTest.java:83
↓ 1 callersMethodJNDISnakeYamlTest
(Yaml yaml)
src/test/java/icu/secnotes/test/SnakeYAMLTest.java:17
↓ 1 callersMethodObjectSnakeYamlTest
(Yaml yaml)
src/test/java/icu/secnotes/test/SnakeYAMLTest.java:51
↓ 1 callersMethodObjectXMLDecoderTest
()
src/test/java/icu/secnotes/test/XMLDecoderTest.java:19
↓ 1 callersMethodbuildBaseUrl
(HttpServletRequest request)
src/main/java/icu/secnotes/controller/XML/XxeSsrfController.java:43
↓ 1 callersMethodbytesToHex
(byte[] hash)
src/test/java/icu/secnotes/test/Sha256Test.java:35
↓ 1 callersMethodchangePassword
修改密码 - 二次注入版本(通过 username) @param username 用户名 @param newPassword 新密码 @return 影响的行数
src/main/java/icu/secnotes/service/LoginService.java:16
↓ 1 callersMethodchangePasswordByUserId
修改密码 - CSRF演示版本(通过 userId,不验证旧密码) @param userId 用户ID @param newPassword 新密码 @return 是否修改成功
src/main/java/icu/secnotes/service/LoginService.java:24
↓ 1 callersMethodchangePasswordSecure
修改密码 - CSRF防护(验证旧密码) @param userId 用户ID @param oldPassword 旧密码 @param newPassword 新密码 @return 影响行数
src/main/java/icu/secnotes/mapper/LoginMapper.java:63
↓ 1 callersMethodchangePasswordSecure
修改密码 - CSRF防护(验证旧密码) @param userId 用户ID @param oldPassword 旧密码 @param newPassword 新密码 @return 是否修改成功
src/main/java/icu/secnotes/service/LoginService.java:33
↓ 1 callersMethodcheckCommand
命令执行恶意字符检测
src/main/java/icu/secnotes/utils/Security.java:40
↓ 1 callersMethodcheckFilename
文件名检测
src/main/java/icu/secnotes/utils/Security.java:96
↓ 1 callersMethodcheckIp
合法IP地址检测
src/main/java/icu/secnotes/utils/Security.java:53
↓ 1 callersMethodcheckUserExistsByDollar
使用 ${} 检查用户是否存在(漏洞版本) ⚠️ 漏洞原因: 1. ${} 是字符串替换,直接将参数值拼接到 SQL 中 2. 不进行任何转义和预编译,相当于 JDBC 的字符串拼接 3. 攻击者可以注入任意 SQL 语句 示例: - 正常输入:username = "admin" 生成SQ
src/main/java/icu/secnotes/mapper/BooleanBlindMapper.java:33
↓ 1 callersMethodcheckUserExistsByDollar
使用 ${} 检查用户是否存在(漏洞版本) @param username 用户名 @return 用户数量
src/main/java/icu/secnotes/service/BooleanBlindService.java:13
↓ 1 callersMethodcheckUserExistsBySharp
使用 #{} 检查用户是否存在(安全版本) ✅ 安全原因: 1. #{} 是参数绑定,底层使用 PreparedStatement 2. 自动进行 SQL 预编译和参数转义 3. 用户输入仅作为数据值,无法改变 SQL 结构 示例: - 正常输入:username = "admin" 预编译
src/main/java/icu/secnotes/mapper/BooleanBlindMapper.java:57
↓ 1 callersMethodcheckUserExistsBySharp
使用 #{} 检查用户是否存在(安全版本) @param username 用户名 @return 用户数量
src/main/java/icu/secnotes/service/BooleanBlindService.java:20
↓ 1 callersMethodcheckUsernameExists
检查用户名是否已存在 @param username 用户名 @return 存在返回 1,否则返回 0
src/main/java/icu/secnotes/mapper/LoginMapper.java:115
↓ 1 callersMethodcheckUsernameExists
检查用户名是否存在 @param username 用户名 @return 是否存在
src/main/java/icu/secnotes/service/LoginService.java:55
↓ 1 callersMethodcontextSource
配置 LDAP 上下文源
src/main/java/icu/secnotes/config/LdapConfig.java:31
↓ 1 callersMethodcount
查询总记录数
src/main/java/icu/secnotes/mapper/UserMapper.java:41
↓ 1 callersMethodcountUserLoginLogByIp
(String ip)
src/main/java/icu/secnotes/service/UserLoginLogService.java:13
↓ 1 callersMethodcreateCredentials
生成密钥 @return 生成的密钥信息
src/main/java/icu/secnotes/utils/GoogleAuthenticatorUtil.java:17
↓ 1 callersMethodcreateMfaSecret
(MfaSecret mfaSecret)
src/main/java/icu/secnotes/service/MfaSecretService.java:8
↓ 1 callersMethodcustomShiroRealm
创建自定义Realm
src/main/java/icu/secnotes/config/ShiroConfig.java:74
↓ 1 callersMethoddecodeBasicAuth
HTTP Basic Auth认证信息解码
src/main/java/icu/secnotes/utils/Security.java:75
↓ 1 callersMethoddelete
删除用户的mfa secret字符串,相当于重置MFA @param mfaSecret @return
src/main/java/icu/secnotes/mapper/MfaSecretMapper.java:22
↓ 1 callersMethoddeleteMfaSecret
(MfaSecret mfaSecret)
src/main/java/icu/secnotes/service/MfaSecretService.java:11
↓ 1 callersMethoddeleteUserLoginLogByIp
(String ip)
src/main/java/icu/secnotes/service/UserLoginLogService.java:11
↓ 1 callersMethoddeserializeFromJSON
从JSON字符串反序列化对象
src/main/java/icu/secnotes/controller/Components/JacksonController.java:82
↓ 1 callersMethoddeserializeFromJSON
从JSON字符串反序列化对象
src/main/java/icu/secnotes/controller/Components/XStreamController.java:183
↓ 1 callersMethoddeserializeFromXMLSecurely
使用安全配置的XStream进行反序列化
src/main/java/icu/secnotes/controller/Components/XStreamController.java:192
↓ 1 callersMethodfindAll
查询全部员工列表(不限数量)
src/main/java/icu/secnotes/mapper/GraphQLMapper.java:41
↓ 1 callersMethodfindAll
(Integer limit)
src/main/java/icu/secnotes/service/GraphQLService.java:13
↓ 1 callersMethodfindAllWithLimit
查询员工列表(支持数量限制)
src/main/java/icu/secnotes/mapper/GraphQLMapper.java:32
↓ 1 callersMethodfindById
(Long id)
src/main/java/icu/secnotes/service/GraphQLService.java:11
↓ 1 callersMethodgenerateAndDisplayJwt
()
src/test/java/icu/secnotes/test/JwtTest.java:85
↓ 1 callersMethodgenerateCodeByPhoneAndCode
(String phone, String code, LocalDateTime createTime, LocalDateTime expireTime)
src/main/java/icu/secnotes/service/SmsCodeService.java:13
next →1–100 of 498, ranked by callers