Recientemente, la empresa estaba contratando a un ingeniero de ciberseguridad y yo también participé en parte de la entrevista. De hecho, muchos hablan de su propia comprensión y actitud hacia la seguridad de la red. En cuanto a las cosas técnicas, mientras más contacto tengas con la obra, poco a poco te familiarizarás con ella. Aquí, también resumo algunas preguntas frecuentes. Se abrió una nueva columna: "Colección de entrevistas de ingenieros de seguridad de redes"
https://blog.csdn.net/weixin_42350212/category_11066978.html?spm=1001.2014.3001.5482
Omisión de verificación de archivos y carga
contenido
4.8.1 Omisión de detección de tipo de archivo
4.8.1.1 Omisión de solicitud de cambio
4.8.1.2 Omisión de detección mágica
4.8.1.4 Omisión de nombres del sistema
4.8.1.7 Omisión de carga competitiva
4.8.2.2 Enlace suave para leer archivos arbitrariamente
4.8.1 Omisión de detección de tipo de archivo
4.8.1.1 Omisión de solicitud de cambio
Algunos sitios solo detectan tipos de archivos en el front-end, y este tipo de detección se puede omitir modificando directamente las solicitudes de red. De manera similar, algunos sitios solo verifican la información en el encabezado HTTP en el back-end, como , Content-Type
etc. Esta verificación también se puede omitir modificando la solicitud de red.
4.8.1.2 Omisión de detección mágica
Algunos sitios usan encabezados de archivos para detectar tipos de archivos, que se pueden omitir agregando los bytes correspondientes antes del shell. Los bytes de encabezado de varios tipos de archivos comunes se muestran en la siguiente tabla
Tipos de | valor binario |
---|---|
JPG | FF D8 FF E0 00 10 4A 46 49 46 |
GIF | 47 49 46 38 39 61 |
PNG | 89 50 4E 47 |
TIF | 49 49 2A 00 |
BMP | 42 4D |
4.8.1.3 Omisión de sufijo
Algunos servicios solo determinan el tipo de archivo según el sufijo, la información de carga o el encabezado mágico, que se puede omitir en este momento.
Por razones históricas, algunos intérpretes pueden admitir sufijos /ph(p[2-7]?|t(ml)?)/
regulares ,
Tales como php
// // / / / php5
etc. pht
pueden phtml
probar el tipo cuando la carga de archivos php está prohibida .shtml
pwml
phtm
El motor jsp puede analizar jspx
/ jspf
/ jspa
/ jsw
/ jsv
/ jtml
y otros sufijos,
asp admite sufijos como //////// ._ asa
_ asax
_ cer
_ _cdx
aspx
ascx
ashx
asmx
asp{80-90}
Además de estas omisiones, otros sufijos también pueden causar problemas,
Tales como vbs
/ asis
/ sh
/ reg
/ cgi
/ exe
/ dll
/ com
/ bat
/ pl
/ cfc
/ cfm
/ ini
etc.
4.8.1.4 Omisión de nombres del sistema
En los sistemas Windows, index.php.
se a .
, lo que omite la verificación del sufijo.
Prueba también index.php%20
, index.php:1.jpg
index.php::$DATA
etc.
En los sistemas Linux, puede intentar index.php/.
cargar ./aa/../index.php/.
un archivo con el nombre o
4.8.1.5. .usuario.ini
Durante la ejecución de php, php.ini
además , PHP también escanea cada directorio en busca de archivos INI, comenzando por
El directorio donde se encuentra el archivo PHP ejecutado comienza a subir al directorio raíz web ($_SERVER['DOCUMENT_ROOT']
especificado). Si el archivo PHP que se está ejecutando está fuera del directorio raíz web, solo se escanea ese directorio.
.user.ini
Opciones que pueden definir modos distintos de PHP_INI_SYSTEM en , para que pueda usar.user.ini
Agregue un archivo con un sufijo que no sea php para construir un shell,
por ejemploauto_prepend_file=01.gif
4.8.1.6 Omisión de WAF
Algunos wafs solo procesan parte de los datos teniendo en cuenta las razones de rendimiento durante el proceso de escritura.
En este momento, su función de procesamiento se puede omitir agregando una gran cantidad de datos basura.
Además, los boundary
sistemas manejan de manera inconsistente,
El bypass se boundary
puede .
4.8.1.7 Omisión de carga competitiva
Algunos servidores utilizan el método de guardar primero y luego eliminar los archivos ilegales.
Puede cargar un archivo que generará un Web Shell repetidamente e intentar acceder a él, y puede obtener el Shell después de muchas veces.
4.8.2 Técnicas de ataque
4.8.2.1 Apache anula GetShell
Apache puede considerar cargar .htaccess en función de si se permiten redirecciones
El contenido es
AddType application/x-httpd-php .png
php_flag engine 1
Puede usar png u otros archivos con sufijos para hacer scripts php
4.8.2.2 Enlace suave para leer archivos arbitrariamente
Cuando el archivo del paquete comprimido cargado se descomprima, puede considerar cargar archivos que contengan enlaces simbólicos.Si el servidor no está bien protegido, se puede lograr el efecto de leer cualquier archivo.
4.8.3 Técnicas de protección
- Use una lista blanca para limitar los tipos de archivos cargados
- Use una verificación de tipo de archivo más estricta
- Restringir el análisis del servidor web de las carpetas de carga