Code
Hub
Workspaces
Following
Trending
Connect
MCP
copy
Create free account
hub
/
github.com/bansh2eBreak/SpringVulnBoot-backend
/ functions
Functions
498 in github.com/bansh2eBreak/SpringVulnBoot-backend
⨍
Functions
498
◇
Types & classes
132
↓ 1 callers
Method
generateJwt
JWT 令牌生成方法 @param claims JWT第二部分载荷,payload中存储的内容 @return
src/test/java/icu/secnotes/test/JwtTest.java:22
↓ 1 callers
Method
generateJwt
JWT 令牌生成方法 @param claims JWT第二部分载荷,paylaod中存储的内容 @return
src/main/java/icu/secnotes/utils/JwtUtils.java:20
↓ 1 callers
Method
generateRS256Jwt
生成RS256签名的JWT 使用私钥签名 @param claims JWT第二部分载荷,payload中存储的内容 @return
src/main/java/icu/secnotes/utils/JwtRS256Utils.java:48
↓ 1 callers
Method
generateRememberMe
()
src/test/java/icu/secnotes/test/ShiroExpTest.java:35
↓ 1 callers
Method
generateStrongJwt
JWT 令牌生成方法 - 使用强密码 @param claims JWT第二部分载荷,payload中存储的内容 @return
src/main/java/icu/secnotes/utils/JwtWeakUtils.java:37
↓ 1 callers
Method
generateURLDNSChain
生成URLDNS链的序列化数据 使用HashMap + URL的方式实现DNSLOG攻击
src/main/java/icu/secnotes/controller/DeSerialize/DeSerializeController.java:252
↓ 1 callers
Method
generateURLDNSPayload
生成URLDNS链的payload
src/main/java/icu/secnotes/utils/Shiro550Util.java:23
↓ 1 callers
Method
generateWeakJwt
JWT 令牌生成方法 - 使用弱密码 @param claims JWT第二部分载荷,payload中存储的内容 @return
src/main/java/icu/secnotes/utils/JwtWeakUtils.java:22
↓ 1 callers
Method
getAdminById
(String id)
src/main/java/icu/secnotes/service/LoginService.java:8
↓ 1 callers
Method
getAllUserLoginLogs
查询所有用户的最新登录日志
src/main/java/icu/secnotes/mapper/UserLoginLogMapper.java:36
↓ 1 callers
Method
getAllUserLoginLogs
()
src/main/java/icu/secnotes/service/UserLoginLogService.java:15
↓ 1 callers
Method
getAllUsers
获取所有用户
src/main/java/icu/secnotes/mapper/UserMapper.java:68
↓ 1 callers
Method
getAllUsers
()
src/main/java/icu/secnotes/service/UserService.java:27
↓ 1 callers
Method
getArticleByIdSec
使用 #{} 查询文章(安全版本) ✅ 安全原因: 1. #{} 是参数绑定,底层使用 PreparedStatement 2. 自动进行 SQL 预编译和参数转义 3. 用户输入仅作为数据值,无法改变 SQL 结构 示例: - 正常输入:id = "1" 预编译SQL:SELECT id,
src/main/java/icu/secnotes/mapper/UnionInjectionMapper.java:60
↓ 1 callers
Method
getArticleByIdSec
使用 #{} 查询文章(安全版本) @param id 文章ID @return 文章列表
src/main/java/icu/secnotes/service/UnionInjectionService.java:23
↓ 1 callers
Method
getArticleByIdVuln
使用 ${} 查询文章(漏洞版本) ⚠️ 漏洞原因: 1. ${} 是字符串替换,直接将参数值拼接到 SQL 中 2. 不进行任何转义和预编译,相当于 JDBC 的字符串拼接 3. 攻击者可以注入 UNION SELECT 语句,获取其他表的数据 示例: - 正常输入:id = "1" 生成
src/main/java/icu/secnotes/mapper/UnionInjectionMapper.java:36
↓ 1 callers
Method
getArticleByIdVuln
使用 ${} 查询文章(漏洞版本) @param id 文章ID @return 文章列表
src/main/java/icu/secnotes/service/UnionInjectionService.java:16
↓ 1 callers
Method
getClientIpSec
获取客户端IP - 安全的方式 只信任直接连接的IP
src/main/java/icu/secnotes/controller/Other/IpSpoofingController.java:149
↓ 1 callers
Method
getClientIpVuln
获取客户端IP - 存在漏洞的方式 信任HTTP头,容易被伪造
src/main/java/icu/secnotes/controller/Other/IpSpoofingController.java:121
↓ 1 callers
Method
getPathRoleMapping
获取所有需要权限验证的路径模式(使用缓存)
src/main/java/icu/secnotes/config/PermissionConfig.java:108
↓ 1 callers
Method
getPublicKeyForAlgorithmConfusion
获取用于算法混淆攻击的公钥(Base64格式) 攻击者可以使用此公钥作为HMAC密钥来签名HS256 JWT
src/main/java/icu/secnotes/utils/JwtRS256Utils.java:148
↓ 1 callers
Method
getQRCodeUrl
生成二维码URL @param username 用户名 @param issuer 发行者(一般是应用名称) @param secret 密钥 @return 二维码URL
src/main/java/icu/secnotes/utils/GoogleAuthenticatorUtil.java:28
↓ 1 callers
Method
getRsaPublicKeyObject
获取RSA公钥对象(用于验证)
src/main/java/icu/secnotes/utils/JwtRS256Utils.java:140
↓ 1 callers
Method
getUserByUsernameTime
(String username)
src/main/java/icu/secnotes/service/TimeBasedInjectionService.java:8
↓ 1 callers
Method
getUserByUsernameTimeSafe
(String username)
src/main/java/icu/secnotes/service/TimeBasedInjectionService.java:9
↓ 1 callers
Method
hasPermission
检查用户是否有权限访问指定路径
src/main/java/icu/secnotes/interceptor/PermissionInterceptor.java:89
↓ 1 callers
Method
insert
生成用户的mfa secret字符串 @param mfaSecret @return
src/main/java/icu/secnotes/mapper/MfaSecretMapper.java:14
↓ 1 callers
Method
insertMessage
添加留言
src/main/java/icu/secnotes/service/MessageBoardService.java:10
↓ 1 callers
Method
insertSmsCode
插入短信验证码,第一次生成,状态为未使用、有效期为5分钟、重试次数为0
src/main/java/icu/secnotes/mapper/SmsCodeMapper.java:17
↓ 1 callers
Method
insertSmsCodeByPhoneAndCode
插入短信验证码,参数是phone和code,其他字段使用默认值
src/main/java/icu/secnotes/mapper/SmsCodeMapper.java:23
↓ 1 callers
Method
insertUserLoginLog
(String username, String ip, LocalDateTime loginTime, String loginResult)
src/main/java/icu/secnotes/service/UserLoginLogService.java:9
↓ 1 callers
Method
isAllowedClass
检查XML数据是否在白名单中
src/main/java/icu/secnotes/controller/Components/XMLDecoderController.java:139
↓ 1 callers
Method
isAllowedClass
检查XML数据是否在白名单中
src/main/java/icu/secnotes/controller/Components/XStreamController.java:207
↓ 1 callers
Method
isCommonAuthPath
检查路径是否为基础接口(只需登录即可,无需特定角色)
src/main/java/icu/secnotes/config/PermissionConfig.java:128
↓ 1 callers
Method
isInternalIP
(String host)
src/main/java/icu/secnotes/controller/SSRF/SSRFController.java:72
↓ 1 callers
Method
isPublicPath
检查路径是否为公共路径(无需权限) 使用 Ant 路径匹配器,支持 / 通配符
src/main/java/icu/secnotes/config/PermissionConfig.java:116
↓ 1 callers
Method
login
(Admin admin)
src/main/java/icu/secnotes/service/LoginService.java:6
↓ 1 callers
Method
matchPath
公共路径匹配方法(供其他类使用,避免重复创建 AntPathMatcher 实例)
src/main/java/icu/secnotes/config/PermissionConfig.java:140
↓ 1 callers
Method
pageOrderBy
支持按字段排序的分页查询,获取用户列表数据(漏洞版本 - 使用 ${})
src/main/java/icu/secnotes/mapper/UserMapper.java:47
↓ 1 callers
Method
parseAndDisplayJwt
解析JWT并分别展示header和payload @param jwttoken JWT令牌
src/test/java/icu/secnotes/test/JwtTest.java:50
↓ 1 callers
Method
parseJwt
JWT 令牌解析方法 - 使用弱密码 @param jwttoken @return
src/test/java/icu/secnotes/test/JwtTest.java:37
↓ 1 callers
Method
parseRS256Jwt
解析RS256签名的JWT 使用公钥验证 @param jwttoken @return
src/main/java/icu/secnotes/utils/JwtRS256Utils.java:64
↓ 1 callers
Method
parseSecureJwt
JWT 令牌解析方法 - 安全实现(严格验证签名) @param jwttoken @return
src/main/java/icu/secnotes/utils/JwtSignatureUtils.java:49
↓ 1 callers
Method
parseStrongJwt
JWT 令牌解析方法 - 使用强密码 @param jwttoken @return
src/main/java/icu/secnotes/utils/JwtWeakUtils.java:66
↓ 1 callers
Method
parseVulnJwt
JWT 令牌解析方法 - 漏洞实现(接受没有签名的令牌) @param jwttoken @return
src/main/java/icu/secnotes/utils/JwtSignatureUtils.java:34
↓ 1 callers
Method
parseWeakJwt
JWT 令牌解析方法 - 使用弱密码 @param jwttoken @return
src/main/java/icu/secnotes/utils/JwtWeakUtils.java:52
↓ 1 callers
Method
passwordEncoder
()
src/main/java/icu/secnotes/config/SecurityConfig.java:22
↓ 1 callers
Method
passwordLogin
(User user)
src/main/java/icu/secnotes/service/UserService.java:19
↓ 1 callers
Method
passwordLogin2
(String username, String password)
src/main/java/icu/secnotes/service/UserService.java:21
↓ 1 callers
Method
register
用户注册(使用预编译,安全) 注册的用户默认为 guest 角色 @param admin 包含 username, password, name @return 影响行数
src/main/java/icu/secnotes/mapper/LoginMapper.java:125
↓ 1 callers
Method
register
用户注册 @param admin 用户信息 @return 是否注册成功
src/main/java/icu/secnotes/service/LoginService.java:62
↓ 1 callers
Method
rememberMeManager
创建RememberMe管理器 注意:这里使用的是Shiro 1.2.4版本的硬编码密钥,用于漏洞测试
src/main/java/icu/secnotes/config/ShiroConfig.java:83
↓ 1 callers
Method
resolveVulnerableViewName
(String lang)
src/main/java/icu/secnotes/controller/SSTI/ThymeleafSstiController.java:74
↓ 1 callers
Method
searchByKeyword
SQL注入-漏洞版:${keyword} 直接拼接,存在注入风险 攻击 Payload:' OR 1=1 --
src/main/java/icu/secnotes/mapper/GraphQLMapper.java:50
↓ 1 callers
Method
searchByKeyword
SQL注入-漏洞版:keyword 直接拼接到 SQL
src/main/java/icu/secnotes/service/GraphQLService.java:16
↓ 1 callers
Method
secureSearchByKeyword
SQL注入-安全版:#{keyword} 参数化查询,防止注入
src/main/java/icu/secnotes/mapper/GraphQLMapper.java:59
↓ 1 callers
Method
secureSearchByKeyword
SQL注入-安全版:参数化查询
src/main/java/icu/secnotes/service/GraphQLService.java:19
↓ 1 callers
Method
selectByPhoneAndCode
根据phone和code校验短信验证码,限制只能校验未使用且未过期且重试次数小于5的验证码
src/main/java/icu/secnotes/mapper/SmsCodeMapper.java:47
↓ 1 callers
Method
selectByPhoneAndCode2
根据phone和code校验短信验证码,未限制验证码的使用状态,可重复使用
src/main/java/icu/secnotes/mapper/SmsCodeMapper.java:53
↓ 1 callers
Method
selectByUserId
根据用户ID查询MFA密钥 @param userId @return
src/main/java/icu/secnotes/mapper/MfaSecretMapper.java:30
↓ 1 callers
Method
selectMessage
查询留言
src/main/java/icu/secnotes/mapper/MessageBoardMapper.java:21
↓ 1 callers
Method
selectMessage
查询留言
src/main/java/icu/secnotes/service/MessageBoardService.java:15
↓ 1 callers
Method
selectRetryCount
查询手机验证码的校验次数,但是根据phone可能查询到多条记录,这里需要只返回最新一条记录的重试次数
src/main/java/icu/secnotes/mapper/SmsCodeMapper.java:41
↓ 1 callers
Method
selectRetryCount
(String phone)
src/main/java/icu/secnotes/service/SmsCodeService.java:23
↓ 1 callers
Method
selectUserById
(String id)
src/main/java/icu/secnotes/service/UserService.java:8
↓ 1 callers
Method
selectUserByUsername
(String username)
src/main/java/icu/secnotes/service/UserService.java:10
↓ 1 callers
Method
selectUserByUsernameTime
根据username查询用户,用于演示基于时间盲注 @param username @return
src/main/java/icu/secnotes/mapper/TimeBasedInjectionMapper.java:15
↓ 1 callers
Method
selectUserByUsernameTimeSafe
根据username查询用户,用于演示防御基于时间盲注 @param username @return
src/main/java/icu/secnotes/mapper/TimeBasedInjectionMapper.java:23
↓ 1 callers
Method
selectUserSecByUsername
根据username查询用户,使用预编译 @param username @return
src/main/java/icu/secnotes/mapper/UserMapper.java:35
↓ 1 callers
Method
selectUserSecByUsername
(String username)
src/main/java/icu/secnotes/service/UserService.java:17
↓ 1 callers
Method
serializeToBase64
将对象序列化为Base64字符串
src/main/java/icu/secnotes/utils/SerializationUtil.java:36
↓ 1 callers
Method
serializeToJSON
将对象序列化为JSON字符串
src/main/java/icu/secnotes/controller/Components/JacksonController.java:74
↓ 1 callers
Method
serializeToJSON
将对象序列化为JSON字符串
src/main/java/icu/secnotes/controller/Components/XStreamController.java:174
↓ 1 callers
Method
serializeToXML
将对象序列化为XML字符串
src/test/java/icu/secnotes/test/XMLDecoderTest.java:46
↓ 1 callers
Method
serializeToXML
将对象序列化为XML字符串
src/main/java/icu/secnotes/controller/Components/XStreamController.java:165
↓ 1 callers
Method
setName
(String name)
src/main/java/icu/secnotes/controller/XML/XxeController.java:520
↓ 1 callers
Method
testGenericCommandExecution
测试通用命令执行
src/test/java/icu/secnotes/test/XMLDecoderTest.java:171
↓ 1 callers
Method
testJNDIInjection
测试JNDI注入(预留)
src/test/java/icu/secnotes/test/XMLDecoderTest.java:219
↓ 1 callers
Method
testProcessBuilderCommand
测试使用ProcessBuilder执行系统命令
src/test/java/icu/secnotes/test/XMLDecoderTest.java:102
↓ 1 callers
Method
testRuntimeExecCommand
测试使用Runtime.exec执行系统命令
src/test/java/icu/secnotes/test/XMLDecoderTest.java:141
↓ 1 callers
Method
toString
()
src/main/java/icu/secnotes/pojo/Person.java:26
↓ 1 callers
Method
update
更新用户的mfa secret字符串 @param mfaSecret @return
src/main/java/icu/secnotes/mapper/MfaSecretMapper.java:38
↓ 1 callers
Method
updateAdmin
更新管理员信息(用于 Mass Assignment 漏洞演示) @param admin 管理员对象 @return 是否更新成功
src/main/java/icu/secnotes/service/LoginService.java:48
↓ 1 callers
Method
updateSmsCodeRetryCount
更新“未使用的”验证码的重试次数,每使用一次重试次数加1,并且只更新最新一条未使用的验证码的重试次数
src/main/java/icu/secnotes/mapper/SmsCodeMapper.java:35
↓ 1 callers
Method
updateSmsCodeRetryCount
(String phone)
src/main/java/icu/secnotes/service/SmsCodeService.java:21
↓ 1 callers
Method
updateSmsCodeUsed
更新验证码的使用状态和重试次数,第一次使用更新使用状态,后续每次使用增加重试次数 @param smsCode
src/main/java/icu/secnotes/service/SmsCodeService.java:19
↓ 1 callers
Method
updateUserPassword
(User user)
src/main/java/icu/secnotes/service/UserService.java:24
↓ 1 callers
Method
verifyCode
验证动态口令 @param secret 密钥 @param code 待验证的口令 @return 是否验证通过
src/main/java/icu/secnotes/utils/GoogleAuthenticatorUtil.java:38
↓ 1 callers
Method
verifyCode2
(String phone, String code)
src/main/java/icu/secnotes/service/SmsCodeService.java:33
↓ 1 callers
Method
verifyOldPassword
验证旧密码 @param userId 用户ID @param oldPassword 旧密码 @return 管理员信息
src/main/java/icu/secnotes/mapper/LoginMapper.java:72
↓ 1 callers
Method
verifyOldPassword
验证旧密码 @param userId 用户ID @param oldPassword 旧密码 @return 是否验证成功
src/main/java/icu/secnotes/service/LoginService.java:41
↓ 1 callers
Method
verifySecure
安全的JWT验证方法 - 修复算法混淆漏洞 强制校验JWT必须是RS256算法,不允许其他算法
src/main/java/icu/secnotes/utils/JwtRS256Utils.java:157
↓ 1 callers
Method
verifyVulnerable
易受算法混淆攻击的JWT验证方法 完全按照Burp Suite官方文档的伪代码实现 漏洞原理: 1. 根据JWT header中的alg字段动态选择验证算法 2. 如果alg="RS256",使用公钥作为RSA公钥验证 3. 如果alg="HS256",使用公钥作为HMAC密钥验证 4. 攻击者可
src/main/java/icu/secnotes/utils/JwtRS256Utils.java:84
↓ 1 callers
Method
xssFilter
xss恶意字符过滤
src/main/java/icu/secnotes/utils/Security.java:27
Method
MfaSecret
(Integer userId, String secret)
src/main/java/icu/secnotes/pojo/MfaSecret.java:18
Method
OrderByField
(String fieldName)
src/main/java/icu/secnotes/controller/SQLI/OrderByInjectionController.java:162
Method
Result
()
src/main/java/icu/secnotes/pojo/Result.java:11
Method
Sec1
(String name)
src/main/java/icu/secnotes/controller/XSS/ReflectedController.java:23
Method
Sec1
(String input)
src/main/java/icu/secnotes/controller/Components/Log4j2Controller.java:25
Method
Sec2
采用Spring自带的HtmlUtils方法防止xss脚本攻击
src/main/java/icu/secnotes/controller/XSS/ReflectedController.java:33
← previous
next →
101–200 of 498, ranked by callers