MCPcopy Create free account

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

Functions498 in github.com/bansh2eBreak/SpringVulnBoot-backend

MethodSec3
采用OWASP Java Encoder方法防止xss攻击
src/main/java/icu/secnotes/controller/XSS/ReflectedController.java:43
MethodSecureObjectInputStream
(InputStream in)
src/main/java/icu/secnotes/controller/DeSerialize/DeSerializeController.java:417
MethodVuln1
(String name)
src/main/java/icu/secnotes/controller/XSS/ReflectedController.java:17
MethodVuln1
(String input)
src/main/java/icu/secnotes/controller/Components/Log4j2Controller.java:19
MethodaddInterceptors
(InterceptorRegistry registry)
src/main/java/icu/secnotes/config/WebConfig.java:19
MethodaddMessage
添加留言
src/main/java/icu/secnotes/controller/XSS/StoredController.java:24
MethodaddMessageSec
ESAPI安全工具包防御xss
src/main/java/icu/secnotes/controller/XSS/StoredController.java:46
MethodafterCompletion
视图渲染完毕后执行,最后运行 @param request @param response @param handler @param ex @throws Exception
src/main/java/icu/secnotes/interceptor/LoginCheckInterceptor.java:140
Methodbase64Deserialize
场景4:基础反序列化漏洞 - 接受Base64编码的序列化数据 更加自由的反序列化任何数据,这是最危险的场景
src/main/java/icu/secnotes/controller/DeSerialize/DeSerializeController.java:341
MethodbindMfaSecret
用户绑定MFA密钥 @param mfaSecret @return
src/main/java/icu/secnotes/controller/AccessControll/HorizontalPriVulnController.java:32
MethodchangePassword
修改密码接口 - 存在二次注入漏洞 ⚠️ 从 JWT 中提取 username(该 username 是从数据库读取的,可能包含恶意 SQL)
src/main/java/icu/secnotes/controller/LoginController.java:89
MethodchangePassword
(String username, String newPassword)
src/main/java/icu/secnotes/service/impl/LoginServiceImpl.java:25
MethodchangePasswordByUserId
(String userId, String newPassword)
src/main/java/icu/secnotes/service/impl/LoginServiceImpl.java:30
MethodchangePasswordSec
安全场景:管理员修改用户密码 - 后端严格校验MFA
src/main/java/icu/secnotes/controller/Authentication/MFAAuthVulnController.java:91
MethodchangePasswordSecure
修改密码接口 - CSRF防护(演示用) 验证旧密码,防止CSRF攻击
src/main/java/icu/secnotes/controller/CSRF/CsrfController.java:69
MethodchangePasswordSecure
(String userId, String oldPassword, String newPassword)
src/main/java/icu/secnotes/service/impl/LoginServiceImpl.java:40
MethodchangePasswordVuln
漏洞场景:管理员修改用户密码 - 仅前端验证MFA,后端不校验 攻击者可以通过直接调用API绕过MFA验证
src/main/java/icu/secnotes/controller/Authentication/MFAAuthVulnController.java:30
MethodchangePasswordVuln
修改密码接口 - 存在CSRF漏洞(演示用) 只验证新密码,不验证旧密码,容易被CSRF攻击
src/main/java/icu/secnotes/controller/CSRF/CsrfController.java:35
MethodchangePasswordWithToken
修改密码接口 - CSRF Token防护(演示用) 使用CSRF Token机制防止CSRF攻击
src/main/java/icu/secnotes/controller/CSRF/CsrfController.java:136
Methodcharacters
(char[] ch, int start, int length)
src/main/java/icu/secnotes/controller/XML/XxeController.java:498
MethodcheckLog4j2
过滤Log4j2日志中的特殊字符
src/main/java/icu/secnotes/utils/Security.java:88
MethodcheckPhone
手机号码正则校验
src/main/java/icu/secnotes/utils/Security.java:105
MethodcheckUserExistsByDollar
(String username)
src/main/java/icu/secnotes/service/impl/BooleanBlindServiceImpl.java:17
MethodcheckUserExistsBySharp
(String username)
src/main/java/icu/secnotes/service/impl/BooleanBlindServiceImpl.java:22
MethodcheckUserExistsSec
布尔盲注 - 安全版本(使用 #{} 参数绑定) 防御方法:使用 MyBatis 的 #{} 进行参数绑定(预编译) 原理:#{} 底层使用 PreparedStatement,SQL 结构在编译时确定,用户输入仅作为数据值 @param username 用户名 @return 用户名是否存在
src/main/java/icu/secnotes/controller/SQLI/BooleanBlindMybatisController.java:94
MethodcheckUserExistsSec
布尔盲注 - 安全版本(预编译) 防御方法:使用 PreparedStatement 预编译 + 参数绑定 原理:SQL 语句结构在编译时就已确定,用户输入仅作为数据值,无法改变 SQL 逻辑 @param username 用户名 @return 用户名是否存在
src/main/java/icu/secnotes/controller/SQLI/BooleanBlindJdbcController.java:131
MethodcheckUserExistsVuln
布尔盲注 - 漏洞版本(使用 ${} 拼接) 场景:用户注册时检查用户名是否已被占用 漏洞:使用 ${} 直接拼接 SQL,允许注入条件判断语句 @Poc1(正常): http://127.0.0.1:8080/sqli/boolean/mybatis/checkUserExistsVuln?u
src/main/java/icu/secnotes/controller/SQLI/BooleanBlindMybatisController.java:62
MethodcheckUserExistsVuln
布尔盲注 - 漏洞版本(字符串拼接) 场景:用户注册时检查用户名是否已被占用 漏洞:直接拼接 SQL,允许注入条件判断语句 @Poc1(正常): http://127.0.0.1:8080/sqli/boolean/jdbc/checkUserExistsVuln?username=admin
src/main/java/icu/secnotes/controller/SQLI/BooleanBlindJdbcController.java:68
MethodcheckUsernameExists
(String username)
src/main/java/icu/secnotes/service/impl/LoginServiceImpl.java:70
MethodcontextLoads
()
src/test/java/icu/secnotes/SpringVulnBootApplicationTests.java:9
MethodcorsFilter
()
src/main/java/icu/secnotes/config/CorsConfig.java:16
MethodcountUserLoginLogByIp
(String ip)
src/main/java/icu/secnotes/service/impl/UserLoginLogServiceImpl.java:27
MethodcreateMfaSecret
(MfaSecret mfaSecret)
src/main/java/icu/secnotes/service/impl/MfaSecretServiceImpl.java:15
MethodcustomOpenAPI
()
src/main/java/icu/secnotes/config/OpenApiConfig.java:19
MethoddefaultKaptcha
()
src/main/java/icu/secnotes/config/CorsConfig.java:67
MethoddeleteMfaSecret
(MfaSecret mfaSecret)
src/main/java/icu/secnotes/service/impl/MfaSecretServiceImpl.java:20
MethoddeleteUserLoginLogByIp
(String ip)
src/main/java/icu/secnotes/service/impl/UserLoginLogServiceImpl.java:22
Methoddeserialize
(String filename)
src/test/java/icu/secnotes/test/ShiroExpTest.java:26
MethoddeserializeBadPerson
场景2:恶意对象反序列化 - 反序列化BadPerson对象,自动执行危险命令
src/main/java/icu/secnotes/controller/DeSerialize/DeSerializeController.java:156
MethoddeserializePerson
场景1:基础反序列化演示 - 从上传的文件反序列化Person对象
src/main/java/icu/secnotes/controller/DeSerialize/DeSerializeController.java:62
MethoddeserializePersonFromJson
Jackson JSON反序列化演示 - 基础功能演示
src/main/java/icu/secnotes/controller/Components/JacksonController.java:37
MethoddeserializePersonFromJson
XStream JSON反序列化演示 - 通过读取前端提交的JSON内容进行反序列化
src/main/java/icu/secnotes/controller/Components/XStreamController.java:78
MethoddeserializePersonFromXml
XStream XML反序列化演示 - 通过读取前端提交的XML内容进行反序列化
src/main/java/icu/secnotes/controller/Components/XStreamController.java:41
MethoddeserializeURLDNS
场景3:URLDNS链反序列化 - 反序列化URLDNS链,触发DNS查询
src/main/java/icu/secnotes/controller/DeSerialize/DeSerializeController.java:283
MethoddoGetAuthenticationInfo
认证方法
src/main/java/icu/secnotes/config/CustomShiroRealm.java:48
MethoddoGetAuthorizationInfo
授权方法
src/main/java/icu/secnotes/config/CustomShiroRealm.java:18
Methoddom4jSecure
SAXReader 安全代码 禁用外部实体和DTD,防止XXE攻击
src/main/java/icu/secnotes/controller/XML/XxeController.java:385
Methoddom4jVulnerable
SAXReader 漏洞代码 dom4j库的SAXReader解析器,默认配置存在XXE漏洞
src/main/java/icu/secnotes/controller/XML/XxeController.java:354
MethoddownloadExample
下载示例 Webshell 文件
src/main/java/icu/secnotes/controller/FileInclusion/FileInclusionController.java:256
Methoddtd
返回用于“外部参数实体 - 加载外部 DTD”演示的 DTD 内容
src/main/java/icu/secnotes/controller/XML/XxeSsrfController.java:31
MethodfastjsonSec1
(@RequestBody String json)
src/main/java/icu/secnotes/controller/Components/FastjsonController.java:29
MethodfastjsonVuln1
(@RequestBody String json)
src/main/java/icu/secnotes/controller/Components/FastjsonController.java:17
MethodfilterChain
(HttpSecurity http)
src/main/java/icu/secnotes/config/SecurityConfig.java:39
MethodfindAll
(Integer limit)
src/main/java/icu/secnotes/service/impl/GraphQLServiceImpl.java:25
MethodfindById
(Long id)
src/main/java/icu/secnotes/service/impl/GraphQLServiceImpl.java:20
MethodforgotPasswordSec
安全版"忘记密码":用 SecureRandom 生成不可预测 token
src/main/java/icu/secnotes/controller/PasswordSecurity/PredictableSeedController.java:88
MethodforgotPasswordSec
安全版"忘记密码"接口:从配置文件读 baseUrl,Host 头无效
src/main/java/icu/secnotes/controller/Other/HostHeaderInjectionController.java:74
MethodforgotPasswordVuln
漏洞版"忘记密码":用可预测的 java.util.Random 生成 token
src/main/java/icu/secnotes/controller/PasswordSecurity/PredictableSeedController.java:51
MethodforgotPasswordVuln
漏洞版"忘记密码"接口:用 Host 头拼接重置链接
src/main/java/icu/secnotes/controller/Other/HostHeaderInjectionController.java:50
MethodgenerateCode
(SmsCode smsCode)
src/main/java/icu/secnotes/service/impl/SmsCodeServiceImpl.java:17
MethodgenerateCodeByPhoneAndCode
(String phone, String code, LocalDateTime createTime, LocalDateTime expireTime)
src/main/java/icu/secnotes/service/impl/SmsCodeServiceImpl.java:22
MethodgenerateCsrfToken
生成CSRF Token接口 用于演示CSRF Token机制
src/main/java/icu/secnotes/controller/CSRF/CsrfController.java:114
MethodgeneratePersonObjectData
生成Person对象的Base64序列化数据
src/main/java/icu/secnotes/utils/SerializationUtil.java:26
MethodgenerateURLDNSPayload
生成URLDNS链payload
src/main/java/icu/secnotes/controller/Components/ShiroController.java:27
MethodgetAdminById
(String id)
src/main/java/icu/secnotes/service/impl/LoginServiceImpl.java:20
MethodgetAdminInfo
获取登录管理员账号的信息
src/main/java/icu/secnotes/controller/LoginController.java:56
MethodgetAge
()
src/main/java/icu/secnotes/controller/XML/XxeController.java:525
MethodgetAge
()
src/main/java/icu/secnotes/pojo/BadPerson.java:20
MethodgetAllUserLoginLogs
查询所有用户登录日志
src/main/java/icu/secnotes/controller/Other/IpSpoofingController.java:157
MethodgetAllUserLoginLogs
()
src/main/java/icu/secnotes/service/impl/UserLoginLogServiceImpl.java:32
MethodgetAllUsers
()
src/main/java/icu/secnotes/service/impl/UserServiceImpl.java:60
MethodgetArticleByIdSec
(String id)
src/main/java/icu/secnotes/service/impl/UnionInjectionServiceImpl.java:24
MethodgetArticleByIdVuln
(String id)
src/main/java/icu/secnotes/service/impl/UnionInjectionServiceImpl.java:19
MethodgetArticleSec
UNION 注入 - 安全版本(预编译) 防御方法:使用 PreparedStatement 预编译 + 参数绑定 原理:SQL 结构在编译时确定,用户输入仅作为数据值,无法注入 UNION 等关键字 @param id 文章ID @return 文章详情
src/main/java/icu/secnotes/controller/SQLI/UnionInjectionController.java:174
MethodgetArticleSec
UNION 注入 - 安全版本(使用 #{} 参数绑定) 防御方法:使用 MyBatis 的 #{} 进行参数绑定(预编译) 原理:#{} 底层使用 PreparedStatement,SQL 结构在编译时确定,用户输入仅作为数据值 @param id 文章ID @return 文章详情
src/main/java/icu/secnotes/controller/SQLI/UnionInjectionMybatisController.java:116
MethodgetArticleVuln
UNION 注入 - 漏洞版本(字符串拼接) 场景:根据文章 ID 查询文章详情 漏洞:直接拼接 SQL,允许使用 UNION 操作符注入额外查询 @Poc1(正常查询): http://127.0.0.1:8080/sqli/union/getArticleVuln?id=1 返回
src/main/java/icu/secnotes/controller/SQLI/UnionInjectionController.java:92
MethodgetArticleVuln
UNION 注入 - 漏洞版本(使用 ${} 拼接) 场景:根据文章 ID 查询文章详情 漏洞:使用 ${} 直接拼接 SQL,允许使用 UNION 操作符注入额外查询 @Poc1(正常查询): http://127.0.0.1:8080/sqli/union/mybatis/getArticl
src/main/java/icu/secnotes/controller/SQLI/UnionInjectionMybatisController.java:76
MethodgetAttackKey
获取用于算法混淆攻击的公钥
src/main/java/icu/secnotes/controller/JWT/JwtRS256Controller.java:125
MethodgetCaptcha
(HttpServletRequest request, HttpServletResponse response)
src/main/java/icu/secnotes/controller/Authentication/PassBasedAuthVulnController.java:148
MethodgetCurrentUser
获取当前登录用户信息(用于前端显示)
src/main/java/icu/secnotes/controller/MassAssignment/MassAssignmentController.java:157
MethodgetData
()
src/main/java/icu/secnotes/pojo/Result.java:36
MethodgetDefaultKey
获取硬编码密钥
src/main/java/icu/secnotes/utils/Shiro550Util.java:57
MethodgetMfaSecret
越权漏洞,可越权查询其他用户的MFA密钥 @param userId @return
src/main/java/icu/secnotes/controller/AccessControll/HorizontalPriVulnController.java:131
MethodgetMfaSecretByUnAuth
未授权访问漏洞,不需要认证登录就可以获取其他人的MFA密钥 @param userId @return
src/main/java/icu/secnotes/controller/AccessControll/UnauthorizedPriVulnController.java:27
MethodgetMsg
()
src/main/java/icu/secnotes/pojo/Result.java:28
MethodgetName
()
src/main/java/icu/secnotes/pojo/BadPerson.java:12
MethodgetSecretByUserId
(Integer userId)
src/main/java/icu/secnotes/service/impl/MfaSecretServiceImpl.java:25
MethodgetSecureMfaSecret
安全获取MFA密钥接口 使用JWT验证用户身份,防止越权访问 @param userId 用户ID @param request HTTP请求对象,用于获取JWT token @return MFA密钥信息
src/main/java/icu/secnotes/controller/AccessControll/UnauthorizedPriVulnController.java:44
MethodgetSecureMfaSecret
安全获取MFA密钥接口 使用JWT验证用户身份,防止越权访问 @param userId 用户ID @param request HTTP请求对象,用于获取JWT token @return MFA密钥信息
src/main/java/icu/secnotes/controller/AccessControll/HorizontalPriVulnController.java:148
MethodgetUserById
Jdbc:数字型sql注入-普通参数 @Poc http://127.0.0.1:8080/sqli/jdbc/getUserById?id=1 or 1=1 @param id @return @throws Exception
src/main/java/icu/secnotes/controller/SQLI/JdbcController.java:48
MethodgetUserById
Mybatis:数字型sql注入-路径参数 @Poc http://127.0.0.1:8080/sqlin/getUserById/1 or 1=2 @param id 用户id @return List<User>集合
src/main/java/icu/secnotes/controller/SQLI/MybatisController.java:29
MethodgetUserById2
Mybatis:数字型sql注入-普通参数 @Poc http://127.0.0.1:8080/sqlin/getUserById?id=1 or 1=1 @param id 用户id @return List<User>集合
src/main/java/icu/secnotes/controller/SQLI/MybatisController.java:40
MethodgetUserByIdError
Jdbc:数字型sql注入-普通参数 @Poc http://127.0.0.1:8080/sqli/jdbc/getUserById?id=1 or 1=1 @param id @return @throws Exception
src/main/java/icu/secnotes/controller/SQLI/JdbcController.java:128
MethodgetUserByIdError
extractvalue报错注入 - 数字型 @Poc http://127.0.0.1:8080/sqli/error/getUserByIdError?id=1 and extractvalue(1,concat(0x7e,(select version()),0x7e)) @param id
src/main/java/icu/secnotes/controller/SQLI/ErrorInjectionController.java:84
MethodgetUserByIdSec
(String id)
src/main/java/icu/secnotes/controller/SQLI/MybatisController.java:45
MethodgetUserByUsername
Jdbc:字符串型sql注入-普通参数 @Poc http://127.0.0.1:8080/sqli/jdbc/getUserByUsername?username=zhangsan' or 1=1 -- @param username @return @throws Exception
src/main/java/icu/secnotes/controller/SQLI/JdbcController.java:88
MethodgetUserByUsername
Mybatis:字符型sql注入-路径参数 @Poc http://127.0.0.1:8080/sqlin/getUserByUsername/lisi' or 'f'='f @param username @return
src/main/java/icu/secnotes/controller/SQLI/MybatisController.java:61
MethodgetUserByUsername2
Mybatis:字符型sql注入-普通参数 @Poc http://127.0.0.1:8080/sqli/mybatis/getUserByUsername?username=zhangsan' or 'f'='f http://127.0.0.1:8080/sqli/my
src/main/java/icu/secnotes/controller/SQLI/MybatisController.java:96
MethodgetUserByUsernameError
updatexml报错注入 - 字符串型 @Poc http://127.0.0.1:8080/sqli/error/getUserByUsernameError?username=zhangsan' and updatexml(1,concat(0x7e,(select database()),0
src/main/java/icu/secnotes/controller/SQLI/ErrorInjectionController.java:38
MethodgetUserByUsernameFilter
Jdbc:字符串型sql注入-恶意字符过滤
src/main/java/icu/secnotes/controller/SQLI/JdbcController.java:206
← previousnext →201–300 of 498, ranked by callers