XSpear 1.0.9 → 1.1.0

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: 7af449d36fa665bdbba42ab63dd4ecbc9b666dbeb29751df167cf3c28662d6d7
4
- data.tar.gz: fe079028ed5fe02664db09b5bcbfd15f2ea68661d2c6a146853872cbf8e978fd
3
+ metadata.gz: ea6588ae83ee1f89c3eff1f387b0b703d6862e471bef37c87ded1e356df39a7b
4
+ data.tar.gz: 9036a2080e929353daaeea7146253169b05ec65d204305345a53f8ee80419750
5
5
  SHA512:
6
- metadata.gz: 73b1cc7d0727310e9515f3b2602f3ab1b004f15bf85e316d63bc3c58a36840a03fc1a8481ea327aa0165851a01b1b294d9709029f2525c45bcf4c3b4215d90f1
7
- data.tar.gz: 3ab96ff93a503b4c94dd6f0427b963d1b3a81307aa4d7b8a2251a8e0693af848f49bda80174a21903e26e2ed700a7f45cb014cc09cea77d53de9a9f96e56be8b
6
+ metadata.gz: 2c55c310fbe45360257fff7e15b2850c96a09d5f94ac274fd551b45c6e9f9b45c757366fa466ca6405ce5e310c591f65c67f7dee9ac2764bf3ebeadd423f8691
7
+ data.tar.gz: 9271357e4283226c530ec50808bef585c4fb3f03e238f370b6090ba8c48f173a30fbf67f8209f2587f3cd85263f876c25b21e9542be97f5536e694ec854d668a
data/.idea/workspace.xml CHANGED
@@ -1,10 +1,12 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <project version="4">
3
3
  <component name="ChangeListManager">
4
- <list default="true" id="4ee2e581-45d7-4c90-b6a1-e92e4b5829dd" name="Default Changelist" comment="">
5
- <change beforePath="$PROJECT_DIR$/README.md" beforeDir="false" afterPath="$PROJECT_DIR$/README.md" afterDir="false" />
6
- <change beforePath="$PROJECT_DIR$/exe/XSpear" beforeDir="false" afterPath="$PROJECT_DIR$/exe/XSpear" afterDir="false" />
4
+ <list default="true" id="4ee2e581-45d7-4c90-b6a1-e92e4b5829dd" name="Default Changelist" comment="(1.1.0) [Fixed #15] Maqke">
5
+ <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
7
6
  <change beforePath="$PROJECT_DIR$/lib/XSpear.rb" beforeDir="false" afterPath="$PROJECT_DIR$/lib/XSpear.rb" afterDir="false" />
7
+ <change beforePath="$PROJECT_DIR$/lib/XSpear/XSpearRepoter.rb" beforeDir="false" afterPath="$PROJECT_DIR$/lib/XSpear/XSpearRepoter.rb" afterDir="false" />
8
+ <change beforePath="$PROJECT_DIR$/lib/XSpear/banner.rb" beforeDir="false" afterPath="$PROJECT_DIR$/lib/XSpear/banner.rb" afterDir="false" />
9
+ <change beforePath="$PROJECT_DIR$/lib/XSpear/version.rb" beforeDir="false" afterPath="$PROJECT_DIR$/lib/XSpear/version.rb" afterDir="false" />
8
10
  </list>
9
11
  <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
10
12
  <option name="SHOW_DIALOG" value="false" />
@@ -18,20 +20,11 @@
18
20
  <component name="FileEditorManager">
19
21
  <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
20
22
  <file pinned="false" current-in-tab="false">
21
- <entry file="file://$PROJECT_DIR$/exe/XSpear">
22
- <provider selected="true" editor-type-id="text-editor">
23
- <state relative-caret-position="458">
24
- <caret line="38" column="77" selection-start-line="38" selection-start-column="77" selection-end-line="38" selection-end-column="77" />
25
- </state>
26
- </provider>
27
- </entry>
28
- </file>
29
- <file pinned="false" current-in-tab="true">
30
23
  <entry file="file://$PROJECT_DIR$/README.md">
