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
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 }