@@ -8,7 +8,7 @@ class SqlmapCommandDispatcher
8
8
include Msf ::Ui ::Console ::CommandDispatcher
9
9
10
10
def name
11
- " Sqlmap"
11
+ ' Sqlmap'
12
12
end
13
13
14
14
def commands
@@ -32,8 +32,7 @@ def cmd_sqlmap_connect(*args)
32
32
return
33
33
end
34
34
35
- host = args [ 0 ]
36
- port = args . length == 2 ? args [ 1 ] : nil
35
+ host , port = args
37
36
38
37
if !port
39
38
@manager = Sqlmap ::Manager . new ( Sqlmap ::Session . new ( host ) )
@@ -47,7 +46,7 @@ def cmd_sqlmap_connect(*args)
47
46
def cmd_sqlmap_set_option ( *args )
48
47
unless args . length == 3
49
48
print_error ( 'Usage:' )
50
- print_error ( ' \tsqlmap_set_option <taskid> <option_name> <option_value>' )
49
+ print_error ( " \t sqlmap_set_option <taskid> <option_name> <option_value>" )
51
50
return
52
51
end
53
52
@@ -56,27 +55,21 @@ def cmd_sqlmap_set_option(*args)
56
55
return
57
56
end
58
57
59
- val = args [ 2 ]
60
- if args [ 2 ] =~ /^\d +$/
61
- val = val . to_i
62
- end
58
+ val = args [ 2 ] =~ /^\d +$/ ? args [ 2 ] . to_i : args [ 2 ]
63
59
64
60
res = @manager . set_option ( @hid_tasks [ args [ 0 ] ] , args [ 1 ] , val )
65
- print_status ( ' Success: ' + res [ 'success' ] . to_s )
61
+ print_status ( " Success: #{ res [ 'success' ] } " )
66
62
end
67
63
68
64
def cmd_sqlmap_start_task ( *args )
69
65
if args . length == 0
70
66
print_error ( 'Usage:' )
71
- print_error ( ' \tsqlmap_start_task <taskid> [<url>]' )
67
+ print_error ( " \t sqlmap_start_task <taskid> [<url>]" )
72
68
return
73
69
end
74
70
75
71
options = { }
76
-
77
- if args . length == 2
78
- options [ 'url' ] = args [ 1 ]
79
- end
72
+ options [ 'url' ] = args [ 1 ] if args . length == 2
80
73
81
74
if !options [ 'url' ] && @tasks [ @hid_tasks [ args [ 0 ] ] ] [ 'url' ] == ''
82
75
print_error ( 'You need to specify a URL either as an argument to sqlmap_start_task or sqlmap_set_option' )
@@ -89,13 +82,13 @@ def cmd_sqlmap_start_task(*args)
89
82
end
90
83
91
84
res = @manager . start_task ( @hid_tasks [ args [ 0 ] ] , options )
92
- print_status ( ' Started task: ' + res [ 'success' ] . to_s )
85
+ print_status ( " Started task: #{ res [ 'success' ] } " )
93
86
end
94
87
95
88
def cmd_sqlmap_get_log ( *args )
96
89
unless args . length == 1
97
90
print_error ( 'Usage:' )
98
- print_error ( ' \tsqlmap_get_log <taskid>' )
91
+ print_error ( " \t sqlmap_get_log <taskid>" )
99
92
return
100
93
end
101
94
@@ -107,14 +100,14 @@ def cmd_sqlmap_get_log(*args)
107
100
res = @manager . get_task_log ( @hid_tasks [ args [ 0 ] ] )
108
101
109
102
res [ 'log' ] . each do |message |
110
- print_status ( "[#{ message [ " time" ] } ] #{ message [ " level" ] } : #{ message [ " message" ] } " )
103
+ print_status ( "[#{ message [ ' time' ] } ] #{ message [ ' level' ] } : #{ message [ ' message' ] } " )
111
104
end
112
105
end
113
106
114
107
def cmd_sqlmap_get_status ( *args )
115
108
unless args . length == 1
116
109
print_error ( 'Usage:' )
117
- print_error ( ' \tsqlmap_get_status <taskid>' )
110
+ print_error ( " \t sqlmap_get_status <taskid>" )
118
111
return
119
112
end
120
113
@@ -131,7 +124,7 @@ def cmd_sqlmap_get_status(*args)
131
124
def cmd_sqlmap_get_data ( *args )
132
125
unless args . length == 1
133
126
print_error ( 'Usage:' )
134
- print_error ( ' \tsqlmap_get_data <taskid>' )
127
+ print_error ( " \t sqlmap_get_data <taskid>" )
135
128
return
136
129
end
137
130
@@ -151,7 +144,7 @@ def cmd_sqlmap_get_data(*args)
151
144
res = @manager . get_task_data ( @hid_tasks [ args [ 0 ] ] )
152
145
153
146
tbl = Rex ::Ui ::Text ::Table . new (
154
- 'Columns' => [ 'Title' , 'Payload' ] )
147
+ 'Columns' => [ 'Title' , 'Payload' ] )
155
148
156
149
res [ 'data' ] . each do |d |
157
150
d [ 'value' ] . each do |v |
@@ -171,7 +164,7 @@ def cmd_sqlmap_get_data(*args)
171
164
def cmd_sqlmap_save_data ( *args )
172
165
unless args . length == 1
173
166
print_error ( 'Usage:' )
174
- print_error ( ' \tsqlmap_save_data <taskid>' )
167
+ print_error ( " \t sqlmap_save_data <taskid>" )
175
168
return
176
169
end
177
170
@@ -199,8 +192,7 @@ def cmd_sqlmap_save_data(*args)
199
192
proto = url . split ( ':' ) [ 0 ]
200
193
host = url . split ( '/' ) [ 2 ]
201
194
port = 80
202
- port = host . split ( ':' ) [ 1 ] if host . index ( ':' )
203
- host = host . split ( ':' ) [ 0 ] if host . index ( ':' )
195
+ host , port = host . split ( ':' ) if host . include? ( ':' )
204
196
path = '/' + ( url . split ( '/' ) [ 3 ..( url . split ( '/' ) . length - 1 ) ] . join ( '/' ) )
205
197
query = url . split ( '?' ) [ 1 ]
206
198
web_vuln_info [ :web_site ] = url
@@ -215,7 +207,7 @@ def cmd_sqlmap_save_data(*args)
215
207
web_vuln_info [ :pname ] = v [ 'parameter' ]
216
208
web_vuln_info [ :method ] = v [ 'place' ]
217
209
web_vuln_info [ :payload ] = v [ 'suffix' ]
218
- v [ 'data' ] . each do |k , i |
210
+ v [ 'data' ] . values . each do |i |
219
211
web_vuln_info [ :name ] = i [ 'title' ]
220
212
web_vuln_info [ :description ] = res . to_json
221
213
web_vuln_info [ :proof ] = i [ 'payload' ]
@@ -232,25 +224,26 @@ def cmd_sqlmap_get_option(*args)
232
224
233
225
unless args . length == 2
234
226
print_error ( 'Usage:' )
235
- print_error ( ' \tsqlmap_get_option <taskid> <option_name>' )
227
+ print_error ( " \t sqlmap_get_option <taskid> <option_name>" )
236
228
end
237
229
238
230
unless @manager
239
231
print_error ( 'Please run sqlmap_connect <host> first.' )
240
232
return
241
233
end
242
234
243
- task_options = @manager . get_options ( @hid_tasks [ args [ 0 ] ] )
244
- @tasks [ @hid_tasks [ args [ 0 ] ] ] = task_options [ 'options' ]
235
+ arg = args . first
236
+ task_options = @manager . get_options ( @hid_tasks [ arg ] )
237
+ @tasks [ @hid_tasks [ arg ] ] = task_options [ 'options' ]
245
238
246
- if @tasks [ @hid_tasks [ args [ 0 ] ] ]
247
- print_good ( args [ 1 ] + ': ' + @tasks [ @hid_tasks [ args [ 0 ] ] ] [ args [ 1 ] ] . to_s )
239
+ if @tasks [ @hid_tasks [ arg ] ]
240
+ print_good ( args [ 1 ] + ': ' + @tasks [ @hid_tasks [ arg ] ] [ args [ 1 ] ] . to_s )
248
241
else
249
- print_error ( ' Option ' + args [ 0 ] + ' doesn\ 't exist' )
242
+ print_error ( " Option #{ arg } doesn't exist" )
250
243
end
251
244
end
252
245
253
- def cmd_sqlmap_new_task ( * args )
246
+ def cmd_sqlmap_new_task
254
247
@hid_tasks ||= { }
255
248
@tasks ||= { }
256
249
@@ -260,17 +253,17 @@ def cmd_sqlmap_new_task(*args)
260
253
end
261
254
262
255
taskid = @manager . new_task [ 'taskid' ]
263
- @hid_tasks [ ( @hid_tasks . length + 1 ) . to_s ] = taskid
256
+ @hid_tasks [ ( @hid_tasks . length + 1 ) . to_s ] = taskid
264
257
task_options = @manager . get_options ( taskid )
265
258
@tasks [ @hid_tasks [ @hid_tasks . length ] ] = task_options [ 'options' ]
266
- print_good ( ' Created task: ' + @hid_tasks . length . to_s )
259
+ print_good ( " Created task: #{ @hid_tasks . length } " )
267
260
end
268
261
269
- def cmd_sqlmap_list_tasks ( * args )
262
+ def cmd_sqlmap_list_tasks
270
263
@hid_tasks ||= { }
271
264
@tasks ||= { }
272
- @hid_tasks . each do |task , options |
273
- print_good ( ' Task ID: ' + task . to_s )
265
+ @hid_tasks . keys . each do |task |
266
+ print_good ( " Task ID: #{ task } " )
274
267
end
275
268
end
276
269
end
0 commit comments