File tree Expand file tree Collapse file tree 2 files changed +28
-1
lines changed
lib/ronin/support/network Expand file tree Collapse file tree 2 files changed +28
-1
lines changed Original file line number Diff line number Diff line change 17
17
#
18
18
19
19
require 'ronin/support/network/http'
20
+ require 'ronin/support/network/defang'
20
21
21
22
require 'addressable/uri'
22
23
require 'uri/query_params/core_ext/addressable/uri'
@@ -37,6 +38,21 @@ module Network
37
38
#
38
39
class URL < Addressable ::URI
39
40
41
+ #
42
+ # Defangs the URL.
43
+ #
44
+ # @return [String]
45
+ # The defanged URL.
46
+ #
47
+ # @example
48
+ # url = URL.new("https://www.example.com:8080/foo?q=1")
49
+ # url.defang
50
+ # # => "hxxps[://]www[.]example[.]com[:]8080/foo?q=1"
51
+ #
52
+ def defang
53
+ Defang . defang_url ( self )
54
+ end
55
+
40
56
#
41
57
# Returns the Status Code of the HTTP Response for the URL.
42
58
#
Original file line number Diff line number Diff line change 12
12
expect ( described_class ) . to include ( URI ::QueryParams ::Mixin )
13
13
end
14
14
15
- subject { described_class . parse ( 'https://example.com/' ) }
15
+ let ( :url ) { 'https://example.com/' }
16
+
17
+ subject { described_class . parse ( url ) }
18
+
19
+ describe "#defang" do
20
+ let ( :url ) { 'http://www.example.com/foo?q=1' }
21
+ let ( :defanged ) { 'hxxp[://]www[.]example[.]com/foo?q=1' }
22
+
23
+ it "must return the defanged URL" do
24
+ expect ( subject . defang ) . to eq ( defanged )
25
+ end
26
+ end
16
27
17
28
describe "#status" do
18
29
context "integration" , :network do
You can’t perform that action at this time.
0 commit comments