31
24
  <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
32
25
  <state split_layout="SPLIT">
33
- <first_editor relative-caret-position="274">
34
- <caret line="220" column="10" selection-start-line="220" selection-start-column="10" selection-end-line="220" selection-end-column="10" />
26
+ <first_editor relative-caret-position="1648">
27
+ <caret line="189" column="13" selection-start-line="189" selection-start-column="13" selection-end-line="189" selection-end-column="13" />
35
28
  </first_editor>
36
29
  <second_editor />
37
30
  </state>
@@ -46,17 +39,26 @@
46
39
  <file pinned="false" current-in-tab="false">
47
40
  <entry file="file://$PROJECT_DIR$/lib/XSpear.rb">
48
41
  <provider selected="true" editor-type-id="text-editor">
49
- <state relative-caret-position="-1602">
50
- <caret line="421" column="235" selection-start-line="421" selection-start-column="235" selection-end-line="421" selection-end-column="235" />
42
+ <state relative-caret-position="190">
43
+ <caret line="402" column="87" selection-start-line="402" selection-start-column="87" selection-end-line="402" selection-end-column="87" />
51
44
  </state>
52
45
  </provider>
53
46
  </entry>
54
47
  </file>
55
- <file pinned="false" current-in-tab="false">
48
+ <file pinned="false" current-in-tab="true">
56
49
  <entry file="file://$PROJECT_DIR$/lib/XSpear/XSpearRepoter.rb">
57
50
  <provider selected="true" editor-type-id="text-editor">
58
- <state relative-caret-position="1590">
59
- <caret line="106" column="9" lean-forward="true" selection-start-line="106" selection-start-column="9" selection-end-line="106" selection-end-column="9" />
51
+ <state relative-caret-position="1585">
52
+ <caret line="113" column="8" selection-start-line="113" selection-start-column="8" selection-end-line="113" selection-end-column="8" />
53
+ </state>
54
+ </provider>
55
+ </entry>
56
+ </file>
57
+ <file pinned="false" current-in-tab="false">
58
+ <entry file="file://$PROJECT_DIR$/lib/XSpear/banner.rb">
59
+ <provider selected="true" editor-type-id="text-editor">
60
+ <state relative-caret-position="150">
61
+ <caret line="10" column="35" selection-start-line="10" selection-start-column="35" selection-end-line="10" selection-end-column="35" />
60
62
  </state>
61
63
  </provider>
62
64
  </entry>
@@ -73,8 +75,8 @@
73
75
  <file pinned="false" current-in-tab="false">
74
76
  <entry file="file://$PROJECT_DIR$/lib/XSpear/version.rb">
75
77
  <provider selected="true" editor-type-id="text-editor">
76
- <state relative-caret-position="15">
77
- <caret line="1" column="18" selection-start-line="1" selection-start-column="18" selection-end-line="1" selection-end-column="18" />
78
+ <state relative-caret-position="45">
79
+ <caret line="3" lean-forward="true" selection-start-line="3" selection-end-line="3" />
78
80
  </state>
79
81
  </provider>
80
82
  </entry>
@@ -108,20 +110,18 @@
108
110
  <list>
109
111
  <option value="$PROJECT_DIR$/lib/XSpear/log.rb" />
110
112
  <option value="$PROJECT_DIR$/XSpear.gemspec" />
111
- <option value="$PROJECT_DIR$/lib/XSpear/banner.rb" />
112
- <option value="$PROJECT_DIR$/lib/XSpear/version.rb" />
113
- <option value="$PROJECT_DIR$/lib/XSpear/XSpearRepoter.rb" />
114
- <option value="$PROJECT_DIR$/lib/XSpear.rb" />
115
113
  <option value="$PROJECT_DIR$/exe/XSpear" />
116
114
  <option value="$PROJECT_DIR$/README.md" />
