Commenti & Opinioni


Home Page | Commenti | Articoli | Faq | Documenti | Ricerca | Archivio | Storie dalla Sala Macchine | Contribuire | Imposta lingua:en it | Login/Register


Il Bug! Il Bug!

Uno dei miei lettori "storici", Daniele Scasciafratte, mi ha riportato un bug nel CMS, dovuto alla maniera a dir poco asinina che ho deciso di usare per gestire gli "anni" di storie. Sostanzialmente quello che faccio (facevo) era prendere il paramtero "anno" dall'URL ed usarlo brutalmente come variabile di selezione.

Ammetto che la cosa e' stata fatta per non dover ravanare troppo e scrivere del codice ad-hoc che poi non serve a niente altro, ma il problema e' che mi sono fidato del Proxy di apache per "sanitizzare" il parametro. Ed ovviamente quello non fa' un tubo.

Il risultato e' (era) che era possibile usare cose come "https://soft-land.org/storie/oftheyear&year=" e questo risultava nell'esecuzione dello script.

Ora, l'utilita' della cosa e' abbastanza bassa credo, perche' si e' limitati alla lunghezza di una URL che non e' poi molto e richiede, ovviamente, parecchio altro lavoro per diventare qualche cosa di "usabile", ma ho deciso che la cosa meritava un po' di attenzione ed ho aggiunto un pelo di sanitizzazione al codice, percui se ci provate adesso scoprirete che non funziona piu'.

Il bugfix andra' su SourceForge/GitHub al piu' presto, ma se vi interessa l'intera cosa si limita ad una piccola aggiunta:

    if ($FORM{'year'} =~ /\D/) {
        if ($debug) {
            print STDERR "Variable 'year' contains wrong chars: $FORM{'year'}, overriding with $year.";
        }
        $FORM{'year'} = $year;
    }

Complimenti a Daniele per la perseveranza nel tentare di sfasciarmi il sito, non come i coglioni che persistono nel cercare di inviarmi ethereum miners...

Davide Bianchi
12/08/2022 08:05

I commenti sono aggiunti quando e soprattutto se ho il tempo di guardarli e dopo aver eliminato le cagate, spam, tentativi di phishing et similia. Quindi non trattenete il respiro.

7 messaggi this document does not accept new posts

LukeHack

Di LukeHack postato il 12/08/2022 11:05

Tutto nella norma, del resto avevo già notato come lasci nella query string i parametri di impaginazione (hostid=softland&groupid=17&documentid=306)..

sarebbe meglio usare un POST con i parametri "embeddati"

-- LukeHack

Davide Bianchi

@ LukeHack Di Davide Bianchi postato il 12/08/2022 11:09

sarebbe meglio usare un POST con i parametri "embeddati"

Se trovi il modo di farlo via Apache proxy call...

 

-- Davide Bianchi

LukeHack

@ Davide Bianchi Di LukeHack postato il 12/08/2022 13:05

io uso AJP per fare uscire tomcat su apache, sfruttando la 8009.. però parliamo di java non di perl.. e non ci sono problemi di form type="post"

comincio a capire perchè volessi abbandonare il perl in favore del java xD

 

Se trovi il modo di farlo via Apache proxy call...

 

 

 

-- LukeHack

Daniele Mte90 Scasciafratte

Di Daniele Mte90 Scasciafratte postato il 12/08/2022 14:00

Wow finire sul sito e non ritrovarsi in una storia tra utonti rassicura un po :-D

Scherzi a parte non è tanto un problema di post o meno era che il parametro veniva stampato brutalmente in pagina... quindi io cercavo di ottenere l'elenco delle storie del 22 e mi sono accorto della cosa.

Alla fine niente di che dopotutto una XSS qui dove c'è solo un cookie per la lingua era un po inutile ma dopotutto era una cosa facile da sistemare.

PS: lettore storico dal 2009 mi pare appena maggiorenne e che facevo pratica con linux. Ora sono nel direttivo di Italian Linux Society e ho fondato un lug oltre mille mila cose nella comunità Mozilla e WordPress. Menzionato su questo sito dove ho imparato tanto ridendo su queste storie è qualcosa da curriculum XD

-- Daniele Mte90 Scasciafratte

Anonymous coward

@ Daniele Mte90 Scasciafratte Di Anonymous coward postato il 16/08/2022 10:37

Complimenti per il percorso xD

cmq il bug che hai sgamato E' anche un problema di GET, xchè appunto tramite la possibilità di passare un <script> nella querystring lo hai triggerato...

questo ovviamente non esclude che (probabilmente) altri parametri non vengono parsati, e quindi per es. in un'eventuale form (info utente, commento) è ancora possibile passare sti tags anche tramite POST, ma in quel caso il buon Davide provvede sempre alla pulitura a manella.. mentre nella querystring non ci sono controlli manuali.. e quindi via di XSS..

Wow finire sul sito e non ritrovarsi in una storia tra utonti rassicura un po :-D

Scherzi a parte non è tanto un problema di post o meno era che il parametro veniva stampato brutalmente in pagina... quindi io cercavo di ottenere l'elenco delle storie del 22 e mi sono accorto della cosa.

Alla fine niente di che dopotutto una XSS qui dove c'è solo un cookie per la lingua era un po inutile ma dopotutto era una cosa facile da sistemare.

PS: lettore storico dal 2009 mi pare appena maggiorenne e che facevo pratica con linux. Ora sono nel direttivo di Italian Linux Society e ho fondato un lug oltre mille mila cose nella comunità Mozilla e WordPress. Menzionato su questo sito dove ho imparato tanto ridendo su queste storie è qualcosa da curriculum XD

 

 

-- Anonymous coward

Verzasoft

Di Verzasoft postato il 14/08/2022 13:08

Si maaa.... e le storie del 2022?? :D

-- http://www.verzasoft.tk

Anonymous coward

@ Verzasoft Di Anonymous coward postato il 16/08/2022 10:53

Non ci sono, durante la pandemia i cazzari, sia utonti che managers, sono stati tutti licenziati perchè il loro "supporto" ossia controllo di altri cazzari, stesura di documenti

chilometrici inutili ma pregni di espressioni italo-americane, reinvenzione della ruota ecc... è stato giustamente ritenuto inutile, data la fine della necessità di avere tutta sta gentaglia in azienda... e di conseguenza le storie si sono rapidamente esaurite nel 2021 :D

Si maaa.... e le storie del 2022?? :D

 

 

-- Anonymous coward

7 messaggi this document does not accept new posts

Precedente Successivo


Il presente sito e' frutto del sudore della mia fronte (e delle mie dita), se siete interessati a ripubblicare uno degli articoli, documenti o qualunque altra cosa presente in questo sito per cortesia datemene comunicazione (o all'autore dell'articolo se non sono io), cosi' il giorno che faccio delle aggiunte potro' avvisarvi e magari mandarvi il testo aggiornato.


Questo sito era composto con VIM, ora e' composto con VIM ed il famosissimo CMS FdT.

Questo sito non e' ottimizzato per la visione con nessun browser particolare, ne' richiede l'uso di font particolari o risoluzioni speciali. Siete liberi di vederlo come vi pare e piace, o come disse qualcuno: "Finalmente uno dei POCHI siti che ancora funzionano con IE5 dentro Windows 3.1".

Web Interoperability Pleadge Support This Project
Powered By Gojira