Comments & Opinions


Home Page | Comments | Articles | Faq | Documents | Search | Archive | Tales from the Machine Room | Contribute | Set language to:en it | Login/Register


The Bug! The Bug!

One of my "historical" readers, Daniele Scasciafratte, has reported to me the presence of a bug in the CMS, caused by the really stupid way I decided to use to handle multiple "years" for the "tales". Basically what I do (did), is (was) to grab the "year" parameter from the URL and simply slap it to the page and use it for the selection of the "section".

I confess that I didn't spent much time on this thing, since I didn't wanted to write dedicated, specialized code just to handle ONE thing and nothing else, but the problem is that I didn't implemented any "sanitization" in my code and assumed that the Proxy call was sufficient. Boy was I wrong!

The result is (was) that you could call something like "https://soft-land.org/storie/oftheyear&year=<script>alert(123)</script>" and see the script executed in your browser.

Now, how useful can this be for an "attacker" is debatable, but why not fixing it? So I did. In fact, if you try that stuff now, it won't work anymore.

The fix will be on Sourceforge/Github ASAP, but if you're interested, the whole fix is the addition of something like

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

Congratulation to Daniele in the attempt at breaking my site. Not like the assholes that keep trying to send me ethereum miners.

Davide Bianchi
12/08/2022 08:05

Comments are added when and more important if I have the time to review them and after removing Spam, Crap, Phishing and the like. So don't hold your breath. And if your comment doesn't appear, is probably becuase it wasn't worth it.

7 messages post new

LukeHack

By LukeHack posted 12/08/2022 11:05 - reply

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 By Davide Bianchi posted 12/08/2022 11:09 - reply

sarebbe meglio usare un POST con i parametri "embeddati"

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

 

-- Davide Bianchi

LukeHack

@ Davide Bianchi By LukeHack posted 12/08/2022 13:05 - reply

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

By Daniele Mte90 Scasciafratte posted 12/08/2022 14:00 - reply

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 By Anonymous coward posted 16/08/2022 10:37 - reply

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

By Verzasoft posted 14/08/2022 13:08 - reply

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

-- http://www.verzasoft.tk

Anonymous coward

@ Verzasoft By Anonymous coward posted 16/08/2022 10:53 - reply

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 messages post new

Previous Next


This site is made by me with blood, sweat and gunpowder, if you want to republish or redistribute any part of it, please drop me (or the author of the article if is not me) a mail.


This site was composed with VIM, now is composed with VIM and the (in)famous CMS FdT.

This site isn't optimized for vision with any specific browser, nor it requires special fonts or resolution.
You're free to see it as you wish.

Web Interoperability Pleadge Support This Project
Powered By Gojira