This issue starts appearing after adding resolv-replace
in the environment.
Please see the backtrace, failure is in original_resolv_initialize call in constructor.
2024-05-21 17:54:35 - Net::OpenTimeout - execution expired:
/Users/psen/.rbenv/versions/2.6.10/lib/ruby/2.6.0/resolv-replace.rb:25:in `initialize'
/Users/psen/.rbenv/versions/2.6.10/lib/ruby/2.6.0/resolv-replace.rb:25:in `initialize'
/Users/psen/.rbenv/versions/2.6.10/lib/ruby/2.6.0/net/http.rb:947:in `open'
/Users/psen/.rbenv/versions/2.6.10/lib/ruby/2.6.0/net/http.rb:947:in `block in connect'
/Users/psen/.rbenv/versions/2.6.10/lib/ruby/2.6.0/timeout.rb:103:in `timeout'
/Users/psen/.rbenv/versions/2.6.10/lib/ruby/2.6.0/net/http.rb:945:in `connect'
/Users/psen/.rbenv/versions/2.6.10/lib/ruby/2.6.0/net/http.rb:930:in `do_start'
/Users/psen/.rbenv/versions/2.6.10/lib/ruby/2.6.0/net/http.rb:919:in `start'
/Users/psen/.rbenv/versions/2.6.10/lib/ruby/2.6.0/net/http.rb:1470:in `request'
Sample code to test with:
require 'net/http'
require 'resolv-replace'
get "/ssrfpasscase" do
if params[:input] != nil
url = "http://www."+params[:input]+".com"
uri = URI.parse("#{url}")
puts uri.to_s
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request)
#@output=response.to_s
response.code # => 301
response.body # => The body (HTML, XML, blob, whatever)
# Headers are lowercased
response["cache-control"] # => public, max-age=2592000
# Listing all headers
@output=""
response.each_header { |h| do_something(h, response[h]) }
response.each_header { |h| @output=@output+"#{h.to_s}:#{response[h].to_s}"+"n" }
end
erb :output
end