115
+ <option value="$PROJECT_DIR$/lib/XSpear/version.rb" />
116
+ <option value="$PROJECT_DIR$/lib/XSpear.rb" />
117
+ <option value="$PROJECT_DIR$/lib/XSpear/banner.rb" />
118
+ <option value="$PROJECT_DIR$/lib/XSpear/XSpearRepoter.rb" />
117
119
  </list>
118
120
  </option>
119
121
  </component>
120
122
  <component name="ProjectFrameBounds" fullScreen="true">
121
- <option name="x" value="-1920" />
122
- <option name="y" value="-643" />
123
- <option name="width" value="1920" />
124
- <option name="height" value="1080" />
123
+ <option name="width" value="1680" />
124
+ <option name="height" value="1050" />
125
125
  </component>
126
126
  <component name="ProjectLevelVcsManager" settingsEditedManually="true">
127
127
  <ConfirmationsSetting value="2" id="Add" />
@@ -131,7 +131,6 @@
131
131
  <foldersAlwaysOnTop value="true" />
132
132
  </navigator>
133
133
  <panes>
134
- <pane id="Scope" />
135
134
  <pane id="ProjectPane">
136
135
  <subPane>
137
136
  <expand>
@@ -169,6 +168,7 @@
169
168
  <select />
170
169
  </subPane>
171
170
  </pane>
171
+ <pane id="Scope" />
172
172
  </panes>
173
173
  </component>
174
174
  <component name="PropertiesComponent">
@@ -228,7 +228,8 @@
228
228
  <workItem from="1562942816004" duration="15337000" />
229
229
  <workItem from="1563638656518" duration="4985000" />
230
230
  <workItem from="1563809961097" duration="4237000" />
231
- <workItem from="1563893538891" duration="11528000" />
231
+ <workItem from="1563893538891" duration="11917000" />
232
+ <workItem from="1564151699165" duration="2215000" />
232
233
  </task>
233
234
  <task id="LOCAL-00001" summary="init update">
234
235
  <created>1562945899597</created>
@@ -545,17 +546,37 @@
545
546
  <option name="project" value="LOCAL" />
546
547
  <updated>1564065895283</updated>
547
548
  </task>
548
- <option name="localTasksCounter" value="46" />
549
+ <task id="LOCAL-00046" summary="(1.0.9) Releases 1.0.9 / Add --raw options, code refactoring, fixed bugs">
550
+ <created>1564067249340</created>
551
+ <option name="number" value="00046" />
552
+ <option name="presentableId" value="LOCAL-00046" />
553
+ <option name="project" value="LOCAL" />
554
+ <updated>1564067249340</updated>
555
+ </task>
556
+ <task id="LOCAL-00047" summary="(1.1.0) [Fixed #14] Edit raw query print code">
557
+ <created>1564151939307</created>
558
+ <option name="number" value="00047" />
559
+ <option name="presentableId" value="LOCAL-00047" />
560
+ <option name="project" value="LOCAL" />
561
+ <updated>1564151939307</updated>
562
+ </task>
563
+ <task id="LOCAL-00048" summary="(1.1.0) [Fixed #15] makeQueryPattern 내 페이로드 생성 코드 수정">
564
+ <created>1564152655489</created>
565
+ <option name="number" value="00048" />
566
+ <option name="presentableId" value="LOCAL-00048" />
567
+ <option name="project" value="LOCAL" />
568
+ <updated>1564152655489</updated>
569
+ </task>
570
+ <option name="localTasksCounter" value="49" />
549
571
  <servers />
550
572
  </component>
551
573
  <component name="TimeTrackingManager">
552
- <option name="totallyTimeSpent" value="36087000" />
574
+ <option name="totallyTimeSpent" value="38691000" />
553
575
  </component>
554
576
  <component name="ToolWindowManager">
555
- <frame x="-1920" y="-643" width="1920" height="1080" extended-state="0" />
556
- <editor active="true" />
577
+ <frame x="0" y="0" width="1680" height="1050" extended-state="0" />
557
578
  <layout>
558
- <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.16400427" />
579
+ <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.16605617" />
559
580
  <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
