XSpear 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.idea/XSpear.iml +2 -0
- data/.idea/workspace.xml +104 -74
- data/README.md +79 -62
- data/XSpear.gemspec +6 -4
- data/lib/XSpear/version.rb +1 -1
- metadata +38 -11
- data/XSpear-1.0.0.gem +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7972c77531071581bfeac03c4faa63681075b0668611f6fdd767030eaa7450c9
|
4
|
+
data.tar.gz: e22b692ea493fc780d6c53d013aff1d63af28330134dc5f20cf406ae2989f569
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b86422a360efa39f2da6ed64d77a8b051fb3c2e225d1d82d92cf963410c4234de35dad51867222d56d1d9764b75bccab5b86205095b3336553016acaf9c65584
|
7
|
+
data.tar.gz: 0bb40ccb370cdc42453d31136123ba0a0d076dbe8274dc8ec6fce6419405341ed65cca15f583610ad75c46271655aea49d927508f667289366c545dddb6247d8
|
data/.idea/XSpear.iml
CHANGED
@@ -13,5 +13,7 @@
|
|
13
13
|
<orderEntry type="library" scope="PROVIDED" name="rake (v12.3.2, ruby-2.3.7-p456) [gem]" level="application" />
|
14
14
|
<orderEntry type="library" scope="PROVIDED" name="rubyzip (v1.2.3, ruby-2.3.7-p456) [gem]" level="application" />
|
15
15
|
<orderEntry type="library" scope="PROVIDED" name="selenium-webdriver (v3.142.3, ruby-2.3.7-p456) [gem]" level="application" />
|
16
|
+
<orderEntry type="library" scope="PROVIDED" name="terminal-table (v1.8.0, ruby-2.3.7-p456) [gem]" level="application" />
|
17
|
+
<orderEntry type="library" scope="PROVIDED" name="unicode-display_width (v1.6.0, ruby-2.3.7-p456) [gem]" level="application" />
|
16
18
|
</component>
|
17
19
|
</module>
|
data/.idea/workspace.xml
CHANGED
@@ -4,10 +4,9 @@
|
|
4
4
|
<list default="true" id="4ee2e581-45d7-4c90-b6a1-e92e4b5829dd" name="Default Changelist" comment="">
|
5
5
|
<change beforePath="$PROJECT_DIR$/.idea/XSpear.iml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/XSpear.iml" afterDir="false" />
|
6
6
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
7
|
+
<change beforePath="$PROJECT_DIR$/XSpear-1.0.0.gem" beforeDir="false" />
|
7
8
|
<change beforePath="$PROJECT_DIR$/XSpear.gemspec" beforeDir="false" afterPath="$PROJECT_DIR$/XSpear.gemspec" afterDir="false" />
|
8
|
-
<change beforePath="$PROJECT_DIR$/
|
9
|
-
<change beforePath="$PROJECT_DIR$/lib/XSpear.rb" beforeDir="false" afterPath="$PROJECT_DIR$/lib/XSpear.rb" afterDir="false" />
|
10
|
-
<change beforePath="$PROJECT_DIR$/lib/XSpear/XSpearRepoter.rb" beforeDir="false" afterPath="$PROJECT_DIR$/lib/XSpear/XSpearRepoter.rb" afterDir="false" />
|
9
|
+
<change beforePath="$PROJECT_DIR$/lib/XSpear/version.rb" beforeDir="false" afterPath="$PROJECT_DIR$/lib/XSpear/version.rb" afterDir="false" />
|
11
10
|
</list>
|
12
11
|
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
13
12
|
<option name="SHOW_DIALOG" value="false" />
|
@@ -19,25 +18,16 @@
|
|
19
18
|
<SUITE FILE_PATH="coverage/XSpear@XSpear.rcov" NAME="XSpear Coverage Results" MODIFIED="1562943092281" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/lib" MODULE_NAME="XSpear" />
|
20
19
|
</component>
|
21
20
|
<component name="FileEditorManager">
|
22
|
-
<leaf>
|
23
|
-
<file pinned="false" current-in-tab="false">
|
24
|
-
<entry file="file://$PROJECT_DIR$/exe/XSpear">
|
25
|
-
<provider selected="true" editor-type-id="text-editor">
|
26
|
-
<state relative-caret-position="448">
|
27
|
-
<caret line="66" column="3" selection-start-line="66" selection-start-column="3" selection-end-line="66" selection-end-column="3" />
|
28
|
-
</state>
|
29
|
-
</provider>
|
30
|
-
</entry>
|
31
|
-
</file>
|
21
|
+
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
|
32
22
|
<file pinned="false" current-in-tab="false">
|
33
23
|
<entry file="file://$PROJECT_DIR$/bin/console">
|
34
24
|
<provider selected="true" editor-type-id="text-editor" />
|
35
25
|
</entry>
|
36
26
|
</file>
|
37
|
-
<file pinned="false" current-in-tab="
|
27
|
+
<file pinned="false" current-in-tab="false">
|
38
28
|
<entry file="file://$PROJECT_DIR$/lib/XSpear.rb">
|
39
29
|
<provider selected="true" editor-type-id="text-editor">
|
40
|
-
<state relative-caret-position="
|
30
|
+
<state relative-caret-position="1740">
|
41
31
|
<caret line="116" column="19" selection-start-line="116" selection-start-column="19" selection-end-line="116" selection-end-column="19" />
|
42
32
|
</state>
|
43
33
|
</provider>
|
@@ -47,8 +37,8 @@
|
|
47
37
|
<entry file="file://$PROJECT_DIR$/README.md">
|
48
38
|
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
|
49
39
|
<state split_layout="SPLIT">
|
50
|
-
<first_editor relative-caret-position="
|
51
|
-
<caret line="
|
40
|
+
<first_editor relative-caret-position="135">
|
41
|
+
<caret line="9" column="29" selection-start-line="9" selection-start-column="29" selection-end-line="9" selection-end-column="29" />
|
52
42
|
</first_editor>
|
53
43
|
<second_editor />
|
54
44
|
</state>
|
@@ -63,8 +53,8 @@
|
|
63
53
|
<file pinned="false" current-in-tab="false">
|
64
54
|
<entry file="file://$PROJECT_DIR$/lib/XSpear/XSpearRepoter.rb">
|
65
55
|
<provider selected="true" editor-type-id="text-editor">
|
66
|
-
<state
|
67
|
-
<caret
|
56
|
+
<state>
|
57
|
+
<caret column="9" selection-start-column="9" selection-end-column="23" />
|
68
58
|
</state>
|
69
59
|
</provider>
|
70
60
|
</entry>
|
@@ -87,11 +77,11 @@
|
|
87
77
|
</provider>
|
88
78
|
</entry>
|
89
79
|
</file>
|
90
|
-
<file pinned="false" current-in-tab="
|
80
|
+
<file pinned="false" current-in-tab="true">
|
91
81
|
<entry file="file://$PROJECT_DIR$/lib/XSpear/version.rb">
|
92
82
|
<provider selected="true" editor-type-id="text-editor">
|
93
|
-
<state relative-caret-position="
|
94
|
-
<caret line="
|
83
|
+
<state relative-caret-position="15">
|
84
|
+
<caret line="1" column="18" selection-start-line="1" selection-start-column="18" selection-end-line="1" selection-end-column="18" />
|
95
85
|
</state>
|
96
86
|
</provider>
|
97
87
|
</entry>
|
@@ -99,12 +89,17 @@
|
|
99
89
|
<file pinned="false" current-in-tab="false">
|
100
90
|
<entry file="file://$PROJECT_DIR$/XSpear.gemspec">
|
101
91
|
<provider selected="true" editor-type-id="text-editor">
|
102
|
-
<state relative-caret-position="
|
103
|
-
<caret line="
|
92
|
+
<state relative-caret-position="585">
|
93
|
+
<caret line="39" lean-forward="true" selection-start-line="39" selection-end-line="39" />
|
104
94
|
</state>
|
105
95
|
</provider>
|
106
96
|
</entry>
|
107
97
|
</file>
|
98
|
+
<file pinned="false" current-in-tab="false">
|
99
|
+
<entry file="file:///usr/local/bin/rake">
|
100
|
+
<provider selected="true" editor-type-id="text-editor" />
|
101
|
+
</entry>
|
102
|
+
</file>
|
108
103
|
</leaf>
|
109
104
|
</component>
|
110
105
|
<component name="Git.Settings">
|
@@ -115,18 +110,18 @@
|
|
115
110
|
<list>
|
116
111
|
<option value="$PROJECT_DIR$/lib/XSpear/log.rb" />
|
117
112
|
<option value="$PROJECT_DIR$/lib/XSpear/banner.rb" />
|
118
|
-
<option value="$PROJECT_DIR$/README.md" />
|
119
|
-
<option value="$PROJECT_DIR$/lib/XSpear/version.rb" />
|
120
113
|
<option value="$PROJECT_DIR$/lib/XSpear/XSpearRepoter.rb" />
|
121
114
|
<option value="$PROJECT_DIR$/exe/XSpear" />
|
122
|
-
<option value="$PROJECT_DIR$/XSpear.gemspec" />
|
123
115
|
<option value="$PROJECT_DIR$/lib/XSpear.rb" />
|
116
|
+
<option value="$PROJECT_DIR$/README.md" />
|
117
|
+
<option value="$PROJECT_DIR$/XSpear.gemspec" />
|
118
|
+
<option value="$PROJECT_DIR$/lib/XSpear/version.rb" />
|
124
119
|
</list>
|
125
120
|
</option>
|
126
121
|
</component>
|
127
122
|
<component name="ProjectFrameBounds" extendedState="6">
|
128
|
-
<option name="x" value="-
|
129
|
-
<option name="y" value="-
|
123
|
+
<option name="x" value="-1794" />
|
124
|
+
<option name="y" value="-594" />
|
130
125
|
<option name="width" value="1920" />
|
131
126
|
<option name="height" value="1057" />
|
132
127
|
</component>
|
@@ -138,6 +133,7 @@
|
|
138
133
|
<foldersAlwaysOnTop value="true" />
|
139
134
|
</navigator>
|
140
135
|
<panes>
|
136
|
+
<pane id="Scope" />
|
141
137
|
<pane id="ProjectPane">
|
142
138
|
<subPane>
|
143
139
|
<expand>
|
@@ -175,7 +171,6 @@
|
|
175
171
|
<select />
|
176
172
|
</subPane>
|
177
173
|
</pane>
|
178
|
-
<pane id="Scope" />
|
179
174
|
</panes>
|
180
175
|
</component>
|
181
176
|
<component name="PropertiesComponent">
|
@@ -232,7 +227,8 @@
|
|
232
227
|
<option name="number" value="Default" />
|
233
228
|
<option name="presentableId" value="Default" />
|
234
229
|
<updated>1562942814778</updated>
|
235
|
-
<workItem from="1562942816004" duration="
|
230
|
+
<workItem from="1562942816004" duration="15337000" />
|
231
|
+
<workItem from="1563638656518" duration="215000" />
|
236
232
|
</task>
|
237
233
|
<task id="LOCAL-00001" summary="init update">
|
238
234
|
<created>1562945899597</created>
|
@@ -346,24 +342,48 @@
|
|
346
342
|
<option name="project" value="LOCAL" />
|
347
343
|
<updated>1563464234805</updated>
|
348
344
|
</task>
|
349
|
-
<
|
345
|
+
<task id="LOCAL-00017" summary="1.0.0 Final commit">
|
346
|
+
<created>1563553596470</created>
|
347
|
+
<option name="number" value="00017" />
|
348
|
+
<option name="presentableId" value="LOCAL-00017" />
|
349
|
+
<option name="project" value="LOCAL" />
|
350
|
+
<updated>1563553596470</updated>
|
351
|
+
</task>
|
352
|
+
<task id="LOCAL-00018" summary="Edit readme">
|
353
|
+
<created>1563554102958</created>
|
354
|
+
<option name="number" value="00018" />
|
355
|
+
<option name="presentableId" value="LOCAL-00018" />
|
356
|
+
<option name="project" value="LOCAL" />
|
357
|
+
<updated>1563554102958</updated>
|
358
|
+
</task>
|
359
|
+
<task id="LOCAL-00019" summary="modify dependency rspec">
|
360
|
+
<created>1563555157935</created>
|
361
|
+
<option name="number" value="00019" />
|
362
|
+
<option name="presentableId" value="LOCAL-00019" />
|
363
|
+
<option name="project" value="LOCAL" />
|
364
|
+
<updated>1563555157935</updated>
|
365
|
+
</task>
|
366
|
+
<task id="LOCAL-00020" summary="modify dependency rspec">
|
367
|
+
<created>1563555198677</created>
|
368
|
+
<option name="number" value="00020" />
|
369
|
+
<option name="presentableId" value="LOCAL-00020" />
|
370
|
+
<option name="project" value="LOCAL" />
|
371
|
+
<updated>1563555198677</updated>
|
372
|
+
</task>
|
373
|
+
<option name="localTasksCounter" value="21" />
|
350
374
|
<servers />
|
351
375
|
</component>
|
352
376
|
<component name="TimeTrackingManager">
|
353
|
-
<option name="totallyTimeSpent" value="
|
377
|
+
<option name="totallyTimeSpent" value="15552000" />
|
354
378
|
</component>
|
355
379
|
<component name="ToolWindowManager">
|
356
|
-
<frame x="-
|
380
|
+
<frame x="-1920" y="-620" width="1920" height="1057" extended-state="6" />
|
357
381
|
<editor active="true" />
|
358
382
|
<layout>
|
359
|
-
<window_info id="
|
360
|
-
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.15921193" />
|
383
|
+
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.16080937" />
|
361
384
|
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
|
362
|
-
<window_info
|
363
|
-
<window_info anchor="bottom" id="
|
364
|
-
<window_info anchor="bottom" id="Version Control" />
|
365
|
-
<window_info active="true" anchor="bottom" id="Terminal" visible="true" weight="0.29637307" />
|
366
|
-
<window_info anchor="bottom" id="Event Log" side_tool="true" />
|
385
|
+
<window_info id="Favorites" order="2" side_tool="true" />
|
386
|
+
<window_info anchor="bottom" id="Messages" weight="0.32953367" />
|
367
387
|
<window_info anchor="bottom" id="Message" order="0" />
|
368
388
|
<window_info anchor="bottom" id="Find" order="1" />
|
369
389
|
<window_info anchor="bottom" id="Run" order="2" weight="0.32953367" />
|
@@ -371,10 +391,15 @@
|
|
371
391
|
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
|
372
392
|
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
|
373
393
|
<window_info anchor="bottom" id="TODO" order="6" />
|
374
|
-
<window_info anchor="
|
394
|
+
<window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
|
395
|
+
<window_info anchor="bottom" id="Database Changes" order="8" />
|
396
|
+
<window_info anchor="bottom" id="Version Control" order="9" />
|
397
|
+
<window_info anchor="bottom" id="Terminal" order="10" visible="true" weight="0.29637307" />
|
398
|
+
<window_info anchor="bottom" id="Event Log" order="11" side_tool="true" />
|
375
399
|
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
|
376
400
|
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
|
377
401
|
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
|
402
|
+
<window_info anchor="right" id="Database" order="3" />
|
378
403
|
</layout>
|
379
404
|
</component>
|
380
405
|
<component name="TypeScriptGeneratedFilesManager">
|
@@ -385,13 +410,15 @@
|
|
385
410
|
<MESSAGE value="build gem and edit dependency" />
|
386
411
|
<MESSAGE value="add gem & edit code" />
|
387
412
|
<MESSAGE value="edit gem dependency(runtime, developement)" />
|
388
|
-
<MESSAGE value="Edit readme" />
|
389
413
|
<MESSAGE value="Add json report and new build binary, edit readme" />
|
390
414
|
<MESSAGE value="Add screenshot images" />
|
391
415
|
<MESSAGE value="Add dependency gems descriptions" />
|
392
416
|
<MESSAGE value="Add cli banner" />
|
393
417
|
<MESSAGE value="Edit Selenium code & README, Change version" />
|
394
|
-
<
|
418
|
+
<MESSAGE value="1.0.0 Final commit" />
|
419
|
+
<MESSAGE value="Edit readme" />
|
420
|
+
<MESSAGE value="modify dependency rspec" />
|
421
|
+
<option name="LAST_COMMIT_MESSAGE" value="modify dependency rspec" />
|
395
422
|
</component>
|
396
423
|
<component name="editorHistoryManager">
|
397
424
|
<entry file="file://$USER_HOME$/.rvm/gems/ruby-2.4.6/gems/bundler-2.0.1/lib/bundler/rubygems_integration.rb">
|
@@ -401,68 +428,71 @@
|
|
401
428
|
</state>
|
402
429
|
</provider>
|
403
430
|
</entry>
|
404
|
-
<entry file="file://$PROJECT_DIR$/
|
405
|
-
<provider selected="true" editor-type-id="text-editor" />
|
406
|
-
</entry>
|
407
|
-
<entry file="file://$PROJECT_DIR$/bin/console">
|
408
|
-
<provider selected="true" editor-type-id="text-editor" />
|
409
|
-
</entry>
|
410
|
-
<entry file="file://$PROJECT_DIR$/lib/XSpear/log.rb">
|
431
|
+
<entry file="file://$PROJECT_DIR$/exe/XSpear">
|
411
432
|
<provider selected="true" editor-type-id="text-editor">
|
412
|
-
<state relative-caret-position="
|
413
|
-
<caret line="
|
433
|
+
<state relative-caret-position="990">
|
434
|
+
<caret line="66" column="3" selection-start-line="66" selection-start-column="3" selection-end-line="66" selection-end-column="3" />
|
414
435
|
</state>
|
415
436
|
</provider>
|
416
437
|
</entry>
|
417
|
-
<entry file="file://$PROJECT_DIR$/
|
418
|
-
<provider selected="true" editor-type-id="text-editor"
|
419
|
-
<state relative-caret-position="195">
|
420
|
-
<caret line="13" column="3" selection-start-line="13" selection-start-column="3" selection-end-line="13" selection-end-column="3" />
|
421
|
-
</state>
|
422
|
-
</provider>
|
438
|
+
<entry file="file://$PROJECT_DIR$/bin/console">
|
439
|
+
<provider selected="true" editor-type-id="text-editor" />
|
423
440
|
</entry>
|
424
|
-
<entry file="file://$PROJECT_DIR$/lib/XSpear
|
441
|
+
<entry file="file://$PROJECT_DIR$/lib/XSpear.rb">
|
425
442
|
<provider selected="true" editor-type-id="text-editor">
|
426
|
-
<state relative-caret-position="
|
427
|
-
<caret line="
|
443
|
+
<state relative-caret-position="1740">
|
444
|
+
<caret line="116" column="19" selection-start-line="116" selection-start-column="19" selection-end-line="116" selection-end-column="19" />
|
428
445
|
</state>
|
429
446
|
</provider>
|
430
447
|
</entry>
|
431
448
|
<entry file="file://$PROJECT_DIR$/README.md">
|
432
449
|
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
|
433
450
|
<state split_layout="SPLIT">
|
434
|
-
<first_editor relative-caret-position="
|
435
|
-
<caret line="
|
451
|
+
<first_editor relative-caret-position="135">
|
452
|
+
<caret line="9" column="29" selection-start-line="9" selection-start-column="29" selection-end-line="9" selection-end-column="29" />
|
436
453
|
</first_editor>
|
437
454
|
<second_editor />
|
438
455
|
</state>
|
439
456
|
</provider>
|
440
457
|
</entry>
|
458
|
+
<entry file="file://$PROJECT_DIR$/bin/setup">
|
459
|
+
<provider selected="true" editor-type-id="text-editor" />
|
460
|
+
</entry>
|
441
461
|
<entry file="file://$PROJECT_DIR$/lib/XSpear/XSpearRepoter.rb">
|
442
462
|
<provider selected="true" editor-type-id="text-editor">
|
443
|
-
<state
|
444
|
-
<caret
|
463
|
+
<state>
|
464
|
+
<caret column="9" selection-start-column="9" selection-end-column="23" />
|
445
465
|
</state>
|
446
466
|
</provider>
|
447
467
|
</entry>
|
448
|
-
<entry file="file://$PROJECT_DIR$/
|
468
|
+
<entry file="file://$PROJECT_DIR$/lib/XSpear/banner.rb">
|
449
469
|
<provider selected="true" editor-type-id="text-editor">
|
450
|
-
<state relative-caret-position="
|
451
|
-
<caret line="
|
470
|
+
<state relative-caret-position="195">
|
471
|
+
<caret line="13" column="3" selection-start-line="13" selection-start-column="3" selection-end-line="13" selection-end-column="3" />
|
472
|
+
</state>
|
473
|
+
</provider>
|
474
|
+
</entry>
|
475
|
+
<entry file="file://$PROJECT_DIR$/lib/XSpear/log.rb">
|
476
|
+
<provider selected="true" editor-type-id="text-editor">
|
477
|
+
<state relative-caret-position="195">
|
478
|
+
<caret line="13" column="19" selection-start-line="13" selection-start-column="11" selection-end-line="13" selection-end-column="19" />
|
452
479
|
</state>
|
453
480
|
</provider>
|
454
481
|
</entry>
|
482
|
+
<entry file="file:///usr/local/bin/rake">
|
483
|
+
<provider selected="true" editor-type-id="text-editor" />
|
484
|
+
</entry>
|
455
485
|
<entry file="file://$PROJECT_DIR$/XSpear.gemspec">
|
456
486
|
<provider selected="true" editor-type-id="text-editor">
|
457
|
-
<state relative-caret-position="
|
458
|
-
<caret line="
|
487
|
+
<state relative-caret-position="585">
|
488
|
+
<caret line="39" lean-forward="true" selection-start-line="39" selection-end-line="39" />
|
459
489
|
</state>
|
460
490
|
</provider>
|
461
491
|
</entry>
|
462
|
-
<entry file="file://$PROJECT_DIR$/lib/XSpear.rb">
|
492
|
+
<entry file="file://$PROJECT_DIR$/lib/XSpear/version.rb">
|
463
493
|
<provider selected="true" editor-type-id="text-editor">
|
464
|
-
<state relative-caret-position="
|
465
|
-
<caret line="
|
494
|
+
<state relative-caret-position="15">
|
495
|
+
<caret line="1" column="18" selection-start-line="1" selection-start-column="18" selection-end-line="1" selection-end-column="18" />
|
466
496
|
</state>
|
467
497
|
</provider>
|
468
498
|
</entry>
|
data/README.md
CHANGED
@@ -1,18 +1,30 @@
|
|
1
1
|
# XSpear
|
2
2
|
XSpear is XSS Scanner on ruby gems
|
3
3
|
|
4
|
-
<img src="https://img.shields.io/static/v1.svg?label=lang&message=ruby&color=RED"> <img src="https://img.shields.io/
|
4
|
+
<img src="https://img.shields.io/static/v1.svg?label=lang&message=ruby&color=RED"> <img src="https://img.shields.io/static/v1.svg?label=version&message=1.0&color=purple"> <img src="https://img.shields.io/gem/dtv/XSpear.svg"> <img src="https://img.shields.io/github/license/hahwul/XSpear.svg"> <a href="https://twitter.com/intent/follow?screen_name=hahwul"><img src="https://img.shields.io/static/v1.svg?label=follow&message=hahwul&color=black"></a>
|
5
5
|
|
6
6
|
## Key features
|
7
7
|
- Pattern matching based XSS scanning
|
8
|
-
-
|
8
|
+
- Detect `alert` `confirm` `prompt` event on headless browser (with Selenium)
|
9
9
|
- Testing request/response for XSS protection bypass and reflected params
|
10
|
-
-
|
10
|
+
- XSpear running on ruby code(with Gem library)
|
11
|
+
- Dynamic/Static Analysis(Find SQL Error, etc..)
|
12
|
+
- Show table base report and testing raw query(url)
|
13
|
+
- Testing at selected parameters
|
11
14
|
- Support output format `cli` `json`
|
15
|
+
- Support Verbose level (quit / nomal / raw data)
|
12
16
|
- Support custom callback code to any test various attack vectors
|
13
17
|
|
14
18
|
## Installation
|
15
19
|
|
20
|
+
Install it yourself as:
|
21
|
+
|
22
|
+
$ gem install XSpear
|
23
|
+
|
24
|
+
Or install it yourself as (local file):
|
25
|
+
|
26
|
+
$ gem install XSpear-0.1.0.gem
|
27
|
+
|
16
28
|
Add this line to your application's Gemfile:
|
17
29
|
|
18
30
|
```ruby
|
@@ -23,14 +35,6 @@ And then execute:
|
|
23
35
|
|
24
36
|
$ bundle
|
25
37
|
|
26
|
-
Or install it yourself as:
|
27
|
-
|
28
|
-
$ gem install XSpear
|
29
|
-
|
30
|
-
Or install it yourself as (local file):
|
31
|
-
|
32
|
-
$ gem install XSpear-0.1.0.gem
|
33
|
-
|
34
38
|
### Dependency gems
|
35
39
|
`colorize` `selenium-webdriver`<br>
|
36
40
|
If you configured it to install automatically in the Gem library, but it behaves abnormally, install it with the following command.
|
@@ -45,18 +49,14 @@ $ gem install selenium-webdriver
|
|
45
49
|
```
|
46
50
|
Usage: xspear -u [target] -[options] [value]
|
47
51
|
[ e.g ]
|
48
|
-
$
|
52
|
+
$ ruby a.rb -u 'https://www.hahwul.com/?q=123' --cookie='role=admin'
|
49
53
|
|
50
54
|
[ Options ]
|
51
55
|
-u, --url=target_URL [required] Target Url
|
52
56
|
-d, --data=POST Body [optional] POST Method Body data
|
53
57
|
--headers=HEADERS [optional] Add HTTP Headers
|
54
58
|
--cookie=COOKIE [optional] Add Cookie
|
55
|
-
-
|
56
|
-
+ Default value: 3
|
57
|
-
+ Level3
|
58
|
-
+ Level2
|
59
|
-
+ Level1:
|
59
|
+
-p, --param=PARAM [optional] Test paramters
|
60
60
|
-t, --threads=NUMBER [optional] thread , default: 10
|
61
61
|
-o, --output=FILENAME [optional] Save JSON Result
|
62
62
|
-v, --verbose=1~3 [optional] Show log depth
|
@@ -65,8 +65,7 @@ $ xspear -u 'https://www.hahwul.com/?q=123' --cookie='role=admin'
|
|
65
65
|
+ v=2 : show scanning log
|
66
66
|
+ v=3 : show detail log(req/res)
|
67
67
|
-h, --help Prints this help
|
68
|
-
--update Update with online
|
69
|
-
|
68
|
+
--update Update with online (not supported)
|
70
69
|
```
|
71
70
|
|
72
71
|
### Case by Case
|
@@ -85,57 +84,75 @@ $ xspear -u "http://testphp.vulnweb.com/search.php?test=query" -d "searchFor=yy"
|
|
85
84
|
$ xspear -u "http://testphp.vulnweb.com/search.php?test=query" -d "searchFor=yy" -v 3
|
86
85
|
```
|
87
86
|
|
87
|
+
**testing at selected parameters**
|
88
|
+
```
|
89
|
+
$ xspear -u "http://testphp.vulnweb.com/search.php?test=query&cat=123&ppl=1fhhahwul" -p cat,test
|
90
|
+
```
|
91
|
+
|
88
92
|
etc...
|
89
93
|
|
90
94
|
### Sample log
|
91
95
|
**Scanning XSS**
|
92
96
|
```
|
93
97
|
$ xspear -u "http://testphp.vulnweb.com/listproducts.php?cat=1"
|
98
|
+
) (
|
99
|
+
( /( )\ )
|
100
|
+
)\())(()/( ( ) (
|
101
|
+
((_)\ /(_))` ) ))\ ( /( )(
|
102
|
+
__((_)(_)) /(/( /((_))(_))(()\
|
103
|
+
\ \/ // __|((_)_\ (_)) ((_)_ ((_)
|
104
|
+
> < \__ \| '_ \)/ -_)/ _` || '_|
|
105
|
+
/_/\_\|___/| .__/ \___|\__,_||_| />
|
106
|
+
|_| \ /<
|
107
|
+
{\\\\\\\\\\\\\BYHAHWUL\\\\\\\\\\\(0):::<======================-
|
108
|
+
/ \<
|
109
|
+
\>
|
94
110
|
[*] creating a test query.
|
95
|
-
[*] test query generation is complete. [
|
111
|
+
[*] test query generation is complete. [30 query]
|
96
112
|
[*] starting test and analysis. [10 threads]
|
97
|
-
[
|
98
|
-
[-] [
|
99
|
-
[
|
100
|
-
[-] [
|
101
|
-
[-] [
|
102
|
-
|
103
|
-
[-] [
|
104
|
-
[
|
105
|
-
[-] [
|
113
|
+
[-] [01:24:38] not reflected XsPeaR`
|
114
|
+
[-] [01:24:38] not reflected XsPeaR>
|
115
|
+
[I] [01:24:38] reflected rEfe6[param: cat][reflected parameter]
|
116
|
+
[-] [01:24:38] not reflected XsPeaR|
|
117
|
+
[-] [01:24:38] not reflected XsPeaR'
|
118
|
+
[I] [01:24:38] [param: cat][Found SQL Error Pattern]
|
119
|
+
[-] [01:24:38] not reflected XsPeaR(
|
120
|
+
[-] [01:24:38] not reflected <XsPeaR
|
121
|
+
[-] [01:24:38] not reflected XsPeaR"
|
122
|
+
[-] [01:24:38] not reflected XsPeaR;
|
123
|
+
[-] [01:24:39] not reflected XsPeaR:
|
124
|
+
[-] [01:24:39] not reflected XsPeaR[
|
125
|
+
[-] [01:24:39] not reflected XsPeaR]
|
126
|
+
[-] [01:24:39] not reflected XsPeaR}
|
127
|
+
[-] [01:24:39] not reflected XsPeaR)
|
128
|
+
[-] [01:24:39] not reflected XsPeaR{
|
129
|
+
[-] [01:24:39] not reflected XsPeaR.
|
130
|
+
[-] [01:24:39] not reflected XsPeaR-
|
131
|
+
[-] [01:24:39] not reflected XsPeaR+
|
132
|
+
[-] [01:24:39] not reflected XsPeaR,
|
133
|
+
[I] [01:24:40] reflected XsPeaR$[param: cat][not filtered $]
|
134
|
+
[-] [01:24:40] not reflected <svg/onload=alert(45)>
|
135
|
+
[H] [01:24:40] reflected <script>alert(45)</script>[param: cat][reflected XSS Code]
|
136
|
+
[-] [01:24:40] not reflected XsPeaR=
|
137
|
+
[-] [01:24:40] not reflected <img/src onerror=alert(45)>
|
106
138
|
[*] finish scan. the report is being generated..
|
107
|
-
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
112
|
-
| NO | TYPE | ISSUE
|
113
|
-
|
114
|
-
| 0 | INFO |
|
115
|
-
| 1 | INFO |
|
116
|
-
| 2 | INFO | FILERD RULE |
|
117
|
-
| 3 |
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
| 10 | INFO | FILERD RULE | searchFor=yyXsPeaR%5B | not filtered [ |
|
125
|
-
| 11 | INFO | FILERD RULE | searchFor=yyXsPeaR%7B | not filtered { |
|
126
|
-
| 12 | INFO | FILERD RULE | searchFor=yyXsPeaR%5D | not filtered ] |
|
127
|
-
| 13 | INFO | FILERD RULE | searchFor=yyXsPeaR%7D | not filtered } |
|
128
|
-
| 14 | INFO | FILERD RULE | searchFor=yyXsPeaR%3A | not filtered : |
|
129
|
-
| 15 | INFO | FILERD RULE | searchFor=yyXsPeaR. | not filtered . |
|
130
|
-
| 16 | INFO | FILERD RULE | searchFor=yyXsPeaR%2B | not filtered + |
|
131
|
-
| 17 | INFO | FILERD RULE | searchFor=yyXsPeaR%2C | not filtered , |
|
132
|
-
| 18 | INFO | FILERD RULE | searchFor=yyXsPeaR%3D | not filtered = |
|
133
|
-
| 19 | INFO | FILERD RULE | searchFor=yyXsPeaR- | not filtered - |
|
134
|
-
| 20 | HIGH | XSS | searchFor=yy%3Cimg%2Fsrc+onerror%3Dalert%2845%29%3E | reflected XSS Code |
|
135
|
-
| 21 | INFO | FILERD RULE | searchFor=yyXsPeaR%24 | not filtered $ |
|
136
|
-
| 22 | HIGH | XSS | searchFor=yy%22%3E%3Cscript%3Ealert%2845%29%3C%2Fscript%3E | reflected XSS Code |
|
137
|
-
| 23 | HIGH | XSS | searchFor=yy%3Csvg%2Fonload%3Dalert%2845%29%3E | reflected XSS Code |
|
138
|
-
+----+------+-------------+------------------------------------------------------------+---------------------+
|
139
|
+
+----+------+------------------+-------+----------------------------+-------------------------+
|
140
|
+
| [ XSpear report ] |
|
141
|
+
| http://testphp.vulnweb.com/listproducts.php?cat=1 |
|
142
|
+
| 2019-07-20 01:24:38 +0900 ~ 2019-07-20 01:25:41 +0900 Found 4 issues. |
|
143
|
+
+----+------+------------------+-------+----------------------------+-------------------------+
|
144
|
+
| NO | TYPE | ISSUE | PARAM | PAYLOAD | DESCRIPTION |
|
145
|
+
+----+------+------------------+-------+----------------------------+-------------------------+
|
146
|
+
| 0 | INFO | REFLECTED | cat | rEfe6 | reflected parameter |
|
147
|
+
| 1 | INFO | DYNAMIC ANALYSIS | cat | XsPeaR" | Found SQL Error Pattern |
|
148
|
+
| 2 | INFO | FILERD RULE | cat | XsPeaR$ | not filtered $ |
|
149
|
+
| 3 | HIGH | XSS | cat | <script>alert(45)</script> | reflected XSS Code |
|
150
|
+
+----+------+------------------+-------+----------------------------+-------------------------+
|
151
|
+
< Raw Query >
|
152
|
+
[0] http://testphp.vulnweb.com/listproducts.php?cat=1?cat=1rEfe6
|
153
|
+
[1] http://testphp.vulnweb.com/listproducts.php?cat=1?cat=1XsPeaR%22
|
154
|
+
[2] http://testphp.vulnweb.com/listproducts.php?cat=1?cat=1XsPeaR%24
|
155
|
+
[3] http://testphp.vulnweb.com/listproducts.php?cat=1?cat=1%22%3E%3Cscript%3Ealert%2845%29%3C%2Fscript%3E
|
139
156
|
```
|
140
157
|
|
141
158
|
**to JSON**
|
@@ -214,5 +231,5 @@ The gem is available as open source under the terms of the [MIT License](https:/
|
|
214
231
|
Everyone interacting in the XSpear project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/XSpear/blob/master/CODE_OF_CONDUCT.md).
|
215
232
|
|
216
233
|
## ScreenShot
|
217
|
-
<img src="https://user-images.githubusercontent.com/13212227/
|
234
|
+
<img src="https://user-images.githubusercontent.com/13212227/61550885-a7467000-aa8e-11e9-9677-2a0c5800e1cc.png" width=100%>
|
218
235
|
<img src="https://user-images.githubusercontent.com/13212227/61311071-8b459300-a830-11e9-8e60-c08e984fdacb.png" width=100%>
|
data/XSpear.gemspec
CHANGED
@@ -34,11 +34,13 @@ Gem::Specification.new do |spec|
|
|
34
34
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
35
35
|
spec.require_paths = ["lib"]
|
36
36
|
|
37
|
-
spec.add_runtime_dependency "colorize", "0.8.1"
|
38
|
-
spec.add_runtime_dependency "selenium-webdriver", "3.142.3"
|
37
|
+
spec.add_runtime_dependency "colorize", "~> 0.8.1"
|
38
|
+
spec.add_runtime_dependency "selenium-webdriver", "~> 3.142.3"
|
39
|
+
spec.add_runtime_dependency "terminal-table", "~> 1.8.0"
|
39
40
|
|
40
|
-
spec.add_development_dependency "colorize", "0.8.1"
|
41
|
-
spec.add_development_dependency "selenium-webdriver", "3.142.3"
|
41
|
+
spec.add_development_dependency "colorize", "~> 0.8.1"
|
42
|
+
spec.add_development_dependency "selenium-webdriver", "~> 3.142.3"
|
43
|
+
spec.add_development_dependency "terminal-table" , "~> 1.8.0"
|
42
44
|
spec.add_development_dependency "bundler", "~> 2.0"
|
43
45
|
spec.add_development_dependency "rake", "~> 10.0"
|
44
46
|
spec.add_development_dependency "rspec", "~> 3.0"
|
data/lib/XSpear/version.rb
CHANGED
metadata
CHANGED
@@ -1,71 +1,99 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: XSpear
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- hahwul
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-07-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colorize
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 0.8.1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 0.8.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: selenium-webdriver
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 3.142.3
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 3.142.3
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: terminal-table
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 1.8.0
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 1.8.0
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: colorize
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
44
58
|
requirements:
|
45
|
-
- -
|
59
|
+
- - "~>"
|
46
60
|
- !ruby/object:Gem::Version
|
47
61
|
version: 0.8.1
|
48
62
|
type: :development
|
49
63
|
prerelease: false
|
50
64
|
version_requirements: !ruby/object:Gem::Requirement
|
51
65
|
requirements:
|
52
|
-
- -
|
66
|
+
- - "~>"
|
53
67
|
- !ruby/object:Gem::Version
|
54
68
|
version: 0.8.1
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: selenium-webdriver
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
58
72
|
requirements:
|
59
|
-
- -
|
73
|
+
- - "~>"
|
60
74
|
- !ruby/object:Gem::Version
|
61
75
|
version: 3.142.3
|
62
76
|
type: :development
|
63
77
|
prerelease: false
|
64
78
|
version_requirements: !ruby/object:Gem::Requirement
|
65
79
|
requirements:
|
66
|
-
- -
|
80
|
+
- - "~>"
|
67
81
|
- !ruby/object:Gem::Version
|
68
82
|
version: 3.142.3
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: terminal-table
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 1.8.0
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 1.8.0
|
69
97
|
- !ruby/object:Gem::Dependency
|
70
98
|
name: bundler
|
71
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -129,7 +157,6 @@ files:
|
|
129
157
|
- LICENSE.txt
|
130
158
|
- README.md
|
131
159
|
- Rakefile
|
132
|
-
- XSpear-1.0.0.gem
|
133
160
|
- XSpear.gemspec
|
134
161
|
- bin/console
|
135
162
|
- bin/setup
|
data/XSpear-1.0.0.gem
DELETED
Binary file
|