k4n5ha0

Results 42 issues of k4n5ha0

jackson版本应不低于2.11.x 禁用 enableDefaultTyping 函数 禁用 JsonTypeInfo 注解 如需使用jackson快速存储数据到redis中应使用 activateDefaultTyping + 白名单过滤器 ``` // jackson白名单过滤 ObjectMapper om = new ObjectMapper(); BasicPolymorphicTypeValidator validator = BasicPolymorphicTypeValidator.builder() // 信任 com.china. 包下的类 .allowIfBaseType("com.china.") .allowIfSubType("com.china.") //...

日志注入攻击是将未经验证的用户输入写到日志文件中,可以允许攻击者伪造日志条目或将恶意内容注入到日志中。 如果用户提交val的字符串"twenty-one",则会记录以下条目: ``` INFO: Failed to parse val=twenty-one HACK: User logged in=badguy ``` 然而,如果攻击者提交包含换行符%0d和%0a的字符串”twenty-one%0d%0aHACK:+User+logged+in%3dbadguy”,会记录以下条目: ``` INFO: Failed to parse val=twenty-one HACK: User logged in=badguy ``` 显然,攻击者可以使用相同的机制插入任意日志条目。所以所有写入日志的条目必须去除\r和\n字符。 脆弱代码: ``` public void...

SpringBoot Actuator 如果不进行任何安全限制直接对外暴露访问接口,可导致敏感信息泄露甚至恶意命令执行。 解决方案: ``` // 参考版本 springboot 2.3.2 // pom.xml 配置参考 org.springframework.boot spring-boot-starter-actuator org.springframework.boot spring-boot-starter-security // application.properties 配置参考 #路径映射 management.endpoints.web.base-path=/lhdmon #允许访问的ip列表 management.access.iplist = 127.0.0.1,192.168.1.100,192.168.2.3/24,192.168.1.6 #指定端口 #management.server.port=8081 #关闭默认打开的endpoint management.endpoints.enabled-by-default=false #需要访问的endpoint在这里打开...

不安全的 Swagger 暴露 Swagger 如果不进行任何安全限制直接对外暴露端访问路径,可导致敏感接口以及接口的参数泄露。 解决方案: ``` // 测试环境配置文件 application.properties 中 swagger.enable=true // 生产环境配置文件 application.properties 中 swagger.enable=false // java代码中变量 swaggerEnable 通过读取配置文件设置swagger开关 @Configuration public class Swagger { @Value("${swagger.enable}") private boolean swaggerEnable;...

1、问题描述 java 代码安全规范的 1.5.4 外部输入拼接到HTTP响应头中需进行过滤 需补充 2、解决建议 应补充下列编码规范: ``` public void risk(HttpServletRequest request, HttpServletResponse response) { String val = request.getParameter("val"); try { int value = Integer.parseInt(val); } catch (NumberFormatException e)...

1、问题描述 java 代码安全规范的【1.10.3条】【建议】加锁操作 2、解决建议 应补充下列编码规范: + HashMap、HashSet是非线程安全的; + 而Vector、HashTable内部的方法基本都是synchronized,所以是线程安全的。 + 在高并发下应使用Concurrent包中的集合类,同时在单线程下应禁止使用synchronized。

1、问题描述 java 代码安全规范的【1.9.1 条】 返回信息最小化 需补充 2、解决建议 应补充下列编码规范: 解决方案1: ``` @Controller class UserController { //禁止在url中使用业务变量,以防止篡改导致的越权 @PostMapping("/user") public UserEntity getUser(@RequestParam("id") String id) { //返回用户所有字段内容,可能包括敏感字段 return userService.findById(id).get(); } } @Controller class UserController...

block unknow exp to clean excludedPackageNames and excludedClasses if attacker use 'excluded'+'PackageNames' likes blow, this patch can protect structs ``` %{ (#request.a=#@org.apache.commons.collections.BeanMap@{}) + (#request.a.setBean(#request.get('struts.valueStack')) == true) + (#request.b=#@org.apache.commons.collections.BeanMap@{}) + (#request.b.setBean(#request.get('a').get('context')))...

![image](https://user-images.githubusercontent.com/22064977/166087933-e041298b-f6ee-4340-b7e0-5e4041692361.png)

制作一个只有admin才能访问的接口,zhangwei的session不能访问 对应的制作一个和上面功能一致但对用户session不进行任何判断的接口 让学习者可以用bp测水平越权