560
581
  <window_info id="Favorites" order="2" side_tool="true" />
561
582
  <window_info anchor="bottom" id="Message" order="0" />
@@ -568,7 +589,7 @@
568
589
  <window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
569
590
  <window_info anchor="bottom" id="Database Changes" order="8" />
570
591
  <window_info anchor="bottom" id="Version Control" order="9" />
571
- <window_info anchor="bottom" id="Terminal" order="10" visible="true" weight="0.34158415" />
592
+ <window_info active="true" anchor="bottom" id="Terminal" order="10" visible="true" weight="0.34081632" />
572
593
  <window_info anchor="bottom" id="Event Log" order="11" side_tool="true" />
573
594
  <window_info anchor="bottom" id="Messages" order="12" weight="0.32953367" />
574
595
  <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
@@ -581,9 +602,6 @@
581
602
  <option name="version" value="1" />
582
603
  </component>
583
604
  <component name="VcsManagerConfiguration">
584
- <MESSAGE value="Edit readme" />
585
- <MESSAGE value="modify dependency rspec" />
586
- <MESSAGE value="Change Badge(version)" />
587
605
  <MESSAGE value="Add show version &amp; edit help, version in banner" />
588
606
  <MESSAGE value="Edit version , release 1.0.2" />
589
607
  <MESSAGE value="Add EventHandler Test logic (1.0.3), edit description on report" />
@@ -606,7 +624,10 @@
606
624
  <MESSAGE value="(1.0.9)[Fixed #12] Modify XSpear Struct(option.* =&gt; options [hash])" />
607
625
  <MESSAGE value="(1.0.9)[Fixed #10] Add raw file read options" />
608
626
  <MESSAGE value="(1.0.9)[Fixed #13] Remove add pattern from StandardError in 'makeQueryPattern'" />
609
- <option name="LAST_COMMIT_MESSAGE" value="(1.0.9)[Fixed #13] Remove add pattern from StandardError in 'makeQueryPattern'" />
627
+ <MESSAGE value="(1.0.9) Releases 1.0.9 / Add --raw options, code refactoring, fixed bugs" />
628
+ <MESSAGE value="(1.1.0) [Fixed #14] Edit raw query print code" />
629
+ <MESSAGE value="(1.1.0) [Fixed #15] makeQueryPattern 내 페이로드 생성 코드 수정" />
630
+ <option name="LAST_COMMIT_MESSAGE" value="(1.1.0) [Fixed #15] makeQueryPattern 내 페이로드 생성 코드 수정" />
610
631
  </component>
611
632
  <component name="editorHistoryManager">
612
633
  <entry file="file://$USER_HOME$/.rvm/gems/ruby-2.4.6/gems/bundler-2.0.1/lib/bundler/rubygems_integration.rb">
@@ -622,10 +643,20 @@
622
643
  <entry file="file://$PROJECT_DIR$/bin/setup">
623
644
  <provider selected="true" editor-type-id="text-editor" />
624
645
  </entry>
625
- <entry file="file://$PROJECT_DIR$/lib/XSpear/banner.rb">
646
+ <entry file="file://$PROJECT_DIR$/exe/XSpear">
647
+ <provider selected="true" editor-type-id="text-editor">
648
+ <state relative-caret-position="570">
649
+ <caret line="38" column="77" selection-start-line="38" selection-start-column="77" selection-end-line="38" selection-end-column="77" />
650
+ </state>
651
+ </provider>
652
+ </entry>
653
+ <entry file="file://$PROJECT_DIR$/spec/XSpear_spec.rb">
654
+ <provider selected="true" editor-type-id="text-editor" />
655
+ </entry>
656
+ <entry file="file://$PROJECT_DIR$/lib/XSpear/log.rb">
626
657
  <provider selected="true" editor-type-id="text-editor">
