dir-rb 0.1.0
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 +7 -0
- data/bin/dir-rb +4 -0
- data/lib/dir-rb.rb +35 -0
- data/lib/scanner.rb +53 -0
- metadata +109 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: '0269f9bb031af6276d1fe4173a6f37c23a0eb7aa1cc6b207beeacc85e14f1a4e'
|
4
|
+
data.tar.gz: 83a8ee31e5424e640f48763beafe3b7aaada8f6077d79d3603513a797d7e59dd
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 174465922c07dd20e8b6c1c118caee1f6b2549705fb7109e6bc960990fc9cb62cd67bfddeec25e8cf0e26bb27fe1a671c30f4c4a41ff72048250f608753667b6
|
7
|
+
data.tar.gz: 7510648d4867f3997db27b2e78930c02218e316a0c18ab20b887c72a9d190491266a43c7481d37115d60192179a281e970428685bbdb362fd02c2df373a3032b
|
data/bin/dir-rb
ADDED
data/lib/dir-rb.rb
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
require_relative 'scanner.rb'
|
2
|
+
require 'optparse'
|
3
|
+
|
4
|
+
options = {}
|
5
|
+
OptionParser.new do |opts|
|
6
|
+
opts.banner = "Usage: ?"
|
7
|
+
|
8
|
+
# NOTE: Address
|
9
|
+
opts.on("-a", "--address NAME", "Site") do |site_address|
|
10
|
+
puts "==================== Wordlist ====================\n"
|
11
|
+
print "Wordlist (Empty = default): "
|
12
|
+
wordlist = gets.chomp
|
13
|
+
p wordlist
|
14
|
+
unless wordlist != ""
|
15
|
+
wordlist = '/usr/share/set/src/fasttrack/wordlist.txt'
|
16
|
+
else
|
17
|
+
wordlist
|
18
|
+
end
|
19
|
+
|
20
|
+
puts "\n========== Target URL: #{site_address} ==========\n"
|
21
|
+
puts Time.now.asctime
|
22
|
+
target = Scanner.new("#{site_address}")
|
23
|
+
code = target.test
|
24
|
+
puts "\n========= Scanning URL: #{site_address} =========\n"
|
25
|
+
target.scan(code, wordlist)
|
26
|
+
end
|
27
|
+
|
28
|
+
# NOTE: Help option
|
29
|
+
opts.on('-h', '--help', 'Print this help') do
|
30
|
+
puts opts
|
31
|
+
exit
|
32
|
+
end
|
33
|
+
end.parse!
|
34
|
+
|
35
|
+
options
|
data/lib/scanner.rb
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'httparty'
|
2
|
+
require 'colorize'
|
3
|
+
|
4
|
+
class Scanner
|
5
|
+
def initialize(target_site)
|
6
|
+
@cust_target_site = target_site
|
7
|
+
end
|
8
|
+
|
9
|
+
def scan(status_code, file_name)
|
10
|
+
item_found = []
|
11
|
+
|
12
|
+
if status_code == 200
|
13
|
+
pages = File.readlines(file_name)
|
14
|
+
for i in pages do
|
15
|
+
i = i.split("\n")
|
16
|
+
i = i[0]
|
17
|
+
address = HTTParty.get("#{@cust_target_site + i}", format: :plain)
|
18
|
+
|
19
|
+
if address.code != 200
|
20
|
+
print '[*] Testing: ' + "#{@cust_target_site + i}\r".colorize(:blue)
|
21
|
+
else
|
22
|
+
puts '[+] Found: ' + "#{@cust_target_site + i}".colorize(:green)
|
23
|
+
item_found << i
|
24
|
+
end
|
25
|
+
end
|
26
|
+
else
|
27
|
+
puts "[-] Error: Scan canceled\n" + 'HTTP status code: ' + "#{status_code}".colorize(:red)
|
28
|
+
end
|
29
|
+
|
30
|
+
puts "\n===============================================\n"
|
31
|
+
unless item_found.length != 0
|
32
|
+
puts '[-] Items found: ' + "0".colorize(:red)
|
33
|
+
else
|
34
|
+
print "[+] Items found: " + "#{item_found.length}".colorize(:green)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def test
|
39
|
+
puts "Your input address: #{@cust_target_site}"
|
40
|
+
|
41
|
+
unless @cust_target_site[-1] == '/'
|
42
|
+
@cust_target_site << '/'
|
43
|
+
end
|
44
|
+
test = HTTParty.get(@cust_target_site, format: :plain)
|
45
|
+
|
46
|
+
case test.code
|
47
|
+
in 200 then puts 'HTTP status code: ' + "#{test.code}".colorize(:green)
|
48
|
+
else puts 'HTTP status code: ' + "#{test.code}".colorize(:red)
|
49
|
+
end
|
50
|
+
|
51
|
+
return test.code
|
52
|
+
end
|
53
|
+
end
|
metadata
ADDED
@@ -0,0 +1,109 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: dir-rb
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Meisam Heidari
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2024-03-02 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: net-ping
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.0'
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 2.0.8
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '2.0'
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 2.0.8
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: optparse
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: 0.2.0
|
40
|
+
type: :runtime
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 0.2.0
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: colorize
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 0.8.1
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: 0.8.1
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: httparty
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - "~>"
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: 0.21.0
|
68
|
+
type: :runtime
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - "~>"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: 0.21.0
|
75
|
+
description: The dir-rb command in Kali Linux is a web content scanner used for searching
|
76
|
+
existing or hidden web objects on web servers.
|
77
|
+
email: mr.fox@iran.ir
|
78
|
+
executables:
|
79
|
+
- dir-rb
|
80
|
+
extensions: []
|
81
|
+
extra_rdoc_files: []
|
82
|
+
files:
|
83
|
+
- bin/dir-rb
|
84
|
+
- lib/dir-rb.rb
|
85
|
+
- lib/scanner.rb
|
86
|
+
homepage: https://github.com/Mr-Fox-h/dir-rb
|
87
|
+
licenses:
|
88
|
+
- MIT
|
89
|
+
metadata: {}
|
90
|
+
post_install_message:
|
91
|
+
rdoc_options: []
|
92
|
+
require_paths:
|
93
|
+
- lib
|
94
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
95
|
+
requirements:
|
96
|
+
- - ">="
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: 2.7.0
|
99
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 1.8.11
|
104
|
+
requirements: []
|
105
|
+
rubygems_version: 3.4.20
|
106
|
+
signing_key:
|
107
|
+
specification_version: 4
|
108
|
+
summary: Scan websites with Ruby!
|
109
|
+
test_files: []
|