View Javadoc
1   package com.jsql.view.subscriber;
2   
3   import com.jsql.model.bean.database.AbstractElementDatabase;
4   import com.jsql.model.bean.database.Column;
5   import com.jsql.model.bean.database.Database;
6   import com.jsql.model.bean.database.Table;
7   import com.jsql.model.injection.strategy.AbstractStrategy;
8   import com.jsql.model.injection.strategy.blind.callable.AbstractCallableBit;
9   import com.jsql.model.injection.engine.model.Engine;
10  import org.apache.logging.log4j.util.Strings;
11  
12  import java.util.Collections;
13  import java.util.List;
14  import java.util.Map;
15  import java.util.UUID;
16  import java.util.function.BiConsumer;
17  
18  public sealed interface Seal permits
19      Seal.AddColumns,
20      Seal.AddDatabases,
21      Seal.AddTables,
22      Seal.CreateValuesTab,
23  
24      Seal.MarkEngineFound,
25      Seal.ActivateEngine,
26  
27      Seal.MarkStrategyInvulnerable,
28      Seal.MarkStrategyVulnerable,
29      Seal.ActivateStrategy,
30  
31      Seal.MarkFileSystemInvulnerable,
32      Seal.MarkFileSystemVulnerable,
33  
34      Seal.MessageBinary,
35      Seal.MessageChunk,
36      Seal.MessageHeader,
37  
38      Seal.AddTabExploitSql,
39      Seal.AddTabExploitUdf,
40      Seal.AddTabExploitWeb,
41      Seal.GetTerminalResult,
42  
43      Seal.CreateAdminPageTab,
44      Seal.CreateAnalysisReport,
45      Seal.CreateFileTab,
46  
47      Seal.EndIndeterminateProgress,
48      Seal.EndPreparation,
49      Seal.EndProgress,
50      Seal.StartIndeterminateProgress,
51      Seal.StartProgress,
52      Seal.UpdateProgress {
53  
54      record AddColumns(List<Column> columns) implements Seal {}
55      record AddDatabases(List<Database> databases) implements Seal {}
56      record AddTables(List<Table> tables) implements Seal {}
57      record CreateValuesTab(String[] columns, String[][] table, Table tableBean) implements Seal {}
58  
59      /** End the refreshing of administration page search button */
60      record MarkEngineFound(Engine engine) implements Seal {}
61      record ActivateEngine(Engine engine) implements Seal {}
62  
63      record MarkStrategyInvulnerable(int indexError, AbstractStrategy strategy) implements Seal {
64          public MarkStrategyInvulnerable(AbstractStrategy strategy) {
65              this(-1, strategy);
66          }
67      }
68      record MarkStrategyVulnerable(int indexError, AbstractStrategy strategy) implements Seal {
69          public MarkStrategyVulnerable(AbstractStrategy strategy) {
70              this(-1, strategy);
71          }
72      }
73      record ActivateStrategy(AbstractStrategy strategy) implements Seal {}
74  
75      record MarkFileSystemInvulnerable() implements Seal {}
76      record MarkFileSystemVulnerable() implements Seal {}
77  
78      record MessageChunk(String message) implements Seal {}
79      record MessageBinary(String message) implements Seal {}
80      record MessageHeader(
81          String url,
82          String post,
83          Map<String, String> header,
84          Map<String, String> response,
85          String source,
86          String size,
87          String metadataStrategy,
88          String metadataProcess,
89          AbstractCallableBit<?> metadataBoolean
90      ) implements Seal {
91          public MessageHeader(
92              String url,
93              String post,
94              Map<String, String> header,
95              Map<String, String> response,
96              String source,
97              String size,
98              String metadataStrategy,
99              String metadataProcess,
100             AbstractCallableBit<?> metadataBoolean
101         ) {
102             this.url = url == null ? Strings.EMPTY : url;
103             this.post = post == null ? Strings.EMPTY : post;
104             this.header = header == null ? Collections.emptyMap() : header;
105             this.response = response == null ? Collections.emptyMap() : response;
106             this.source = source == null ? Strings.EMPTY : source;
107             this.size = size == null ? Strings.EMPTY : size;
108             this.metadataStrategy = metadataStrategy == null ? Strings.EMPTY : metadataStrategy;
109             this.metadataProcess = metadataProcess == null ? Strings.EMPTY : metadataProcess;
110             this.metadataBoolean = metadataBoolean;
111         }
112     }
113 
114     record AddTabExploitSql(String urlSuccess, String username, String password) implements Seal {}
115     record AddTabExploitUdf(BiConsumer<String, UUID> biConsumerRunCmd) implements Seal {}
116     record AddTabExploitWeb(String urlSuccess) implements Seal {}
117     record GetTerminalResult(UUID uuidShell, String result) implements Seal {}
118 
119     record CreateAdminPageTab(String urlSuccess) implements Seal {}
120     record CreateAnalysisReport(String content) implements Seal {}
121     record CreateFileTab(String name, String content, String path) implements Seal {}
122 
123     record EndIndeterminateProgress(Table table) implements Seal {}
124     record EndPreparation() implements Seal {}
125     record EndProgress(AbstractElementDatabase elementDatabase) implements Seal {}
126     record StartIndeterminateProgress(Table table) implements Seal {}
127     record StartProgress(AbstractElementDatabase elementDatabase) implements Seal {}
128     record UpdateProgress(AbstractElementDatabase elementDatabase, int countProgress) implements Seal {}
129 }