627
- <state relative-caret-position="180">
628
- <caret line="12" column="69" selection-start-line="12" selection-start-column="69" selection-end-line="12" selection-end-column="69" />
658
+ <state relative-caret-position="195">
659
+ <caret line="13" column="19" selection-start-line="13" selection-start-column="19" selection-end-line="13" selection-end-column="19" />
629
660
  </state>
630
661
  </provider>
631
662
  </entry>
@@ -642,51 +673,41 @@
642
673
  <entry file="file:///usr/local/bin/rake">
643
674
  <provider selected="true" editor-type-id="text-editor" />
644
675
  </entry>
645
- <entry file="file://$PROJECT_DIR$/spec/XSpear_spec.rb">
646
- <provider selected="true" editor-type-id="text-editor" />
647
- </entry>
648
- <entry file="file://$PROJECT_DIR$/lib/XSpear/version.rb">
649
- <provider selected="true" editor-type-id="text-editor">
650
- <state relative-caret-position="15">
651
- <caret line="1" column="18" selection-start-line="1" selection-start-column="18" selection-end-line="1" selection-end-column="18" />
652
- </state>
653
- </provider>
654
- </entry>
655
- <entry file="file://$PROJECT_DIR$/lib/XSpear/log.rb">
656
- <provider selected="true" editor-type-id="text-editor">
657
- <state relative-caret-position="195">
658
- <caret line="13" column="19" selection-start-line="13" selection-start-column="19" selection-end-line="13" selection-end-column="19" />
676
+ <entry file="file://$PROJECT_DIR$/README.md">
677
+ <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
678
+ <state split_layout="SPLIT">
679
+ <first_editor relative-caret-position="1648">
680
+ <caret line="189" column="13" selection-start-line="189" selection-start-column="13" selection-end-line="189" selection-end-column="13" />
681
+ </first_editor>
682
+ <second_editor />
659
683
  </state>
660
684
  </provider>
661
685
  </entry>
662
- <entry file="file://$PROJECT_DIR$/lib/XSpear/XSpearRepoter.rb">
686
+ <entry file="file://$PROJECT_DIR$/lib/XSpear/version.rb">
663
687
  <provider selected="true" editor-type-id="text-editor">
664
- <state relative-caret-position="1590">
665
- <caret line="106" column="9" lean-forward="true" selection-start-line="106" selection-start-column="9" selection-end-line="106" selection-end-column="9" />
688
+ <state relative-caret-position="45">
689
+ <caret line="3" lean-forward="true" selection-start-line="3" selection-end-line="3" />
666
690
  </state>
667
691
  </provider>
668
692
  </entry>
669
- <entry file="file://$PROJECT_DIR$/exe/XSpear">
693
+ <entry file="file://$PROJECT_DIR$/lib/XSpear/banner.rb">
670
694
  <provider selected="true" editor-type-id="text-editor">
671
- <state relative-caret-position="458">
672
- <caret line="38" column="77" selection-start-line="38" selection-start-column="77" selection-end-line="38" selection-end-column="77" />
695
+ <state relative-caret-position="150">
696
+ <caret line="10" column="35" selection-start-line="10" selection-start-column="35" selection-end-line="10" selection-end-column="35" />
673
697
  </state>
674
698
  </provider>
675
699
  </entry>
676
700
  <entry file="file://$PROJECT_DIR$/lib/XSpear.rb">
677
701
  <provider selected="true" editor-type-id="text-editor">
678
- <state relative-caret-position="-1602">
679
- <caret line="421" column="235" selection-start-line="421" selection-start-column="235" selection-end-line="421" selection-end-column="235" />
702
+ <state relative-caret-position="190">
703
+ <caret line="402" column="87" selection-start-line="402" selection-start-column="87" selection-end-line="402" selection-end-column="87" />
680
704
  </state>
681
705
  </provider>
682
706
  </entry>
