Red de conocimiento informático - Aprendizaje de programación - Alguna comprensión del webshell más corto de PHP

Alguna comprensión del webshell más corto de PHP

Algunos conocimientos sobre el webshell más corto en PHP

Todo el mundo sabe que webshell es una inyección de sitios web. Tenemos miles de métodos diferentes para webshell. Echemos un vistazo a algunas ideas profundas causadas por el webshell más corto.

El webshell más corto de PHP

Un día, mientras paseaba por Wooyun, encontré un artículo muy interesante "Cómo escribir dos temas web en 32C3 CTF". Menciona dos cosas interesantes:

Webshell más corto de PHP

Comilla invertida del operador de ejecución de PHP

El artículo mencionado anteriormente, lo leí y lo encontré muy confuso después de leerlo varias veces. ¡veces! Más tarde, P Niu de Toast me dio algunos consejos y de repente me di cuenta

¿Google? ¿El webshell más corto?

p>

Uno de los resultados de Google se muestra arriba, **** 15 caracteres. Lo que es interesante aquí

php.ini necesita activar short_open_tag para usar la etiqueta corta, por lo que usa

Usar declaraciones separadas por punto y coma para analizar en php

La última línea no requiere punto y coma

Se pueden escribir varias declaraciones en PHP de la misma manera, pero deben estar separadas por punto y coma

Siempre que son caracteres de espacio en blanco, php ¡Solo permita múltiples puntos y coma entre ellos! (Por comprobar)

El webshell más corto obtenido por Google es como se muestra en la imagen de arriba y la longitud es ** **14 caracteres

p>

La etiqueta de cierre se elimina aquí, pero se agrega un punto y coma

La última línea no necesita punto y coma, ¡pero definitivamente necesita una etiqueta de cierre!

Además, este método de escritura no es factible para anidar en otros archivos, por lo que debes escribir una etiqueta de cierre.

La "magia" de bash en Linux

Siete caracteres, ¿qué pueden hacer estos siete caracteres?

¡En Linux, ejecutar "*" en la terminal es lo mismo que arriba!

* Se utiliza para hacer coincidir todos los nombres de archivos (incluidos los nombres de directorios) en un directorio.

¡La comilla invertida es el operador de ejecución, que ejecuta el nombre del archivo en el directorio como un comando! El siguiente paso es sobre Linux.