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.
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: []