683
- <entry file="file://$PROJECT_DIR$/README.md">
684
- <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
685
- <state split_layout="SPLIT">
686
- <first_editor relative-caret-position="274">
687
- <caret line="220" column="10" selection-start-line="220" selection-start-column="10" selection-end-line="220" selection-end-column="10" />
688
- </first_editor>
689
- <second_editor />
707
+ <entry file="file://$PROJECT_DIR$/lib/XSpear/XSpearRepoter.rb">
708
+ <provider selected="true" editor-type-id="text-editor">
709
+ <state relative-caret-position="1585">
710
+ <caret line="113" column="8" selection-start-line="113" selection-start-column="8" selection-end-line="113" selection-end-column="8" />
690
711
  </state>
691
712
  </provider>
692
713
  </entry>
@@ -29,18 +29,20 @@ class XspearRepoter
29
29
  # desc
30
30
  # category
31
31
  # callback
32
+ @rtype = {"i"=>"INFO".blue,"v"=>"VULN".red,"l"=>"LOW".green,"m"=>"MIDUM".yellow,"h"=>"HIGH".light_red}
33
+ @rissue = {"f"=>"FILERD RULE","r"=>"REFLECTED","x"=>"XSS","s"=>"STATIC ANALYSIS","d"=>"DYNAMIC ANALYSIS"}
32
34
  end
33
35
 
34
36
  def add_issue_first(type, issue, param, payload, pattern, description)
35
- rtype = {"i"=>"INFO".blue,"v"=>"VULN".red,"l"=>"LOW".green,"m"=>"MIDUM".yellow,"h"=>"HIGH".red}
36
- rissue = {"f"=>"FILERD RULE","r"=>"REFLECTED","x"=>"XSS","s"=>"STATIC ANALYSIS","d"=>"DYNAMIC ANALYSIS"}
37
+ rtype = @rtype
38
+ rissue = @rissue
37
39
  @issue.insert(0,["-", rtype[type], rissue[issue], @method, param, pattern, description])
38
40
  @query.push payload
39
41
  end
40
42
 
41
43
  def add_issue(type, issue, param, payload, pattern, description)
42
- rtype = {"i"=>"INFO".blue,"v"=>"VULN".red,"l"=>"LOW".green,"m"=>"MIDUM".yellow,"h"=>"HIGH".red}
43
- rissue = {"f"=>"FILERD RULE","r"=>"REFLECTED","x"=>"XSS","s"=>"STATIC ANALYSIS","d"=>"DYNAMIC ANALYSIS"}
44
+ rtype = @rtype
45
+ rissue = @rissue
44
46
  @issue << [@issue.size, rtype[type], rissue[issue], @method, param, pattern, description]
45
47
  @query.push payload
46
48
  end
@@ -84,35 +86,46 @@ class XspearRepoter
84
86
  puts table
85
87
  puts "< Available Objects >".yellow
86
88
  @filtered_objects.each do |key, value|
87
- eh = []
88
- tag = []
89
- sc = []
90
- uc = []
91
- puts "[#{key}]".blue+" param"
92
- value.each do |n|
93
- if n.include? "=64"
94
- # eh
95
- eh.push n.chomp("=64")
96
- elsif n.include? "xsp<"
97
- # tag
98
- n = n.sub("xsp<","")
99
- tag.push n.chomp(">")
100
- elsif n.include? ".xspear"
101
- # uc
102
- uc.push n.sub(".xspear","")
103
- else
104
- # sc
105
- sc.push n.sub("XsPeaR","")
89
+ begin
90
+ eh = []
91
+ tag = []
92
+ sc = []
93
+ uc = []
94
+ puts "[#{key}]".blue+" param"
95
+ value.each do |n|
96
+ if n.include? "=64"
97
+ # eh
98
+ eh.push n.chomp("=64")
99
+ elsif n.include? "xsp<"
100
+ # tag
101
+ n = n.sub("xsp<","")
102
+ tag.push n.chomp(">")
103
+ elsif n.include? ".xspear"
104
+ # uc
105
+ uc.push n.sub(".xspear","")
106
+ else
107
+ # sc
108
+ sc.push n.sub("XsPeaR","")
109
+ end
106
110
  end
