Introduction to HTTP and web

What is a web server

A web server is an application that runs on the back-end server, which handles all of the HTTP traffic from the client-side browser, routes it to the requests destination pages, and finally responds to the client-side browser. Web servers usually run on TCP ports 80 or 443, and are responsible for connecting end-users to various parts of the web application, in addition to handling their various responses. As web applications tend to be open for public interaction and facing the internet, they may lead to the back-end server being compromised if they suffer from any vulnerabilities. Web applications can provide a vast attack surface, making them a high-value target for attackers and pentesters.

Many types of vulnerabilities can affect web applications. We will often hear about/see references to the OWASP Top 10. This is a standardized list of the top 10 web application vulnerabilities maintained by the Open Web Application Security Project (OWASP). This list is considered the top 10 most dangerous vulnerabilities and is not an exhaustive list of all possible web application vulnerabilities. Web application security assessment methodologies are often based around the OWASP top 10 as a starting point for the top categories of flaws that an assessor should be checking for.

Source HTB Academy

Different HTTP Methods

MethodGoal

GET

This method will request the resources from the server

POST

This method will allow to submit data

HEAD

This method will request the headers only

OPTIONS

This request will respond to the client with the allowed http verbs

PUT

This request will create an url with the data submitted to it

PATCH

the Accept-Patch header have to be use. This method will allow to partially update resources

TRACE

This is used to debug input sent to the client

CONNECT

This will create a proxy tunnel between the browser and the server

DELETED

This will remove a resource

Cookies

Cookies are used to store informations on the client side.

Databases

This is used to store information on the server side

API

Application Programming interfaces are used for machine to machine communication. It basically helps developers to not have to code things that are already coded. For instance payment functionalities.

  • API uses endpoint, this an url that is used to interact with the API.

  • The requested data is called Resources.

  • A singleton is a unique object, a collection is a group of resources.

  • A microservice is a piece of a web app that handles a specific function.

REST API

  • REST stands for Representational State Transfer.

See the chapter for API here

Web shells

This part about web shells was made from my notes on the HTB Academy's payload and shells module.

A web shell is a browser-based shell session we can use to interact with the underlying operating system of a web server. Note: Most of the time you will always need to edit the webshell you use.

Laudanum

In parrot OS, the Laudanum files can be found in the /usr/share/webshells/laudanum directory. For most of the files within Laudanum, you can copy them as-is and place them where you need them on the victim to run. For specific files such as the shells, you must edit the file first to insert your attacking host IP address to ensure you can access the web shell or receive a callback in the instance that you use a reverse shell.

Antak Webshell

Antak is a web shell built-in ASP.Net included within the Nishang project. Nishang is an Offensive PowerShell toolset that can provide options for any portion of your pentest. In parrot the Antak files can be found in the /usr/share/nishang/Antak-WebShell directory.

PHP Web Shells

Considerations when Dealing with Web Shells

When utilizing web shells, consider the below potential issues that may arise during your penetration testing process:

  • Web applications sometimes automatically delete files after a pre-defined period

  • Limited interactivity with the operating system in terms of navigating the file system, downloading and uploading files, chaining commands together may not work (ex. whoami && hostname), slowing progress, especially when performing enumeration -Potential instability through a non-interactive web shell

  • Greater chance of leaving behind proof that we were successful in our attack

Resources

Last updated