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 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