dir-rb 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +7 -0
  2. data/bin/dir-rb +4 -0
  3. data/lib/dir-rb.rb +35 -0
  4. data/lib/scanner.rb +53 -0
  5. 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
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'dir-rb'
4
+ require 'scanner'
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: []