Alguna comprensión del webshell más corto de 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?
=`$_GET[1]` > /p> 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 = en lugar de
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)
=`$_GET[1]`;
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.