111
+ puts " + Available Special Char: ".green+"#{sc.map(&:inspect).join(',').gsub('"',"")}".gsub(',',' ')
112
+ puts " + Available Event Handler: ".green+"#{eh.map(&:inspect).join(',')}"
113
+ puts " + Available HTML Tag: ".green+"#{tag.map(&:inspect).join(',')}"
114
+ puts " + Available Useful Code: ".green+"#{uc.map(&:inspect).join(',')}"
115
+ rescue
116
+ puts "Not found"
107
117
  end
108
- puts " + Available Special Char: ".green+"#{sc.map(&:inspect).join(',').gsub('"',"")}".gsub(',',' ')
109
- puts " + Available Event Handler: ".green+"#{eh.map(&:inspect).join(',')}"
110
- puts " + Available HTML Tag: ".green+"#{tag.map(&:inspect).join(',')}"
111
- puts " + Available Useful Code: ".green+"#{uc.map(&:inspect).join(',')}"
112
118
  end
113
- puts "< Raw Query >".yellow
119
+ if @filtered_objects.length == 0
120
+ puts "Not found"
121
+ end
122
+ puts "\n< Raw Query >".yellow
123
+ begin
114
124
  @query.each_with_index do |q, i|
115
- puts "[#{i}] "+@url+"?"+q
125
+ puts "[#{i}] #{@url.sub(URI.parse(@url).query,"")}"+q
126
+ end
127
+ rescue
128
+ puts "Not found"
116
129
  end
117
130
  end
118
131
  end
data/lib/XSpear/banner.rb CHANGED
@@ -3,12 +3,12 @@ def banner;
3
3
  ( /( )\\ )
