[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ì:
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.
Come si è scoperto, è stato necessario eseguire un'enumerazione su tutti i valori possibili:
Così:
Proviamo ad andare a vedere la rivista tramite il link e otteniamo:"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à.
This page is under construction
Ancora una volta rileggiamo il testo del compito e notiamo il suggerimento: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.Ma il trasferimento dei dati è molto lento, quindi è necessario assegnare correttamente la priorità .
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
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. 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) = [])
[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) = [])
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:
Inserisci il flag risultante sul sito e vedi: 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
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
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.Chiave accettata (ricerca scaduta)