ronin-dorks 0.1.1 → 0.1.2
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.
- data.tar.gz.sig +4 -0
- data/History.txt +8 -0
- data/Manifest.txt +3 -0
- data/README.txt +30 -2
- data/Rakefile +8 -8
- data/bin/ronin-dorks +5 -0
- data/lib/ronin/dorks/version.rb +1 -1
- data/lib/ronin/web/dorks.rb +3 -173
- data/lib/ronin/web/dorks/documents.rb +65 -0
- data/lib/ronin/web/dorks/dorks.rb +230 -0
- data/lib/ronin/web/dorks/index.rb +59 -0
- data/spec/spec_helper.rb +1 -1
- metadata +41 -9
- metadata.gz.sig +2 -0
data.tar.gz.sig
ADDED
data/History.txt
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
=== 0.1.2 / 2009-07-02
|
2
|
+
|
3
|
+
* Use Hoe >= 2.0.0.
|
4
|
+
* Added Web::Dorks.intext.
|
5
|
+
* Added Web::Dorks.allintext.
|
6
|
+
* Added Web::Dorks.string_intext.
|
7
|
+
* Added Web::Dorks.all_strings_intext.
|
8
|
+
|
1
9
|
=== 0.1.1 / 2009-02-23
|
2
10
|
|
3
11
|
* Added a git style sub-command (<tt>ronin-dorks</tt>) which starts the
|
data/Manifest.txt
CHANGED
data/README.txt
CHANGED
@@ -40,8 +40,10 @@ of Ronin.
|
|
40
40
|
== FEATURES/PROBLEMS:
|
41
41
|
|
42
42
|
* Provides convenience methods for many common Google (tm) Dorks:
|
43
|
-
* Search for URLs containing a specified string
|
44
|
-
* Search for URLs containing a specified pattern
|
43
|
+
* Search for URLs containing a specified string.
|
44
|
+
* Search for URLs containing a specified pattern.
|
45
|
+
* Search for Pages containing a specified text string.
|
46
|
+
* Search for Pages containing a specified text pattern.
|
45
47
|
* Search for Indexes of unprotected <tt>cgi-bin</tt> directories.
|
46
48
|
* Search for unprotected MySQL dump files.
|
47
49
|
* Search for unprotected MySQL dump files containing the password hash
|
@@ -74,6 +76,32 @@ of Ronin.
|
|
74
76
|
|
75
77
|
$ ronin-dorks
|
76
78
|
|
79
|
+
== EXAMPLES:
|
80
|
+
|
81
|
+
* Search for URLs containing a pattern:
|
82
|
+
|
83
|
+
Web::Dorks.inurl('stmt=')
|
84
|
+
|
85
|
+
* Search for URLs containing all patterns:
|
86
|
+
|
87
|
+
Web::Dorks.allinurl(['show', 'php', 'page'])
|
88
|
+
|
89
|
+
* Search for pages containing the specified text in the title:
|
90
|
+
|
91
|
+
Web::Dorks.intitle('Profile')
|
92
|
+
|
93
|
+
* Search for pages containing all specified text in the title:
|
94
|
+
|
95
|
+
Web::Dorks.allintitle(['Profile', 'Edit'])
|
96
|
+
|
97
|
+
* Search for pages containing the specified text:
|
98
|
+
|
99
|
+
Web::Dorks.intext('Powered by')
|
100
|
+
|
101
|
+
* Search for pages containing all specified text:
|
102
|
+
|
103
|
+
Web::Dorks.allintext(['Powered by', '0.5'])
|
104
|
+
|
77
105
|
== LICENSE:
|
78
106
|
|
79
107
|
Ronin SQL - A Ruby library for Ronin that provides support for various
|
data/Rakefile
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
|
3
3
|
require 'rubygems'
|
4
4
|
require 'hoe'
|
5
|
+
require 'hoe/signing'
|
5
6
|
require './tasks/spec.rb'
|
6
|
-
require './lib/ronin/dorks/version.rb'
|
7
7
|
|
8
|
-
Hoe.
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
['ronin', '>=0.2.
|
14
|
-
['ronin-web', '>=0.1.
|
8
|
+
Hoe.spec('ronin-dorks') do
|
9
|
+
self.rubyforge_name = 'ronin'
|
10
|
+
self.developer('Postmodern', 'postmodern.mod3@gmail.com')
|
11
|
+
self.remote_rdoc_dir = 'docs/ronin-dorks'
|
12
|
+
self.extra_deps = [
|
13
|
+
['ronin', '>=0.2.4'],
|
14
|
+
['ronin-web', '>=0.1.2'],
|
15
15
|
['gscraper', '>=0.2.2']
|
16
16
|
]
|
17
17
|
end
|
data/bin/ronin-dorks
CHANGED
data/lib/ronin/dorks/version.rb
CHANGED
data/lib/ronin/web/dorks.rb
CHANGED
@@ -21,176 +21,6 @@
|
|
21
21
|
#++
|
22
22
|
#
|
23
23
|
|
24
|
-
require 'ronin/web/
|
25
|
-
require 'ronin/
|
26
|
-
require 'ronin/
|
27
|
-
|
28
|
-
require 'json'
|
29
|
-
require 'gscraper/search'
|
30
|
-
|
31
|
-
module Ronin
|
32
|
-
module Web
|
33
|
-
module Dorks
|
34
|
-
include GScraper
|
35
|
-
|
36
|
-
#
|
37
|
-
# Creates either a <tt>GScraper::Search::WebQuery</tt> or a
|
38
|
-
# <tt>GScraper::Search::AJAXQuery</tt> with the given _options_.
|
39
|
-
# If a _block_ is given, it will be passed the newly created
|
40
|
-
# query object.
|
41
|
-
#
|
42
|
-
# _options_ may contain the following keys:
|
43
|
-
# <tt>:ajax</tt>:: Specifies wether or not to create a
|
44
|
-
# <tt>GScraper::Search::AJAXQuery</tt>.
|
45
|
-
#
|
46
|
-
def Dorks.search(options={},&block)
|
47
|
-
if options[:ajax] == true
|
48
|
-
return Search.ajax_query(options,&block)
|
49
|
-
else
|
50
|
-
return Search.query(options,&block)
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
def Dorks.inurl(pattern,options={},&block)
|
55
|
-
Dorks.search(options.merge(:inurl => pattern),&block)
|
56
|
-
end
|
57
|
-
|
58
|
-
def Dorks.string_inurl(string,options={},&block)
|
59
|
-
Dorks.inurl("'#{string}'",options,&block)
|
60
|
-
end
|
61
|
-
|
62
|
-
def Dorks.allinurl(patterns,options={},&block)
|
63
|
-
Dorks.search(options.merge(:allinurl => patterns),&block)
|
64
|
-
end
|
65
|
-
|
66
|
-
def Dorks.all_strings_inurl(patterns,options={},&block)
|
67
|
-
Dorks.search(options.merge(:allinurl => patterns.map { |pattern|
|
68
|
-
"'#{pattern}'"
|
69
|
-
}),&block)
|
70
|
-
end
|
71
|
-
|
72
|
-
def Dorks.index_of(path=nil,options={},&block)
|
73
|
-
if path
|
74
|
-
options = options.merge(:intitle => "\"Index of #{path}\"")
|
75
|
-
else
|
76
|
-
options = options.merge(:intitle => '"Index of"')
|
77
|
-
end
|
78
|
-
|
79
|
-
return Dorks.search(options,&block)
|
80
|
-
end
|
81
|
-
|
82
|
-
def Dorks.index_of_cgi_bin(options={},&block)
|
83
|
-
Dorks.index_of('/cgi-bin',&block)
|
84
|
-
end
|
85
|
-
|
86
|
-
def Dorks.index_with_file(name,options={},&block)
|
87
|
-
Dorks.index_of(options.merge(:intext => "\"#{name}\""),&block)
|
88
|
-
end
|
89
|
-
|
90
|
-
def Dorks.index_with_sql(options={},&block)
|
91
|
-
Dorks.index_of(options.merge(:intext => '".sql"'),&block)
|
92
|
-
end
|
93
|
-
|
94
|
-
def Dorks.sql_dump(options={},&block)
|
95
|
-
query = []
|
96
|
-
|
97
|
-
query << "Host: #{options[:host]}" if options[:host]
|
98
|
-
query << "Database: #{options[:database]}" if options[:database]
|
99
|
-
query << options[:version] if options[:version]
|
100
|
-
|
101
|
-
query << "\"#{options[:sql]}\"" if options[:sql]
|
102
|
-
query << options[:password].to_s.md5 if options[:password]
|
103
|
-
|
104
|
-
return Dorks.search(options.merge(
|
105
|
-
:query => query,
|
106
|
-
:exact_phrase => '"SQL Dump"',
|
107
|
-
:filetype => :sql
|
108
|
-
),&block)
|
109
|
-
end
|
110
|
-
|
111
|
-
def Dorks.sql_admin_dump(options={},&block)
|
112
|
-
Dorks.sql_dump(options.merge(:password => 'admin'),&block)
|
113
|
-
end
|
114
|
-
|
115
|
-
def Dorks.cps(options={},&block)
|
116
|
-
Dorks.search(options.merge(
|
117
|
-
:exact_phrase => 'Certificate Practice Statement',
|
118
|
-
:inurl => '(PDF | DOC)'
|
119
|
-
),&block)
|
120
|
-
end
|
121
|
-
|
122
|
-
def Dorks.vuln_report(options={},&block)
|
123
|
-
Dorks.search(options.merge(
|
124
|
-
:exact_phrase => 'Network Vulnerability Assessment'
|
125
|
-
),&block)
|
126
|
-
end
|
127
|
-
|
128
|
-
def Dorks.receipts(options={},&block)
|
129
|
-
Dorks.search(options.merge(
|
130
|
-
:exact_phrase => 'Thank you for your order',
|
131
|
-
:with_words => ['receipt'],
|
132
|
-
:filetype => :pdf
|
133
|
-
),&block)
|
134
|
-
end
|
135
|
-
|
136
|
-
def Dorks.robots_txt(options={},&block)
|
137
|
-
Dorks.search(options.merge(
|
138
|
-
:exact_phrase => 'robots.txt',
|
139
|
-
:with_words => ['Disallow'],
|
140
|
-
:filetype => :txt
|
141
|
-
),&block)
|
142
|
-
end
|
143
|
-
|
144
|
-
def Dorks.php_my_admin(options={},&block)
|
145
|
-
Dorks.search(options.merge(
|
146
|
-
:with_words => ['phpMyAdmin'],
|
147
|
-
:exact_phrase => 'running on',
|
148
|
-
:inurl => 'main.php'
|
149
|
-
),&block)
|
150
|
-
end
|
151
|
-
|
152
|
-
def Dorks.qbw(options={},&block)
|
153
|
-
Dorks.search(options.merge(
|
154
|
-
:query => 'qbw',
|
155
|
-
:filetype => 'QBW'
|
156
|
-
),&block)
|
157
|
-
end
|
158
|
-
|
159
|
-
def Dorks.emails_xls(options={},&block)
|
160
|
-
Dorks.search(options.merge(
|
161
|
-
:filetype => 'xls',
|
162
|
-
:inurl => '"email.xls"'
|
163
|
-
),&block)
|
164
|
-
end
|
165
|
-
|
166
|
-
def Dorks.index_for_finances_xls(options={},&block)
|
167
|
-
Dorks.search(options.merge(
|
168
|
-
:query => 'finances.xls',
|
169
|
-
:intitle => '"Index of"'
|
170
|
-
),&block)
|
171
|
-
end
|
172
|
-
|
173
|
-
def Dorks.download_file(options={},&block)
|
174
|
-
Dorks.search(options.merge(
|
175
|
-
:allinurl => ['download.php?', 'file']
|
176
|
-
),&block)
|
177
|
-
end
|
178
|
-
|
179
|
-
def Dorks.download_pdf(options={},&block)
|
180
|
-
Dorks.search(options.merge(
|
181
|
-
:allinurl => [
|
182
|
-
'download.php?',
|
183
|
-
'file',
|
184
|
-
'.pdf'
|
185
|
-
]
|
186
|
-
),&block)
|
187
|
-
end
|
188
|
-
|
189
|
-
def Dorks.sharepoint(options={},&block)
|
190
|
-
Dorks.search(options.merge(
|
191
|
-
:exact_phrase => 'all site content'
|
192
|
-
),&block)
|
193
|
-
end
|
194
|
-
end
|
195
|
-
end
|
196
|
-
end
|
24
|
+
require 'ronin/web/dorks/dorks'
|
25
|
+
require 'ronin/web/dorks/index'
|
26
|
+
require 'ronin/web/dorks/documents'
|
@@ -0,0 +1,65 @@
|
|
1
|
+
#
|
2
|
+
#--
|
3
|
+
# Ronin Dorks - A Ruby library for Ronin that provides support for various
|
4
|
+
# Google (tm) Dorks functionality.
|
5
|
+
#
|
6
|
+
# Copyright (c) 2008-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
7
|
+
#
|
8
|
+
# This program is free software; you can redistribute it and/or modify
|
9
|
+
# it under the terms of the GNU General Public License as published by
|
10
|
+
# the Free Software Foundation; either version 2 of the License, or
|
11
|
+
# (at your option) any later version.
|
12
|
+
#
|
13
|
+
# This program is distributed in the hope that it will be useful,
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
16
|
+
# GNU General Public License for more details.
|
17
|
+
#
|
18
|
+
# You should have received a copy of the GNU General Public License
|
19
|
+
# along with this program; if not, write to the Free Software
|
20
|
+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
21
|
+
#++
|
22
|
+
#
|
23
|
+
|
24
|
+
require 'ronin/web/dorks/dorks'
|
25
|
+
|
26
|
+
module Ronin
|
27
|
+
module Web
|
28
|
+
module Dorks
|
29
|
+
def Dorks.cps(options={},&block)
|
30
|
+
Dorks.search(options.merge(
|
31
|
+
:exact_phrase => 'Certificate Practice Statement',
|
32
|
+
:inurl => '(PDF | DOC)'
|
33
|
+
),&block)
|
34
|
+
end
|
35
|
+
|
36
|
+
def Dorks.vuln_report(options={},&block)
|
37
|
+
Dorks.search(options.merge(
|
38
|
+
:exact_phrase => 'Network Vulnerability Assessment'
|
39
|
+
),&block)
|
40
|
+
end
|
41
|
+
|
42
|
+
def Dorks.receipts(options={},&block)
|
43
|
+
Dorks.search(options.merge(
|
44
|
+
:exact_phrase => 'Thank you for your order',
|
45
|
+
:with_words => ['receipt'],
|
46
|
+
:filetype => :pdf
|
47
|
+
),&block)
|
48
|
+
end
|
49
|
+
|
50
|
+
def Dorks.qbw(options={},&block)
|
51
|
+
Dorks.search(options.merge(
|
52
|
+
:query => 'qbw',
|
53
|
+
:filetype => 'QBW'
|
54
|
+
),&block)
|
55
|
+
end
|
56
|
+
|
57
|
+
def Dorks.emails_xls(options={},&block)
|
58
|
+
Dorks.search(options.merge(
|
59
|
+
:filetype => 'xls',
|
60
|
+
:inurl => '"email.xls"'
|
61
|
+
),&block)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,230 @@
|
|
1
|
+
#
|
2
|
+
#--
|
3
|
+
# Ronin Dorks - A Ruby library for Ronin that provides support for various
|
4
|
+
# Google (tm) Dorks functionality.
|
5
|
+
#
|
6
|
+
# Copyright (c) 2008-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
7
|
+
#
|
8
|
+
# This program is free software; you can redistribute it and/or modify
|
9
|
+
# it under the terms of the GNU General Public License as published by
|
10
|
+
# the Free Software Foundation; either version 2 of the License, or
|
11
|
+
# (at your option) any later version.
|
12
|
+
#
|
13
|
+
# This program is distributed in the hope that it will be useful,
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
16
|
+
# GNU General Public License for more details.
|
17
|
+
#
|
18
|
+
# You should have received a copy of the GNU General Public License
|
19
|
+
# along with this program; if not, write to the Free Software
|
20
|
+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
21
|
+
#++
|
22
|
+
#
|
23
|
+
|
24
|
+
require 'ronin/web/web'
|
25
|
+
require 'ronin/extensions/uri'
|
26
|
+
|
27
|
+
require 'gscraper/search'
|
28
|
+
require 'digest/md5'
|
29
|
+
|
30
|
+
module Ronin
|
31
|
+
module Web
|
32
|
+
module Dorks
|
33
|
+
include GScraper
|
34
|
+
|
35
|
+
#
|
36
|
+
# Creates either a <tt>GScraper::Search::WebQuery</tt> or a
|
37
|
+
# <tt>GScraper::Search::AJAXQuery</tt> with the given _options_.
|
38
|
+
# If a _block_ is given, it will be passed the newly created
|
39
|
+
# query object.
|
40
|
+
#
|
41
|
+
# _options_ may contain the following keys:
|
42
|
+
# <tt>:ajax</tt>:: Specifies wether or not to create a
|
43
|
+
# <tt>GScraper::Search::AJAXQuery</tt>.
|
44
|
+
# <tt>:query</tt>:: The search query.
|
45
|
+
# <tt>:link</tt>:: Search for results which link to the specified
|
46
|
+
# URI.
|
47
|
+
# <tt>:related</tt>:: Search for results which relate to the
|
48
|
+
# specified URI.
|
49
|
+
# <tt>:info</tt>:: Return information about the specified URI.
|
50
|
+
# <tt>:site</tt>:: Limit results to the specified site.
|
51
|
+
# <tt>:filetype</tt>:: Limit results to those with the specified
|
52
|
+
# file-type.
|
53
|
+
# <tt>:allintitle</tt>:: Search for results with all of the keywords
|
54
|
+
# appearing in the title.
|
55
|
+
# <tt>:intitle</tt>:: Search for results with the keyword appearing
|
56
|
+
# in the title.
|
57
|
+
# <tt>:allintext</tt>:: Search for results with all of the keywords
|
58
|
+
# appearing in the text.
|
59
|
+
# <tt>:intext</tt>:: Search for results with the keyword appearing
|
60
|
+
# in the text.
|
61
|
+
# <tt>:allinanchor</tt>:: Search for results with all of the keywords
|
62
|
+
# appearing in the text of links.
|
63
|
+
# <tt>:inanchor</tt>:: Search for results with the keyword appearing
|
64
|
+
# in the text of links.
|
65
|
+
# <tt>:exact_phrase</tt>:: Search for results containing the specified
|
66
|
+
# exact phrase.
|
67
|
+
# <tt>:with_words</tt>:: Search for results containing all of the
|
68
|
+
# specified words.
|
69
|
+
# <tt>:without_words</tt>:: Search for results not containing any of
|
70
|
+
# the specified words.
|
71
|
+
# <tt>:numeric_range</tt>:: Search for results contain numbers that
|
72
|
+
# fall within the specified Range.
|
73
|
+
# <tt>:define</tt>:: Search for results containing the definition of
|
74
|
+
# the specified keyword.
|
75
|
+
#
|
76
|
+
# If the <tt>:ajax</tt> option is not specified, then _options_
|
77
|
+
# may contain the following additional keys:
|
78
|
+
# <tt>:results_per_page</tt>:: Specifies the number of results
|
79
|
+
# for each page.
|
80
|
+
# <tt>:language</tt>:: Search for results in the specified language.
|
81
|
+
# <tt>:region</tt>:: Search for results from the specified region.
|
82
|
+
# <tt>:within_past_day</tt>:: Search for results that were created
|
83
|
+
# within the past day.
|
84
|
+
# <tt>:within_past_week</tt>:: Search for results that were created
|
85
|
+
# within the past week.
|
86
|
+
# <tt>:within_past_month</tt>:: Search for results that were created
|
87
|
+
# within the past month.
|
88
|
+
# <tt>:within_past_year</tt>:: Search for results that were created
|
89
|
+
# within the past year.
|
90
|
+
# <tt>:occurrs_within</tt>::
|
91
|
+
# <tt>:rights</tt>:: Search for results licensed under the specified
|
92
|
+
# license.
|
93
|
+
# <tt>:filtered</tt>:: Specifies whether or not to use SafeSearch.
|
94
|
+
# Defaults to +false+, if not specified.
|
95
|
+
#
|
96
|
+
# If the <tt>:ajax</tt> option is specified, then _options_
|
97
|
+
# may contain the following additional keys:
|
98
|
+
# <tt>:language</tt>:: The search language. Defaults to <tt>:en</tt>.
|
99
|
+
# <tt>:sig</tt>:: The search signature. Defaults to
|
100
|
+
# <tt>582c1116317355adf613a6a843f19ece</tt>.
|
101
|
+
# <tt>:key</tt>:: The search key. Defaults to <tt>:notsupplied</tt>.
|
102
|
+
# <tt>:version</tt>:: The desired API version. Defaults to
|
103
|
+
# <tt>1.0</tt>.
|
104
|
+
#
|
105
|
+
def Dorks.search(options={},&block)
|
106
|
+
if options[:ajax] == true
|
107
|
+
return Search.ajax_query(options,&block)
|
108
|
+
else
|
109
|
+
return Search.query(options,&block)
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
def Dorks.intext(pattern,options={},&block)
|
114
|
+
Dorks.search(options.merge(:intext => pattern),&block)
|
115
|
+
end
|
116
|
+
|
117
|
+
def Dorks.allintext(pattern,options={},&block)
|
118
|
+
Dorks.search(options.merge(:allintext => pattern),&block)
|
119
|
+
end
|
120
|
+
|
121
|
+
def Dorks.string_intext(string,options={},&block)
|
122
|
+
Dorks.intext("'#{string}'",options,&block)
|
123
|
+
end
|
124
|
+
|
125
|
+
def Dorks.all_strings_intext(strings,options={},&block)
|
126
|
+
Dorks.search(options.merge(:allintext => strings.map { |string|
|
127
|
+
"'#{string}'"
|
128
|
+
}),&block)
|
129
|
+
end
|
130
|
+
|
131
|
+
def Dorks.intitle(pattern,options={},&block)
|
132
|
+
Dorks.search(options.merge(:intitle => pattern),&block)
|
133
|
+
end
|
134
|
+
|
135
|
+
def Dorks.string_intitle(string,options={},&block)
|
136
|
+
Dorks.intitle("'#{string}'",options,&block)
|
137
|
+
end
|
138
|
+
|
139
|
+
def Dorks.allintitle(patterns,options={},&block)
|
140
|
+
Dorks.search(options.merge(:allintitle => patterns),&block)
|
141
|
+
end
|
142
|
+
|
143
|
+
def Dorks.all_strings_inurl(strings,options={},&block)
|
144
|
+
Dorks.search(options.merge(:allintitle => strings.map { |string|
|
145
|
+
"'#{string}'"
|
146
|
+
}),&block)
|
147
|
+
end
|
148
|
+
|
149
|
+
def Dorks.inurl(pattern,options={},&block)
|
150
|
+
Dorks.search(options.merge(:inurl => pattern),&block)
|
151
|
+
end
|
152
|
+
|
153
|
+
def Dorks.string_inurl(string,options={},&block)
|
154
|
+
Dorks.inurl("'#{string}'",options,&block)
|
155
|
+
end
|
156
|
+
|
157
|
+
def Dorks.allinurl(patterns,options={},&block)
|
158
|
+
Dorks.search(options.merge(:allinurl => patterns),&block)
|
159
|
+
end
|
160
|
+
|
161
|
+
def Dorks.all_strings_inurl(strings,options={},&block)
|
162
|
+
Dorks.search(options.merge(:allinurl => strings.map { |string|
|
163
|
+
"'#{string}'"
|
164
|
+
}),&block)
|
165
|
+
end
|
166
|
+
|
167
|
+
def Dorks.sql_dump(options={},&block)
|
168
|
+
query = []
|
169
|
+
|
170
|
+
query << "Host: #{options[:host]}" if options[:host]
|
171
|
+
query << "Database: #{options[:database]}" if options[:database]
|
172
|
+
query << options[:version] if options[:version]
|
173
|
+
|
174
|
+
query << "\"#{options[:sql]}\"" if options[:sql]
|
175
|
+
|
176
|
+
if options[:password]
|
177
|
+
query << Digest::MD5.hexdigest(options[:password].to_s)
|
178
|
+
end
|
179
|
+
|
180
|
+
return Dorks.search(options.merge(
|
181
|
+
:query => query,
|
182
|
+
:exact_phrase => '"SQL Dump"',
|
183
|
+
:filetype => :sql
|
184
|
+
),&block)
|
185
|
+
end
|
186
|
+
|
187
|
+
def Dorks.sql_admin_dump(options={},&block)
|
188
|
+
Dorks.sql_dump(options.merge(:password => 'admin'),&block)
|
189
|
+
end
|
190
|
+
|
191
|
+
def Dorks.robots_txt(options={},&block)
|
192
|
+
Dorks.search(options.merge(
|
193
|
+
:exact_phrase => 'robots.txt',
|
194
|
+
:with_words => ['Disallow'],
|
195
|
+
:filetype => :txt
|
196
|
+
),&block)
|
197
|
+
end
|
198
|
+
|
199
|
+
def Dorks.php_my_admin(options={},&block)
|
200
|
+
Dorks.search(options.merge(
|
201
|
+
:with_words => ['phpMyAdmin'],
|
202
|
+
:exact_phrase => 'running on',
|
203
|
+
:inurl => 'main.php'
|
204
|
+
),&block)
|
205
|
+
end
|
206
|
+
|
207
|
+
def Dorks.download_file(options={},&block)
|
208
|
+
Dorks.search(options.merge(
|
209
|
+
:allinurl => ['download.php?', 'file']
|
210
|
+
),&block)
|
211
|
+
end
|
212
|
+
|
213
|
+
def Dorks.download_pdf(options={},&block)
|
214
|
+
Dorks.search(options.merge(
|
215
|
+
:allinurl => [
|
216
|
+
'download.php?',
|
217
|
+
'file',
|
218
|
+
'.pdf'
|
219
|
+
]
|
220
|
+
),&block)
|
221
|
+
end
|
222
|
+
|
223
|
+
def Dorks.sharepoint(options={},&block)
|
224
|
+
Dorks.search(options.merge(
|
225
|
+
:exact_phrase => 'all site content'
|
226
|
+
),&block)
|
227
|
+
end
|
228
|
+
end
|
229
|
+
end
|
230
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
#
|
2
|
+
#--
|
3
|
+
# Ronin Dorks - A Ruby library for Ronin that provides support for various
|
4
|
+
# Google (tm) Dorks functionality.
|
5
|
+
#
|
6
|
+
# Copyright (c) 2008-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
7
|
+
#
|
8
|
+
# This program is free software; you can redistribute it and/or modify
|
9
|
+
# it under the terms of the GNU General Public License as published by
|
10
|
+
# the Free Software Foundation; either version 2 of the License, or
|
11
|
+
# (at your option) any later version.
|
12
|
+
#
|
13
|
+
# This program is distributed in the hope that it will be useful,
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
16
|
+
# GNU General Public License for more details.
|
17
|
+
#
|
18
|
+
# You should have received a copy of the GNU General Public License
|
19
|
+
# along with this program; if not, write to the Free Software
|
20
|
+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
21
|
+
#++
|
22
|
+
#
|
23
|
+
|
24
|
+
require 'ronin/web/dorks/dorks'
|
25
|
+
|
26
|
+
module Ronin
|
27
|
+
module Web
|
28
|
+
module Dorks
|
29
|
+
def Dorks.index_of(path=nil,options={},&block)
|
30
|
+
if path
|
31
|
+
options = options.merge(:intitle => "\"Index of #{path}\"")
|
32
|
+
else
|
33
|
+
options = options.merge(:intitle => '"Index of"')
|
34
|
+
end
|
35
|
+
|
36
|
+
return Dorks.search(options,&block)
|
37
|
+
end
|
38
|
+
|
39
|
+
def Dorks.index_of_cgi_bin(options={},&block)
|
40
|
+
Dorks.index_of('/cgi-bin',&block)
|
41
|
+
end
|
42
|
+
|
43
|
+
def Dorks.index_with_file(name,options={},&block)
|
44
|
+
Dorks.index_of(options.merge(:intext => "\"#{name}\""),&block)
|
45
|
+
end
|
46
|
+
|
47
|
+
def Dorks.index_with_sql(options={},&block)
|
48
|
+
Dorks.index_of(options.merge(:intext => '".sql"'),&block)
|
49
|
+
end
|
50
|
+
|
51
|
+
def Dorks.index_for_finances_xls(options={},&block)
|
52
|
+
Dorks.search(options.merge(
|
53
|
+
:query => 'finances.xls',
|
54
|
+
:intitle => '"Index of"'
|
55
|
+
),&block)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,36 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ronin-dorks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Postmodern
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
|
-
cert_chain:
|
10
|
+
cert_chain:
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIDQDCCAiigAwIBAgIBADANBgkqhkiG9w0BAQUFADBGMRgwFgYDVQQDDA9wb3N0
|
14
|
+
bW9kZXJuLm1vZDMxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixk
|
15
|
+
ARkWA2NvbTAeFw0wOTA2MDMwNDU5MDNaFw0xMDA2MDMwNDU5MDNaMEYxGDAWBgNV
|
16
|
+
BAMMD3Bvc3Rtb2Rlcm4ubW9kMzEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYK
|
17
|
+
CZImiZPyLGQBGRYDY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
|
18
|
+
1wvANkTDHFgVih5XLjuTwTZjgBq1lBGybXJiH6Id1lY2JOMqM5FB1DDHVvvij94i
|
19
|
+
mJabN0zkzu6VKWC70y0IwOxY7CPokr0eFdK/D0y7mCq1P8QITv76i2YqAl0eYqIt
|
20
|
+
W+IhIkANQ7E6uMZIZcdnfadC6lPAtlKkqtd9crvRbFgr6e3kyflmohbRnTEJHoRd
|
21
|
+
7SHHsybE6DSn7oTDs6XBTNrNIn5VfZA0z01eeos/+zBm1zKJOK2+/7xtLLDuDU9G
|
22
|
+
+Rd+ltUBbvxUrMNZmDG29pnmN2xTRH+Q8HxD2AxlvM5SRpK6OeZaHV7PaCCAVZ4L
|
23
|
+
T9BFl1sfMvRlABeGEkSyuQIDAQABozkwNzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIE
|
24
|
+
sDAdBgNVHQ4EFgQUKwsd+PqEYmBvyaTyoL+uRuk+PhEwDQYJKoZIhvcNAQEFBQAD
|
25
|
+
ggEBAB4TvHsrlbcXcKg6gX5BIb9tI+zGkpzo0Z7jnxMEcNO7NGGwmzafDBI/xZYv
|
26
|
+
xkRH3/HXbGGYDOi6Q6gWt5GujSx0bOImDtYTJTH8jnzN92HzEK5WdScm1QpZKF1e
|
27
|
+
cezArMbxbSPaosxTCtG6LQTkE28lFQsmFZ5xzouugS4h5+LVJiVMmiP+l3EfkjFa
|
28
|
+
GOURU+rNEMPWo8MCWivGW7jes6BMzWHcW7DQ0scNVmIcCIgdyMmpscuAEOSeghy9
|
29
|
+
/fFs57Ey2OXBL55nDOyvN/ZQ2Vab05UH4t+GCxjAPeirzL/29FBtePT6VD44c38j
|
30
|
+
pDj+ws7QjtH/Qcrr1l9jfN0ehDs=
|
31
|
+
-----END CERTIFICATE-----
|
11
32
|
|
12
|
-
date: 2009-
|
33
|
+
date: 2009-07-08 00:00:00 -07:00
|
13
34
|
default_executable:
|
14
35
|
dependencies:
|
15
36
|
- !ruby/object:Gem::Dependency
|
@@ -20,7 +41,7 @@ dependencies:
|
|
20
41
|
requirements:
|
21
42
|
- - ">="
|
22
43
|
- !ruby/object:Gem::Version
|
23
|
-
version: 0.2.
|
44
|
+
version: 0.2.4
|
24
45
|
version:
|
25
46
|
- !ruby/object:Gem::Dependency
|
26
47
|
name: ronin-web
|
@@ -30,7 +51,7 @@ dependencies:
|
|
30
51
|
requirements:
|
31
52
|
- - ">="
|
32
53
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.1.
|
54
|
+
version: 0.1.2
|
34
55
|
version:
|
35
56
|
- !ruby/object:Gem::Dependency
|
36
57
|
name: gscraper
|
@@ -50,9 +71,15 @@ dependencies:
|
|
50
71
|
requirements:
|
51
72
|
- - ">="
|
52
73
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
74
|
+
version: 2.3.2
|
54
75
|
version:
|
55
|
-
description:
|
76
|
+
description: |-
|
77
|
+
Ronin Dorks is a Ruby library for Ronin that provides support for various
|
78
|
+
Google (tm) Dorks functionality.
|
79
|
+
|
80
|
+
Ronin is a Ruby platform designed for information security and data
|
81
|
+
exploration tasks. Ronin allows for the rapid development and distribution
|
82
|
+
of code over many of the common Source-Code-Management (SCM) systems.
|
56
83
|
email:
|
57
84
|
- postmodern.mod3@gmail.com
|
58
85
|
executables:
|
@@ -72,11 +99,16 @@ files:
|
|
72
99
|
- lib/ronin/dorks.rb
|
73
100
|
- lib/ronin/dorks/version.rb
|
74
101
|
- lib/ronin/web/dorks.rb
|
102
|
+
- lib/ronin/web/dorks/dorks.rb
|
103
|
+
- lib/ronin/web/dorks/index.rb
|
104
|
+
- lib/ronin/web/dorks/documents.rb
|
75
105
|
- tasks/spec.rb
|
76
106
|
- spec/spec_helper.rb
|
77
107
|
- spec/dorks_spec.rb
|
78
108
|
has_rdoc: true
|
79
109
|
homepage: http://ronin.rubyforge.org/dorks/
|
110
|
+
licenses: []
|
111
|
+
|
80
112
|
post_install_message:
|
81
113
|
rdoc_options:
|
82
114
|
- --main
|
@@ -98,9 +130,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
98
130
|
requirements: []
|
99
131
|
|
100
132
|
rubyforge_project: ronin
|
101
|
-
rubygems_version: 1.3.
|
133
|
+
rubygems_version: 1.3.4
|
102
134
|
signing_key:
|
103
|
-
specification_version:
|
135
|
+
specification_version: 3
|
104
136
|
summary: Ronin Dorks is a Ruby library for Ronin that provides support for various Google (tm) Dorks functionality
|
105
137
|
test_files: []
|
106
138
|
|
metadata.gz.sig
ADDED