1
2
3
4
5
6
7
8
9
10
11 package com.jsql.view.subscriber;
12
13 import com.jsql.model.InjectionModel;
14 import com.jsql.model.injection.strategy.StrategyError;
15 import com.jsql.util.AnsiColorUtil;
16 import org.apache.logging.log4j.LogManager;
17 import org.apache.logging.log4j.Logger;
18
19
20
21
22 public class SubscriberLogger extends AbstractSubscriber {
23
24 private static final Logger LOGGER = LogManager.getRootLogger();
25 private final InjectionModel model;
26
27 public SubscriberLogger(InjectionModel model) {
28 this.model = model;
29 }
30
31 @Override
32 protected void execute(Seal request) {
33 switch (request) {
34 case Seal.AddDatabases r -> LOGGER.info(() -> AnsiColorUtil.addGreenColor(r.getClass().getSimpleName()));
35 case Seal.AddTables r -> LOGGER.info(() -> AnsiColorUtil.addGreenColor(r.getClass().getSimpleName()));
36 case Seal.AddColumns r -> LOGGER.info(() -> AnsiColorUtil.addGreenColor(r.getClass().getSimpleName()));
37
38 case Seal.AddTabExploitWeb r -> LOGGER.info(() -> AnsiColorUtil.addGreenColor(r.getClass().getSimpleName()));
39 case Seal.GetTerminalResult r -> LOGGER.info(() -> AnsiColorUtil.addGreenColor(r.getClass().getSimpleName()));
40
41 case Seal.MarkStrategyInvulnerable(var indexError, var strategy) -> {
42 if (strategy instanceof StrategyError) {
43 LOGGER.debug(() -> AnsiColorUtil.addRedColor(
44 this.model.getMediatorEngine().getEngine().instance().getModelYaml().getStrategy().getError().getMethod().get(indexError).getName()
45 ));
46 } else {
47 LOGGER.debug(() -> AnsiColorUtil.addRedColor(strategy.getClass().getSimpleName()));
48 }
49 }
50 case Seal.MarkStrategyVulnerable(var indexError, var strategy) -> {
51 if (strategy instanceof StrategyError) {
52 LOGGER.info(() -> AnsiColorUtil.addGreenColor(
53 this.model.getMediatorEngine().getEngine().instance().getModelYaml().getStrategy().getError().getMethod().get(indexError).getName()
54 ));
55 } else {
56 LOGGER.info(() -> AnsiColorUtil.addGreenColor(strategy.getClass().getSimpleName()));
57 }
58 }
59
60 case Seal.MarkFileSystemInvulnerable r -> LOGGER.debug(() -> AnsiColorUtil.addRedColor(r.getClass().getSimpleName()));
61 case Seal.MarkFileSystemVulnerable r -> LOGGER.info(() -> AnsiColorUtil.addGreenColor(r.getClass().getSimpleName()));
62
63 case Seal.MessageBinary(var message) -> LOGGER.info(message::trim);
64 default -> {
65
66 }
67 }
68 }
69 }