4
4
  )\\())(()/( ( ) (
5
5
  ((_)\\ /(_))` ) ))\\ ( /( )(
6
- __((_)(_)) /(/( /((_))(_))(()\\
7
- \\ \\/ // __|((_)_\\ (_)) ((_)_ ((_)
6
+ __((_)(_)) /(/( /((_))(_))(()\\".red+"
7
+ \\ \\/ // __|"+"((_)_\\ (_)) ((_)_ ((_)".red+"
8
8
  > < \\__ \\| '_ \\)/ -_)/ _` || '_|
9
- /_/\\_\\|___/| .__/ \\___|\\__,_||_| />
10
- |_| \\ /<
11
- {\\\\\\\\\\\\\\\\\\\\\\\\\\BYHAHWUL\\\\\\\\\\\\\\\\\\\\\\(0):::<======================-
12
- / \\<
13
- \\> [ v#{XSpear::VERSION} ]"
9
+ /_/\\_\\|___/| .__/ \\___|\\__,_||_| "+"/>".red+"
10
+ |_| "+"\\ /<".red+"
11
+ "+"{\\\\\\\\\\\\\\\\\\\\\\\\\\".red+"BYHAHWUL"+"\\\\\\\\\\\\\\\\\\\\\\(0):::<======================-".red+"
12
+ "+"/ \\<".red+"
13
+ "+"\\>".red+" [ v#{XSpear::VERSION} ]"
14
14
  end
@@ -1,3 +1,3 @@
1
1
  module XSpear
2
- VERSION = "1.0.9"
2
+ VERSION = "1.1.0"
3
3
  end
data/lib/XSpear.rb CHANGED
@@ -400,7 +400,7 @@ class XspearScan
400
400
  r.push makeQueryPattern('x', '"\'><details/open/ontoggle="alert`45`">', '<details/open/ontoggle="alert`45`">', 'h', "reflected "+"HTML5 XSS Code".red, CallbackStringMatch)
401
401
  r.push makeQueryPattern('x', '"\'><audio src onloadstart=alert(45)>', '<audio src onloadstart=alert(45)>', 'h', "reflected "+"HTML5 XSS Code".red, CallbackStringMatch)
402
402
  r.push makeQueryPattern('x', '"\'><marquee onstart=alert(45)>', '<marquee onstart=alert(45)>', 'h', "reflected "+"HTML5 XSS Code".red, CallbackStringMatch)
403
- r.push makeQueryPattern('x', '"\'><meter value=2 min=0 max=10 onmouseover=alert(45)>2 out of 10</meter>', '<meter value=2 min=0 max=10 onmouseover=alert(45)>2 out of 10</meter>', 'h', "reflected "+"HTML5 XSS Code".red, CallbackStringMatch)
403
+ r.push makeQueryPattern('x', '"\'><meter onmouseover=alert(45)>0</meter>', '<meter onmouseover=alert(45)>0</meter>', 'h', "reflected "+"HTML5 XSS Code".red, CallbackStringMatch)
404
404
 
405
405
  onfocus_tags.each do |t|
406
406
  r.push makeQueryPattern('x', "\"'><#{t} autofocus onfocus=alert(45)>", "<#{t} autofocus onfocus=alert(45)>", 'h', "reflected "+"onfocus XSS Code".red, CallbackStringMatch)
@@ -489,22 +489,26 @@ class XspearScan
489
489
  params = URI.decode_www_form(uri.query)
490
490
  params.each do |p|
491
491
  if @params.nil? || (@params.include? p[0] if !@params.nil?)
492
+ attack = ""
492
493
  dparams = params
493
494
  dparams.each do |d|
494
- d[1] = p[1] + payload if p[0] == d[0]
495
+ attack = uri.query.sub "#{d[0]}=#{d[1]}","#{d[0]}=#{d[1]}#{URI::encode(payload)}" if p[0] == d[0]
496
+ #d[1] = p[1] + payload if p[0] == d[0]
495
497
  end
496
- result.push("inject": 'url',"param":p[0] ,"type": type, "query": URI.encode_www_form(dparams), "pattern": pattern, "desc": desc, "category": category, "callback": callback)
498
+ result.push("inject": 'url',"param":p[0] ,"type": type, "query": attack, "pattern": pattern, "desc": desc, "category": category, "callback": callback)
497
499
  end
498
500
  end
499
501
  unless @data.nil?
500
502
  params = URI.decode_www_form(@data)
501
503
  params.each do |p|
502
504
  if @params.nil? || (@params.include? p[0] if !@params.nil?)
505
+ attack = ""
503
506
  dparams = params
504
507
  dparams.each do |d|
505
- d[1] = p[1] + payload if p[0] == d[0]
508
+ attack = uri.query.sub "#{d[0]}=#{d[1]}","#{d[0]}=#{d[1]}#{URI::encode(payload)}" if p[0] == d[0]
509
+ #d[1] = p[1] + payload if p[0] == d[0]
506
510
  end
507
- result.push("inject": 'body', "param":p[0], "type": type, "query": URI.encode_www_form(dparams), "pattern": pattern, "desc": desc, "category": category, "callback": callback)
511
+ result.push("inject": 'body', "param":p[0], "type": type, "query": attack, "pattern": pattern, "desc": desc, "category": category, "callback": callback)
508
512
  end
509
513
  end
510
514
  end
data/raw_sample.txt ADDED
@@ -0,0 +1,8 @@
1
+ GET https://www.hahwul.com/?q=xspear HTTP/1.1
2
+ User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0
3
+ Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
4
+ Accept-Language: ko-KR,ko;q=0.8,en-US;q=0.5,en;q=0.3
5
+ Connection: keep-alive
6
+ Cookie: _ga=GA1.2.1102548207.1555467144; _gid=GA1.2.1362788908.1563875038
7
+ Upgrade-Insecure-Requests: 1
8
+ Host: www.hahwul.com
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: XSpear
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.9
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - hahwul
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-07-25 00:00:00.000000000 Z
11
+ date: 2019-07-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colorize
@@ -167,6 +167,7 @@ files:
167
167
  - lib/XSpear/banner.rb
168
168
  - lib/XSpear/log.rb
169
169
  - lib/XSpear/version.rb
170
+ - raw_sample.txt
170
171
  homepage: https://github.com/hahwul/XSpear
171
172
  licenses:
172
173
  - MIT