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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 78518c002289b75972864ee98408eeaa2fdf67e8dc11b8060cc27d4bf14ddd18
4
- data.tar.gz: 325a901906a3864ad9a2e69553bcd0e8a0e026852595aef8cb157afdeecdde7e
3
+ metadata.gz: 7972c77531071581bfeac03c4faa63681075b0668611f6fdd767030eaa7450c9
4
+ data.tar.gz: e22b692ea493fc780d6c53d013aff1d63af28330134dc5f20cf406ae2989f569
5
5
  SHA512:
6
- metadata.gz: a6928661c2d76c5121e941929f51695f016ffb83bba3168e6c5b5cb46e9f6c9f393eb849c3d671a046e131b0d9a9fbb7825ccbe9ad08a54a55b72926b4ae0d84
7
- data.tar.gz: cf81d9c95865ed8d868f9182985f4868c6c539e47546143edc596bf3944db3f261c5f477c39ec79a766c08b144f486913712045fa4fae207e18c98f6a4e95f10
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$/exe/XSpear" beforeDir="false" afterPath="$PROJECT_DIR$/exe/XSpear" afterDir="false" />
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="true">
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="414">
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="150">
51
- <caret line="10" column="36" selection-start-line="10" selection-start-column="36" selection-end-line="10" selection-end-column="36" />
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 relative-caret-position="692">
67
- <caret line="66" column="24" selection-start-line="66" selection-start-column="24" selection-end-line="66" selection-end-column="24" />
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="false">
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="45">
94
- <caret line="3" selection-start-line="3" selection-end-line="3" />
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="32">
103
- <caret line="10" lean-forward="true" selection-start-line="10" selection-end-line="10" />
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="-1930" />
129
- <option name="y" value="-612" />
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="13642000" />
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
- <option name="localTasksCounter" value="17" />
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="13642000" />
377
+ <option name="totallyTimeSpent" value="15552000" />
354
378
  </component>
355
379
  <component name="ToolWindowManager">
356
- <frame x="-1930" y="-612" width="1920" height="1057" extended-state="6" />
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="Favorites" side_tool="true" />
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 anchor="bottom" id="Docker" show_stripe_button="false" />
363
- <window_info anchor="bottom" id="Database Changes" />
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="right" id="Database" />
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 &amp; 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 &amp; README, Change version" />
394
- <option name="LAST_COMMIT_MESSAGE" value="Edit Selenium code &amp; README, Change version" />
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$/bin/setup">
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="195">
413
- <caret line="13" column="19" selection-start-line="13" selection-start-column="11" selection-end-line="13" selection-end-column="19" />
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$/lib/XSpear/banner.rb">
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/version.rb">
441
+ <entry file="file://$PROJECT_DIR$/lib/XSpear.rb">
425
442
  <provider selected="true" editor-type-id="text-editor">
426
- <state relative-caret-position="45">
427
- <caret line="3" selection-start-line="3" selection-end-line="3" />
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="150">
435
- <caret line="10" column="36" selection-start-line="10" selection-start-column="36" selection-end-line="10" selection-end-column="36" />
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 relative-caret-position="692">
444
- <caret line="66" column="24" selection-start-line="66" selection-start-column="24" selection-end-line="66" selection-end-column="24" />
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$/exe/XSpear">
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="448">
451
- <caret line="66" column="3" selection-start-line="66" selection-start-column="3" selection-end-line="66" selection-end-column="3" />
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="32">
458
- <caret line="10" lean-forward="true" selection-start-line="10" selection-end-line="10" />
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="414">
465
- <caret line="116" column="19" selection-start-line="116" selection-start-column="19" selection-end-line="116" selection-end-column="19" />
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/github/languages/top/hahwul/XSpear.svg"> <img src="https://img.shields.io/static/v1.svg?label=version&message=1.0&color=purple"> <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>
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
- - Dynamic test based XSS scanning (with Selenium)
8
+ - Detect `alert` `confirm` `prompt` event on headless browser (with Selenium)
9
9
  - Testing request/response for XSS protection bypass and reflected params
10
- - Enable XSpear in code with Gem library load
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
- $ xspear -u 'https://www.hahwul.com/?q=123' --cookie='role=admin'
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
- -l, --level=1~3 [optional] Custom scan level
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. [50 query]
111
+ [*] test query generation is complete. [30 query]
96
112
  [*] starting test and analysis. [10 threads]
97
- [I] [00:57:24] reflected XsPeaR>[param: searchFor][not filtered >]
98
- [-] [00:57:24] not reflected XsPeaR>
99
- [-] [00:57:24] not reflected <XsPeaR
100
- [-] [00:57:24] not reflected XsPeaR"
101
- [-] [00:57:24] not reflected rEfe6
102
- ...snip...
103
- [-] [00:57:27] not reflected <script>alert(45)</script>
104
- [H] [00:57:27] reflected <svg/onload=alert(45)>[param: searchFor][reflected XSS Code]
105
- [-] [00:57:27] not reflected <svg/onload=alert(45)>
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
- | [ XSpear report ] |
109
- | 2019-07-17 00:57:23 +0900 ~ 2019-07-17 00:58:08 +0900 || Found 24 issues. |
110
- | http://testphp.vulnweb.com/search.php?test=query |
111
- +----+------+-------------+------------------------------------------------------------+---------------------+
112
- | NO | TYPE | ISSUE | PAYLOAD | DESCRIPTION |
113
- +----+------+-------------+------------------------------------------------------------+---------------------+
114
- | 0 | INFO | FILERD RULE | searchFor=yyXsPeaR%3E | not filtered > |
115
- | 1 | INFO | FILERD RULE | searchFor=yy%3CXsPeaR | not filtered < |
116
- | 2 | INFO | FILERD RULE | searchFor=yyXsPeaR%22 | not filtered " |
117
- | 3 | INFO | FILERD RULE | searchFor=yyXsPeaR%27 | not filtered ' |
118
- | 4 | INFO | REFLECTED | searchFor=yyrEfe6 | reflected parameter |
119
- | 5 | INFO | FILERD RULE | searchFor=yyXsPeaR%28 | not filtered ( |
120
- | 6 | INFO | FILERD RULE | searchFor=yyXsPeaR%7C | not filtered | |
121
- | 7 | INFO | FILERD RULE | searchFor=yyXsPeaR%3B | not filtered ; |
122
- | 8 | INFO | FILERD RULE | searchFor=yyXsPeaR%29 | not filtered ) |
123
- | 9 | INFO | FILERD RULE | searchFor=yyXsPeaR%60 | not filtered ` |
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/61311070-8aacfc80-a830-11e9-9091-61d68e16d81a.png" width=100%>
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"
@@ -1,3 +1,3 @@
1
1
  module XSpear
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
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.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