XSpear 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|