Skip to main content
  1. Comandi/

more

·2 mins
Alessio Barnini
Author
Alessio Barnini
Table of Contents

Cosa fa
#

Mostra il contenuto di un file una schermata alla volta. Se tutto il testo entra in una schermata, stampa e termina subito. Se non entra, va in modalità interattiva e aspetta input.


TL;DR
#

more file.txt     # mostra il file una schermata alla volta

Comportamento chiave:

  • Testo corto → stampa tutto e termina subito
  • Testo lungo → entra in modalità interattiva con prompt --More--

Modalità interattiva — comandi
#

TastoCosa fa
SpazioPagina successiva
InvioRiga successiva
qEsci
vApri il file in vim — vettore di escape
/patternCerca testo
hHelp

more vs less
#

more  → vecchio, va solo avanti, esce quando finisce il file
less  → moderno, va avanti e indietro, non esce alla fine

less e' quasi sempre preferibile a more — ma more e' presente su tutti i sistemi Unix anche minimali, quindi lo incontrerai spesso.


Scenario Reale — Bandit 25
#

Lo script /usr/bin/showtext di bandit26 usava more per mostrare un file di testo breve:

#!/bin/sh
export TERM=linux
more ~/text.txt
exit 0

Su un terminale normale il testo entrava in una schermata → more terminava subito → lo script faceva exit 0 → connessione chiusa.

L'exploit: rimpicciolire il terminale finché il testo non entra piu' in una schermata → more va in modalità interattiva → premi v → si apre vim → da vim si ottiene una shell bash:

:set shell=/bin/bash
:shell
Note

Questo e' un esempio classico di living off the land — usare strumenti legittimi del sistema per fare cose non previste. more, vim, less, man sono tutti potenziali vettori di escape da shell ristrette.


Collegato a
#

  • less — versione moderna e preferibile
  • vim — editor aperto da more con v
  • bandit-25 — caso d'uso reale
  • system — categoria

Related