### Install Itsi on Windows (WSL) Source: https://github.com/wouterken/itsi/blob/main/docs/content/getting_started/_index.md Instructions for installing Itsi on Windows via the Windows Subsystem for Linux (WSL). Users should follow the Linux installation steps within their chosen WSL distribution. ```powershell # Follow Linux instructions within WSL # Example for Ubuntu/Debian: # apt-get install build-essential libclang-dev curl # gem install itsi ``` -------------------------------- ### Install Itsi on Ubuntu/Debian Source: https://github.com/wouterken/itsi/blob/main/docs/content/getting_started/_index.md Installs Itsi and its scheduler on Ubuntu or Debian systems. Requires build tools and `clang`. The `gem install itsi` command is used for Ruby versions 3.0 and above, while `gem install itsi-server` is for Ruby 2.7. ```bash apt-get install build-essential libclang-dev curl ``` ```bash gem install itsi ``` ```bash gem install itsi-server ``` -------------------------------- ### Install Itsi on macOS Source: https://github.com/wouterken/itsi/blob/main/docs/content/getting_started/_index.md Installs Itsi and its scheduler on macOS. The `gem install itsi` command is used for Ruby versions 3.0 and above, while `gem install itsi-server` is for Ruby 2.7. ```bash gem install itsi ``` ```bash gem install itsi-server ``` -------------------------------- ### Install Itsi on FreeBSD Source: https://github.com/wouterken/itsi/blob/main/docs/content/getting_started/_index.md Installs Itsi and its scheduler on FreeBSD. Requires specific build tools like `gmake` and `llvm`. The `MAKE=gmake gem install itsi` command is used for Ruby versions 3.0 and above, while `MAKE=gmake gem install itsi-server` is for Ruby 2.7. ```bash pkg install gmake cmake curl llvm ``` ```bash MAKE=gmake gem install itsi ``` ```bash MAKE=gmake gem install itsi-server ``` -------------------------------- ### Install Itsi on Arch Linux/Manjaro Source: https://github.com/wouterken/itsi/blob/main/docs/content/getting_started/_index.md Installs Itsi and its scheduler on Arch Linux or Manjaro. Requires base development packages and `clang`. The `gem install itsi` command is used for Ruby versions 3.0 and above, while `gem install itsi-server` is for Ruby 2.7. ```bash pacman -S base-devel clang curl ``` ```bash gem install itsi ``` ```bash gem install itsi-server ``` -------------------------------- ### Install Itsi on Alpine Linux Source: https://github.com/wouterken/itsi/blob/main/docs/content/getting_started/_index.md Installs Itsi and its scheduler on Alpine Linux. Requires build tools and `clang`. The `gem install itsi` command is used for Ruby versions 3.0 and above, while `gem install itsi-server` is for Ruby 2.7. ```bash apk add build-base clang curl ``` ```bash gem install itsi ``` ```bash gem install itsi-server ``` -------------------------------- ### Install Itsi on Fedora/RHEL/Rocky/AlmaLinux Source: https://github.com/wouterken/itsi/blob/main/docs/content/getting_started/_index.md Installs Itsi and its scheduler on Fedora, RHEL, Rocky Linux, or AlmaLinux. Requires development tools and `clang`. The `gem install itsi` command is used for Ruby versions 3.0 and above, while `gem install itsi-server` is for Ruby 2.7. ```bash dnf groupinstall "Development Tools" dnf install clang curl ``` ```bash gem install itsi ``` ```bash gem install itsi-server ``` -------------------------------- ### Interactive Mode Program Notice Source: https://github.com/wouterken/itsi/blob/main/LICENSE.txt This snippet provides example text for a program's output when it starts in interactive mode. It informs the user about the program's warranty status and redistribution terms, referencing hypothetical commands for more details. ```text Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. ``` -------------------------------- ### Itsi.rb Configuration Example Source: https://github.com/wouterken/itsi/blob/main/gems/server/lib/itsi/server/config/options/_index.md An example Itsi.rb configuration file demonstrating settings for workers, threads, authentication, auto-reloading, and location-based routing with rate limiting and rackup files. ```ruby workers 2 threads 2 fiber_scheduler true auth_basic realm: "Restricted Area", credentials_file: "./credentials.txt" auto_reload_config! # Auto-reload the server configuration each time it changes. location "/app*" do rate_limit requests: 3, seconds: 5 rackup_file "config.ru" end location "/inline*" do get "/" do |req| req.ok "Hello, World!" end end ``` -------------------------------- ### Run Slow Service Source: https://github.com/wouterken/itsi/blob/main/examples/hybrid_scheduler_mode/README.md Instructions to navigate to the slow_service directory and start the service using the 'itsi' command. ```bash cd ./slow_service itsi ``` -------------------------------- ### Run Hybrid Scheduler Mode Example Source: https://github.com/wouterken/itsi/blob/main/examples/hybrid_scheduler_mode/README.md Instructions to run the hybrid scheduler mode example in a separate terminal tab using the 'itsi' command. ```bash itsi ``` -------------------------------- ### ASP File Examples Source: https://github.com/wouterken/itsi/blob/main/gems/server/lib/itsi/server/config/known_paths/cgi/CGI_XPlatform.txt Examples of Active Server Pages (.asp) files found in the project, some with query parameters indicating potential web functionality or security probes. ```asp iishelp/iis/htm/tutorial/redirect.asp ``` ```asp iishelp/iis/misc/default.asp ``` ```asp iissamples/exair/howitworks/Code.asp ``` ```asp iissamples/exair/howitworks/Codebrw1.asp ``` ```asp iissamples/exair/search/advsearch.asp ``` ```asp iissamples/exair/search/query.asp ``` ```asp iissamples/exair/search/search.asp ``` ```asp iissamples/issamples/SQLQHit.asp ``` ```asp iissamples/issamples/codebrws.asp ``` ```asp iissamples/issamples/oop/qfullhit.htw?CiWebHitsFile=/iissamples/issamples/oop/qfullhit.htw&CiRestriction=none&CiHiliteType=Full ``` ```asp iissamples/issamples/oop/qsumrhit.htw?CiWebHitsFile=/iissamples/issamples/oop/qsumrhit.htw&CiRestriction=none&CiHiliteType=Full ``` ```asp iissamples/issamples/sqlqhit.asp ``` ```asp iissamples/sdk/asp/docs/CodeBrws.asp?Source=/IISSAMPLES/%c0%ae%c0%ae/%c0%ae%c0%ae/bogus_directory/nonexistent.asp ``` ```asp iissamples/sdk/asp/docs/CodeBrws.asp?Source=/IISSAMPLES/%c0%ae%c0%ae/default.asp ``` ```asp iissamples/sdk/asp/docs/codebrw2.asp ``` ```asp iissamples/sdk/asp/docs/codebrws.asp ``` -------------------------------- ### API Request Example (GET /) Source: https://github.com/wouterken/itsi/blob/main/gems/server/lib/itsi/server/config/middleware/endpoint/controller.md Demonstrates a simple GET request to the root endpoint `/` using `curl`, showing the expected plain text response. ```bash curl http://0.0.0.0:3000/ I'm home ``` -------------------------------- ### Install Itsi Scheduler (Linux/Mac) Source: https://github.com/wouterken/itsi/blob/main/docs/content/itsi_scheduler/_index.md Instructions for installing the Itsi Scheduler gem using the `gem` command. Includes prerequisites for Linux and notes for Windows users. ```bash apt-get install build-essential libclang-dev gem install itsi-scheduler ``` ```bash gem install itsi-scheduler ``` -------------------------------- ### Ruby UserController Implementation Source: https://github.com/wouterken/itsi/blob/main/gems/server/lib/itsi/server/config/middleware/endpoint/controller.md Provides an example of a `UserController` class in Ruby. It includes an `initialize` method for one-time setup and a `create` method that handles request processing, parameter parsing using schemas, user creation, and formatted response generation. ```ruby class UserController def initialize() # One time controller set-up here end def create(request, params: UserInputSchema, response_format: UserResponseSchema) user = User.create!(params) request.created \ json: { id: user.id, email: user.email, full_name: "#{user.first_name} #{user.last_name}", created_at: user.created_at.iso8601, address: { street: user.address.street, city: user.address.city, postcode: user.address.postcode } }, as: response_format end end # Dummy data model. Address = Struct.new(:street, :city, :postcode, :country, keyword_init: true) class User < Struct.new( :id, :email, :first_name, :last_name, :created_at, :address, :age, :active, :roles, keyword_init: true) def self.create!(params) self.new( id: Random.rand(1000000...99999999), address: Address.new(params.delete :address), **params, created_at: Time.now ) end end ``` -------------------------------- ### Web Application Examples Source: https://github.com/wouterken/itsi/blob/main/gems/server/lib/itsi/server/config/known_paths/webservers-appservers/Websphere.txt Paths indicating example applications or components within the WebSphere Samples directory. These often demonstrate specific features or functionalities of WebSphere. ```apidoc Web Application Examples: /WebSphereSamples/SingleSamples/AccountAndTransfer/create.html - Description: HTML file for creating accounts and performing transfers in a sample application. /WebSphereSamples/SingleSamples/Increment/increment.html - Description: HTML file for an incrementing counter sample. /WebSphereSamples/YourCo/main.html - Description: Main HTML page for the 'YourCo' sample application. /samples/activitysessions - Description: Directory for samples related to activity sessions. /webapp/examples/ErrorServlet - Description: Example servlet demonstrating error handling. /webapp/examples/HelloPervasive - Description: Example demonstrating pervasive computing concepts. /webapp/examples/HitCount - Description: Example servlet for counting hits. /webapp/examples/SourceCodeViewer - Description: Utility to view source code of examples. /webapp/examples/login.html - Description: Example login page. /webapp/examples/ping - Description: Example servlet for checking server availability. /webapp/examples/showCfg - Description: Example servlet to display configuration. /webapp/examples/simple.jsp - Description: A simple JSP example. /webapp/examples/verify - Description: Example servlet for verification processes. ``` -------------------------------- ### PHP File Examples Source: https://github.com/wouterken/itsi/blob/main/gems/server/lib/itsi/server/config/known_paths/cgi/CGI_XPlatform.txt Examples of PHP (.php, .php3) files, including instances with potential cross-site scripting (XSS) payloads in query parameters. ```php imp/horde/test.php ``` ```php imp/mailbox.php3?actionID=6&server=x&imapuser=x';somesql+--&pass=x ``` ```php inc/common.load.php ``` ```php inc/config.php ``` ```php inc/dbase.php ``` ```php inc/sendmail.inc ``` ```php include.php?path=contact.php&contact_email="><script>alert(document.cookie);</script> ``` ```php include/customize.php ``` ```php include/help.php ``` ```php include/new-visitor.inc.php ``` ```php includes/adovbs.inc ``` ```php includes/footer.php3 ``` ```php includes/header.php3 ``` ```php index.php/123 ``` ```php index.php/\"< ``` ```php index.php/content/advancedsearch/?SearchText=&PhraseSearchText=&SearchContentClassID=-1&SearchSectionID=-1&SearchDate=-1&SearchBu ``` ```php index.php/content/search/?SectionID=3&SearchText= ``` ```php index.php?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000 ``` -------------------------------- ### API Endpoint Examples Source: https://github.com/wouterken/itsi/blob/main/gems/server/lib/itsi/server/config/known_paths/backdoors/bot_control_panels.txt Examples of URLs that appear to be API endpoints or dynamic resource requests. These often include parameters for specific actions or data retrieval. ```APIDOC go.php?html=do gttfi.php?id=019451425260376469&ext=ixioJXXJFCRrrDatKHhK gttfi.php?id=019451425260376469&ext=YmFkc3R1ZmYuZGxs handle. php?addr=http%3A h. gif ?pid =1 13&v=130586214568 h.gif ?pid =1 13&v=130586214568 http: http:(C&C):443 idssvc.jsp?comment=wget+http: iesvc.jsp?comment=wget+http: inbox.php?ltype=ld&ccr=1&id=E81B90884C4C45445458&stat=0&ver=2000803&loc=0x0409&os=Windows%20XP index.htm?n763t4OPmrs6fXq7fXp7uj16e-r&Length=0 index.php?uid=587609&ver=8g%20XP indexbak.asp?rands=IXLCGIXELZ&acc=&str=select%20id%20from%20tab_online%20where%20regc info.asp in.php?q=WPOChVXlw9QiOTwtCbg+uSk36elyOCiUwI99U0PYxA== install.sql.tpl install.sql install.php install_en.txt install.txt install.txt iPasedSn.bas ip_files ip.php iStarPcOns.bas iUnamex.bas ixjxqn-jtixjx-qnjt_tfdhgj-opjx-gxytfqbqgsusltnojtyhsn_syvrzh-htof-clgowkblrzrqfrgsuqgdit_ruky_.php jobs_add.php jobs_add_window.php jobs_add_window.tpl jobs_bot_edit.php jobs_designer.php jobs_edit.php jobs_edit_window.php jobs_edit_window.tpl jobs.php jobs.tpl knok.php?id=SYSTEM!VICTIM!9B88F779&ver=21&up=162&os=XP%20Service%20Pack%202 kys_allowget.asp?namegetkys.kys login.php?cd2hpdGU&uU11TVEV&s&pMTkyLjE2OC4wljYS&hi2wsdf35l logos.gif?114bbc=9068000 logos.gif?1f5428=8212640 ``` -------------------------------- ### View Hello World Benchmark Data Source: https://github.com/wouterken/itsi/blob/main/docs/content/benchmarks/index.md This URL provides access to benchmark results for a 'Hello World' test case. It includes parameters for CPU, test case, thread/worker configuration, concurrency, HTTP/2 status, graph axis (concurrency), metric (RPS), and the list of servers to display. This link is useful for comparing server performance with a simple response. ```url https://example.com/benchmarks?cpu=amd_ryzen_5_5600x_6_core_processor&testCase=hello_world&threads=1&workers=1&concurrency=10&http2=all&xAxis=concurrency&metric=rps&visibleServers=agoo%2Cfalcon%2Citsi%2Cpuma%2Cpuma__caddy%2Cpuma__h2o%2Cpuma__itsi%2Cpuma__nginx%2Cpuma__thrust%2Cunicorn%2Ciodine%2Ccaddy%2Ch2o%2Cnginx%2Cgrpc_server.rb ``` -------------------------------- ### Basic GET Endpoint Example Source: https://github.com/wouterken/itsi/blob/main/gems/server/lib/itsi/server/config/middleware/endpoint/http_request.md Demonstrates a simple GET endpoint that accepts a request object and defines a block for handling the request. ```ruby get "/" do |req| # Request handling logic here end ``` -------------------------------- ### Core Application Files Source: https://github.com/wouterken/itsi/blob/main/gems/server/lib/itsi/server/config/known_paths/cms/php-nuke.txt These are the main entry points and configuration files for the application. They manage core functionalities and module loading. ```php html/mainfile.php html/modules.php ``` -------------------------------- ### GET /middleware/get Endpoint Source: https://github.com/wouterken/itsi/blob/main/gems/server/lib/itsi/server/config/middleware/endpoint/get.md The 'get' middleware is an endpoint specifically designed for handling HTTP GET requests. It acts as a lightweight middleware component, allowing direct request handling without a full application framework. It supports optional routing to controllers and enforces request/response schemas. ```APIDOC GET /middleware/get Description: Handles HTTP GET requests as a lightweight middleware endpoint. Supports optional controller routing and request/response schema enforcement. URL: /middleware/get Method: GET Parameters: (Implicitly handled by schema enforcement if configured) Returns: (Response based on controller logic or schema enforcement) Related: /middleware/endpoint ``` -------------------------------- ### Run Itsi for Ruby apps Source: https://github.com/wouterken/itsi/blob/main/README.md Starts the Itsi server to serve a Ruby application. Assumes a `config.ru` file is present in the current directory. ```bash itsi ``` -------------------------------- ### CGI Script Examples Source: https://github.com/wouterken/itsi/blob/main/gems/server/lib/itsi/server/config/known_paths/cgi/CGI_XPlatform.txt Examples of Common Gateway Interface (.cgi) scripts, often used for server-side processing. ```cgi ikonboard/help.cgi? ``` ```cgi imageFolio.cgi ``` ```cgi imagefolio/admin/admin.cgi ``` -------------------------------- ### Configuration and Data Files Source: https://github.com/wouterken/itsi/blob/main/gems/server/lib/itsi/server/config/known_paths/backdoors/bot_control_panels.txt Various configuration files (.conf, .inc, .obj, .xml, .tpl, .sql, .txt) and data files (.tar.gz, .zip) used for application settings, database schemas, templates, and archives. ```config guimanifest.xml inc.config.php installdata.inc.php jpg-config.inc.php language.en.php language.ru.php lighttpd_rewrite.conf localconfig.obj localsettings.obj login.php?cd2hpdGU&uU11TVEV&s&pMTkyLjE2OC4wljYS&hi2wsdf35l logos.gif?114bbc=9068000 logos.gif?1f5428=8212640 logo_text.psd logs.tpl logs_static.tpl jobs_add_window.tpl jobs_edit_window.tpl jobs.tpl index.tpl info.tpl grabber.tpl install.sql.tpl install.sql install.txt Install.txt info.txt HowTo.txt How-To.txt hits.txt grabber.php grabber.tpl grab.php grab2.php g.php guimanifest.xml grabber.tpl grabber.php grab.php grab2.php g.php guimanifest.xml ``` -------------------------------- ### HTML File Example Source: https://github.com/wouterken/itsi/blob/main/gems/server/lib/itsi/server/config/known_paths/cgi/CGI_XPlatform.txt HTML files, which form the structure and content of web pages. These are standard web development components. ```html easylog/easylog.html ``` ```html doc-html/index.html ``` ```html examples/jsp/index.html ``` ```html examples/servlets/index.html ``` -------------------------------- ### Curl Examples for Subpath Mounting Source: https://github.com/wouterken/itsi/blob/main/gems/server/lib/itsi/server/config/middleware/run.md Provides example `curl` commands to demonstrate the behavior of Rack applications mounted at a subpath, showing how `SCRIPT_NAME` and `PATH_INFO` are reflected in the output. ```bash $ curl http://0.0.0.0:3000/subpath/child_path /subpath:/child_path $ curl http://0.0.0.0:3000/root/child_path :/root/child_path ``` -------------------------------- ### Servlet Examples Source: https://github.com/wouterken/itsi/blob/main/gems/server/lib/itsi/server/config/known_paths/cgi/CGI_XPlatform.txt A list of various servlet paths, some of which are associated with known vulnerabilities or administrative interfaces. ```url servlet/AdminServlet ``` ```url servlet/ContentServer?pagename= ``` ```url servlet/CookieExample?cookiename= ``` ```url servlet/Counter ``` ```url servlet/DateServlet ``` ```url servlet/FingerServlet ``` ```url servlet/HelloWorldServlet ``` ```url servlet/IsItWorking ``` ```url servlet/MsgPage?action=test&msg= ``` ```url servlet/PrintServlet ``` ```url servlet/SchedulerTransfer ``` ```url servlet/SearchServlet ``` ```url servlet/ServletManager ``` ```url servlet/SessionManager ``` ```url servlet/SessionServlet ``` ```url servlet/SimpleServlet ``` ```url servlet/SnoopServlet ``` ```url servlet/admin?category=server&method=listAll&Authorization=Digest+username%3D%22admin%22%2C+response%3D%22ae9f86d6beaa3f9ecb9a5b7e072a4138%22%2C+nonce%3D%222b089ba7985a883ab2eddcd3539a6c94%22%2C+realm%3D%22a ``` ```url servlet/allaire.jrun.ssi.SSIFilter ``` ```url servlet/com.livesoftware.jrun.plugins.ssi.SSIFilter ``` ```url servlet/com.newatlanta.servletexec.JSP10Servlet/ ``` ```url servlet/com.newatlanta.servletexec.JSP10Servlet/..%5c..%5cglobal.asa ``` ```url servlet/com.unify.servletexec.UploadServlet ``` ```url servlet/custMsg?guestName= ``` ```url servlet/gwmonitor ``` ```url servlet/oracle.xml.xsql.XSQLServlet/xsql/lib/XSQLConfig.xml ``` ```url servlet/org.apache.catalina.ContainerServlet/ ``` ```url servlet/org.apache.catalina.Context/ ``` ```url servlet/org.apache.catalina.Globals/ ``` ```url servlet/org.apache.catalina.servlets.WebdavStatus/ ``` ```url servlet/sq1cdsn ``` ```url servlet/sqlcdsn ``` ```url servlet/sunexamples.BBoardServlet ``` ```url servlet/webacc ``` ```url servlet/webacc?User.html=../../../../../../../../../../../../../../../../../../boot.ini%00 ``` ```url servlet/webacc?User.html=../../../../../../../../../../../../../../../../../../etc/passwd%00 ``` ```url servlet/webacc?User.html=noexist ``` ```url servlet/webpub ``` ```url servlets/MsgPage?action=badlogin&msg= ``` ```url servlets/SchedulerTransfer ``` ```url servlets/weboam/oam/oamLogin ``` -------------------------------- ### Get help for Itsi CLI Source: https://github.com/wouterken/itsi/blob/main/README.md Displays help information for the Itsi command-line interface, listing available commands and options. ```bash itsi --help ``` -------------------------------- ### Install Itsi using gem Source: https://github.com/wouterken/itsi/blob/main/README.md Installs the Itsi gem using the Ruby package manager. Requires Ruby and potentially build tools like `build-essential` and `libclang-dev` on Linux. ```bash apt-get install build-essential libclang-dev gem install itsi ``` -------------------------------- ### Configuration and Resource Files Source: https://github.com/wouterken/itsi/blob/main/gems/server/lib/itsi/server/config/known_paths/cms/php-nuke.txt These files include configuration settings and static resources for different modules. They manage access control and provide basic indexing for directories. ```text html/modules/Surveys/language/.htaccess ``` ```text html/modules/Surveys/language/index.html ``` ```text html/modules/Top/language/.htaccess ``` ```text html/modules/Top/language/index.html ```