mercoledì 14 dicembre 2011

Protostar Net1 writeup

Questo livello è praticamente identico al precedente... L'unica differenza trovata sta nella funzione strcmp(). Questa funzione effettua una comparazione di stringhe, quindi ho inviato il dato come stringa... Nulla di più... Ma ho risolto il problema da remoto, così da sfruttare geany, il mio editor preferito... Infatti presenta quella tab 'terminale' che mi consente di avere sotto il codice un terminale, così da non dover passare dall'editor al terminare vero e proprio esterno... Questo il codice del livello da cui ricavare la porta... L'indirizzo ip della macchina remota potrebbe essere diverso, ma penso di non doverlo nemmeno dire...

Appunto si legge che la porta sulla quale è attivo il servizio è la 998, e che l'if controlla due stringhe... strcmp() ritorna 0 se le stringhe sono uguali... Si legge benissimo nella pagina dedicata a strcmp()... Io ho usato sempre python, perchè consente, a chi non lo conosce, di poterlo sfruttare molto.. Ed ho usato le tuple... Per chi non ricorda cos'è una tupla, rimando alla pagina relativa al primo livello del wargame Vortex presente su OverTheWire, lì ho spiegato bene perchè alla fine di unpack() aggiungo [0]... Quindi questo il codice:

Provo a spiegare questo script... Alla settima riga si connette all'indirizzo della macchina remota sulla porta 2998, salva il primo dato, lo stampa sulla shell(io stampo tutto :D ) poi tramite struct lo spacchetta salvando solo il primo dato della tupla, mi stampa sulla shell il valore, salva questo valore come stringa, lo invia alla macchina e stampa il messaggio di invio corretto... Penso che sia abbastanza semplice e questa volta non presenta problemi...

Sicuramente si può ottimizzare, saltando un paio di passaggi ed un paio di print... Ma io gradisco i print per vedere se qualcosa va storto... E si poteva saltare il passaggio separato dell'unpack inserendolo dentro alla funzione str, sempre che questa accetti il dato... Non ho provato, perchè secondo me va bene così...

Nessun commento: