IT knowledge base
CTRL+F per cercare la tua parola chiave

[NeoQuest2017] 6 pianeta o "Troppe cose ..."

Si ritiene che dopo un combattimento non agitino i pugni. Ma il primo ctf della mia vita, NeoQuest2017 , ha mostrato che la sicurezza delle informazioni cartacee differisce abbastanza dalle informazioni pratiche e non sarà possibile prendere bandiere al volo. Anche se, come si è scoperto, mi sono avvicinato alla bandiera a stretto contatto.
Così:

"TROPPO TOTALE..."
Questo pianeta assomiglia ai tropici... Un'incredibile quantità di flora e fauna diverse! I nostri zaini erano tutti pieni e pieni di campioni e registri di osservazione con descrizioni e, dopo tutto, avevamo appena iniziato a esplorare il pianeta! Guardandoci intorno, ci siamo resi conto che sarebbe stato molto più efficiente inserire tutte le informazioni da remoto immediatamente nel logbook . Ma il trasferimento dei dati è molto lento, quindi è necessario assegnare correttamente le priorità.

Proviamo ad andare a vedere la rivista tramite il link e otteniamo:
This page is under construction
Ancora una volta rileggiamo il testo del compito e notiamo il suggerimento:

Ma il trasferimento dei dati è molto lento, quindi è necessario assegnare correttamente la priorità .

Ho ucciso la prima metà della giornata, pensando che la conversazione riguardasse i campi di richiesta HTTP: Accept-Charset, Accept-Encoding, Accept-Language, Accept, ecc. Si è scoperto di no.
Ulteriori ricerche hanno rivelato che il server supporta HTTP / 2. E una delle sue innovazioni propagandate è la priorità delle richieste.
Stiamo cercando qualcosa che possa essere usato per cambiare la priorità e trovare nghttp.
Provando
root @ kali: ~ # nghttp -p 3 -v 213.170.100.212
[0.055] Connesso
Il protocollo negoziato: h2
[0.166] invia SETTINGS frame <length = 12, flags = 0x00, stream_id = 0>
(niv = 2)
[SETTINGS_MAX_CONCURRENT_STREAMS (0x03): 100]
[SETTINGS_INITIAL_WINDOW_SIZE (0x04): 65535]
[0.167] invia PRIORITY frame <length = 5, flags = 0x00, stream_id = 3>
(dep_stream_id = 0, peso = 201 , esclusivo = 0)
[0.167] invia PRIORITY frame <length = 5, flags = 0x00, stream_id = 5>
(dep_stream_id = 0, peso = 101 , esclusivo = 0)
[0.168] invia PRIORITY frame <length = 5, flags = 0x00, stream_id = 7>
(dep_stream_id = 0, peso = 1 , esclusivo = 0)
[0.168] invia PRIORITY frame <length = 5, flags = 0x00, stream_id = 9>
(dep_stream_id = 7, peso = 1 , esclusivo = 0)
[0.169] invia PRIORITY frame <length = 5, flags = 0x00, stream_id = 11>
(dep_stream_id = 3, peso = 1 , esclusivo = 0)
[0.169] invia HEADERS frame <length = 38, flags = 0x25, stream_id = 13>
; END_STREAM | END_HEADERS | PRIORITÀ
(padlen = 0, dep_stream_id = 11, peso = 3 , esclusivo = 0)
; Apri un nuovo stream
: metodo: GET
: sentiero: /
: schema: https
: autorità: 213.170.100.212
accetta: * / *
accettare-codifica: gzip, deflate
agente utente: nghttp2 / 1.18.1
[0.232] recv SETTINGS frame <length = 18, flags = 0x00, stream_id = 0>
(niv = 3)
[SETTINGS_MAX_CONCURRENT_STREAMS (0x03): 100]
[SETTINGS_INITIAL_WINDOW_SIZE (0x04): 65536]
[SETTINGS_MAX_FRAME_SIZE (0x05): 16384]
[0.233] recv WINDOW_UPDATE frame <lunghezza = 4, flag = 0x00, stream_id = 0>
(window_size_increment = 196605)
[0.233] recv SETTINGS frame <length = 0, flags = 0x01, stream_id = 0>
; ACK
(niv = 0)
[0.233] recv (stream_id = 13): stato: 200
[0.234] recv (stream_id = 13) etag: "21-58a4a130-a2bf2"
[0.234] recv (stream_id = 13) ultima modifica: mer 15 feb 2017 18:42:56 GMT
[0.234] recv (stream_id = 13) tipo di contenuto: testo / html
[0.234] recv (stream_id = 13) lunghezza contenuto: 33
[0.234] recv (stream_id = 13) accetta-intervalli: byte
[0.235] recv (stream_id = 13) data: Lun, 20 Mar 2017 12:01:24 GMT
[0.235] recv (stream_id = 13) server: NQ-webserver
[0.235] recv HEADERS frame <length = 96, flags = 0x04, stream_id = 13>
; END_HEADERS
(padlen = 0)
; Intestazione della prima risposta
Questa pagina è in costruzione
[0.236] recv DATA frame <lunghezza = 33, flags = 0x00, stream_id = 13>
[0.236] recv DATA frame <lunghezza = 0, flags = 0x01, stream_id = 13>
; END_STREAM
[0.236] invia il frame GOAWAY <lunghezza = 8, flag = 0x00, stream_id = 0>
(last_stream_id = 0, error_code = NO_ERROR (0x00), opaque_data (0) = [])
E con questo il mio entusiasmo si è prosciugato. A quel tempo, nessuno poteva ancora prendere questa bandiera. Dopo aver estratto a caso un paio di valori di priorità diversi e non aver inserito quello giusto, ho deciso di aver scelto di nuovo il percorso sbagliato e sono passato all'attività successiva.
Come si è scoperto, è stato necessario eseguire un'enumerazione su tutti i valori possibili:
!/bin/bash
until [$i -eq 256]
do
let "i=i+1"
nghttp  -p $i https://213.170.100.212/
done 
exit 0
Noi abbiamo:
radice @ kali: ~ # ./123
Questa pagina è in costruzione
Questa pagina è in costruzione
Questa pagina è in costruzione
Questa pagina è in costruzione
Questa pagina è in costruzione
Questa pagina è in costruzione
Questa pagina è in costruzione
Questa pagina è in costruzione
Questa pagina è in costruzione
Questa pagina è in costruzione
Questa pagina è in costruzione
Questa pagina è in costruzione
Questa pagina è in costruzione
Questa pagina è in costruzione
Questa pagina è in costruzione
Questa pagina è in costruzione
Questa pagina è in costruzione
Questa pagina è in costruzione
BB
quattordici
7E
F9
2D
66
4D
52
diciotto
quattordici
0A
sedici
ANNO DOMINI
3F
C5
03
Questa pagina è in costruzione
Questa pagina è in costruzione
Questa pagina è in costruzione
Questa pagina è in costruzione
Questa pagina è in costruzione
Questa pagina è in costruzione
Questa pagina è in costruzione
Questa pagina è in costruzione
Inserisci il flag risultante sul sito e vedi:

Chiave accettata (ricerca scaduta)

Bene, questa volta ovviamente non ho avuto abbastanza perseveranza. Ma lo stesso spirito di ctf mi ha catturato. Grazie mille agli organizzatori per la grande ricerca. Non vedo l'ora di continuare e spero che si riveli più efficace.