Gathering of Tweakers

Quicksearch
Waar zit de kwestbaarheid, en wat is het doel van het script? Voor de goede orde, het gaat hier om normale applicaties die fouten in hun code hebben die uitgebuit kunnen worden door 'hackers' om zo dingen te doen die eigenlijk niet zouden mogen (zoals een systeem overnemen, gegevens opvragen die ze niet zouden mogen opvragen, etc.).

Jouw script doet niets anders dan in een oneindige loop dezelfde regel uitvoeren. Hoe kan dat uitgebuit worden?

.oisyn wijzigde dit bericht 22-05-2008 13:51 (84%)

Call me cocky, but if there`s an alien out there I can`t kill I haven`t met him and killed him yet.
[Tomb Raider: Underworld] - [My javascript wolfenstein project]

Berichten: 3632
Reg. datum: 28 april 2000

quote:
Onbekend schreef op woensdag 21 mei 2008 @ 23:09:
[...]
is_int(intval($Donation))
Dit returned toch altijd true? wat de inhoud van $Donation ook is.
quote:
Onbekend schreef op woensdag 21 mei 2008 @ 23:09:
[...]
In de regel if ( isset($Donation) && is_numeric($Donation) && is_int(intval($Donation)) && ( $Donation <= $AccountThisUser ))
wordt dan bijvoorbeeld eerst van $Donation een nummeric getal gemaakt, en daarna gaat hij kijken of $Donation is geset.
Maar $Donation word toch helemaal geen numeric getal gemaakt? Ik zie nergens dat $Donation geset word en in de documentatie zie ik ook niet staan dat de functie iets aan de waarde veranderd die je meegeeft. Dus IMHO zou de volgorde van uitvoeren hier niet zoveel uitmoeten halen.

To be, or not to be, those are the parameters

Alanis Rulez! Ik trouwens ook

quote:
.oisyn schreef op donderdag 22 mei 2008 @ 13:48:
Waar zit de kwestbaarheid, en wat is het doel van het script? Voor de goede orde, het gaat hier om normale applicaties die fouten in hun code hebben die uitgebuit kunnen worden door 'hackers' om zo dingen te doen die eigenlijk niet zouden mogen (zoals een systeem overnemen, gegevens opvragen die ze niet zouden mogen opvragen, etc.).

Jouw script doet niets anders dan in een oneindige loop dezelfde regel uitvoeren. Hoe kan dat uitgebuit worden?
zucht .... :z
@hydra: het was als grapje bedoeld op de post boven mij. Zal ik niet weer doen. Sorry, ga maar weer ontopic, das veel interessanter dan zo over een geintje tussendoor te vallen...

Guillome wijzigde dit bericht 22-05-2008 15:24 (13%)

Berichten: 4633
Reg. datum: 29 september 2000

quote:
Euh? Geef anders antwoord op z'n vraag?

AoC: Ankeh - 4X ToS | WoW: Zhazam - 70 Mage | Sammia - 70 Druid

Fulltime #whatpulsert

quote:
Guillome schreef op donderdag 22 mei 2008 @ 15:02:
[...]

zucht .... :z
@hydra: het was als grapje bedoeld op de post boven mij. Zal ik niet weer doen. Sorry, ga maar weer ontopic, das veel interessanter dan zo over een geintje tussendoor te vallen...
Waarom quote je .oisyn dan? Natuurlijk denkt iedereen dan dat het daar een reactie op is..

Ik snap overigens ook niet helemaal wat de exploit in dat script is. Overigens maakt het ook weinig uit, want ik denk dat hier wel wat dingen mogen komen te staan die in de praktijk ook voorkomen.
Alanis Rulez! Ik trouwens ook

:? :? eh juist ja :? ga aub door met het topic, je maakt van de mug alleen maar een grote vage olifant

Guillome wijzigde dit bericht 22-05-2008 16:30 (8%)

Nederlands Kampioen Nunchaku!

quote:
Cartman! schreef op zaterdag 17 mei 2008 @ 11:41:
PHP:

1
2
3
4
5
6
7
<?php
$strSql = '
    INSERT INTO
        video
    SET
        filename = "'
 . $strFilename . '",
        hash = "'
 . sha1(time()) . '"
    '
;
?>

Over het dubbele hashes, je kan natuurlijk het veld op PRIMARY zetten zodat er enkel unique strings in mogen staan. Het haalt de bug er niet 100% uit, maar het is al iets beter aangezien de dubbele string niet in de database komt.
quote:
Cartman! schreef op dinsdag 20 mei 2008 @ 21:10:
Het is sowieso niet handig om in de rechtentabel de naam te gebruiken ipv. het userid, is dat wat je bedoeld?
Al ben ik het wel met je eens, maar waarom?
Waarom precies wil je een id gebruiken, ipv een naam?
 
Fulltime #whatpulsert

quote:
CyCloneNL schreef op vrijdag 23 mei 2008 @ 10:11:
[...]


Al ben ik het wel met je eens, maar waarom?
Waarom precies wil je een id gebruiken, ipv een naam?
Naast dat het een gevoelskwestie is, scheelt het ruimte. Bovendien weet je zeker dat je geen rare dingen krijgt i.v.m. bepaalde encoding etc. van de naam.

EDIT: En wat dacht je als de naam veranderd? Dan moet je dat in alle tabellen gaan doen.

Patriot wijzigde dit bericht 23-05-2008 10:21 (11%)

Plus dat een dergelijke synthetische key gewoon constant kan blijven, ook al wil jij je username veranderen en ga zo maar door met alle standaard datamodel argumenten.
Maar goed, dit is wel offtopic allemaal...
edit:
spuit 11 na bovenstaande edit :'( Maar dan nog zijn dit toch echt wel standaard puntjes uit datamodel 101)

Voutloos wijzigde dit bericht 23-05-2008 10:27 (21%)

Talkin.nl daily photoblog
Day 905: Three Kites
Foto specs: Canon 300D, Sigma 70-200 f/2.8 HSM, 1/1000s, f/6.3, ISO 100

Ok, thanks.

Zelf zou ik ook een ID gebruiken, maar alleen voor de 'gevoelskwestie'. Nu weet ik dus waarom :)
 
En 't is gewoon sneller, een index van integers tov een index van varchars ;)

Call me cocky, but if there`s an alien out there I can`t kill I haven`t met him and killed him yet.
[Tomb Raider: Underworld] - [My javascript wolfenstein project]

Ok, nog eentje, niet echt een kwetsbaarheid maar wel een fout.

Een nieuws systeem, waar de tekst na 100 karakters wordt afgekapt en er een 'Lees meer' link wordt gegeven.
PHP:

1
2
3
4
5
6
7
8
9
10
11
12
<?php
$maxLength = 100//Maximum tekst length.

$result = (Haal data uit MYSQL database)

while($row = mysql_fetch_array($result))
{
   $titel = $row['titel'];
   $text = strlen($row['tekst']) > $maxLength ? $row['tekst'] : substr($row['tekst'],0,$maxLength) . "<a href='news.php?id=$row[id]'>Lees meer!</a>";

   echo "<h1>$titel</h1> 
            $text"
;
}
?>

 
De substring zal altijd in de fout gaan, aangezien de text in die case altijd kleiner zal zijn dan 100?

P4 - 2400MHz, MSI 845e max, 512DDR PC2100 CL2, 160GB Maxtor 7200rpm, Geforce4 ti4200 128mb DDR

Hij kapt hard op 100 karakters, niet netjes einde woord etc, geen tags afsluitend. Alleen jammer dat ie daar niet komt, alleen wanneer de tekst niet groter is als $max, wat dus loos kapwerk is.


:w Voutloos, ik was nog aan het editen :P

MueR wijzigde dit bericht 29-05-2008 14:24 (50%)

Rhyaehar ~ lvl 50 Hunter, Man at Arms | Annon Amarth - Lord of the Rings Online Kinship [Laurelin] | LOTRO blog

offtopic:
Je kan voor PHP code [php][/php] tags gebruiken. ;)

En dit is wel een heel suf foutje. :P Je kan hier wellicht gewoon altijd substr() doen, lekker boeiend als je een handjevol calls hebt waarbij de tekst reeds binnen length viel, 't leest wel een stuk eenvoudiger. :)
quote:
MueR schreef op donderdag 29 mei 2008 @ 14:22:
Hij kapt hard op 100 karakters, niet netjes einde woord etc, geen tags afsluitend.
Zat ik eerst ook aan te denken, maar het is idd vooral verkeerd om. ;)
quote:
:w Voutloos, ik was nog aan het editen :P
Yeah right. :+ :w

Voutloos wijzigde dit bericht 29-05-2008 14:43 (37%)

Talkin.nl daily photoblog
Day 905: Three Kites
Foto specs: Canon 300D, Sigma 70-200 f/2.8 HSM, 1/1000s, f/6.3, ISO 100

Tenzij de titel en de tekst al escaped (htmlentities / htmlspecialchar) in de database staan heb je last van XSS.
 
Helemaal lijp.
Berichten: 2637
Reg. datum: 18 december 2005

Het is sowieso onzin om te escapen/XSS filteren bij het weergeven van data, imo moet je dat doen zodra je het in je de database zet.
 
quote:
PrisonerOfPain schreef op donderdag 29 mei 2008 @ 14:23:
Tenzij de titel en de tekst al escaped (htmlentities / htmlspecialchar) in de database staan heb je last van XSS.
Maar dat ligt dan meer aan het feit dat je dat zo in de database hebt staan. Das al een WTF op zich.

Loading...

quote:
Muthas schreef op donderdag 29 mei 2008 @ 14:26:
Het is sowieso onzin om te escapen/XSS filteren bij het weergeven van data, imo moet je dat doen zodra je het in je de database zet.
Párdon? De data in de database heeft níets te maken met de weergave van de betreffende content, escapen van de data met htmlentities ed. doe je gewoon in de view layer.
 
Helemaal lijp.
Berichten: 2637
Reg. datum: 18 december 2005

En dat je weet ik het hoeveel keer hetzelfde met je data doet terwijl je die data altijd ge-escaped nodig zal hebben maakt niet uit?

Muthas wijzigde dit bericht 29-05-2008 14:36 (42%)

 
quote:
PrisonerOfPain schreef op donderdag 29 mei 2008 @ 14:23:
Tenzij de titel en de tekst al escaped (htmlentities / htmlspecialchar) in de database staan heb je last van XSS.
Hij is escaped enzo.
 
quote:
Muthas schreef op donderdag 29 mei 2008 @ 14:33:
En dat je weet ik het hoeveel keer hetzelfde met je data doet terwijl je die data altijd ge-escaped nodig zal hebben maakt niet uit?
Dat is nogal een non-optimalisatie; zodra dit een bottleneck word doet de view layer z'n eigen caching maar. In een database wil je dit soort dingen gewoon niet hebben omdat op dat punt helemaal nog niet vast staat wat het output formaat gaat worden.
 
quote:
Muthas schreef op donderdag 29 mei 2008 @ 14:33:
En dat je weet ik het hoeveel keer hetzelfde met je data doet terwijl je die data altijd ge-escaped nodig zal hebben maakt niet uit?
Escapen is niet generiek, maar doe je voor een bepaalde context. Pas als jij zeker weet welke context altijd gebruikt wordt kan dit een vd bewuste optimalisatie trucs zijn.
edit:
...waarbij het compleet cachen van grote blokken van je site idd krachtiger kan zijn. Maar wellicht ook lastiger. :P

Voutloos wijzigde dit bericht 29-05-2008 14:47 (12%)

Talkin.nl daily photoblog
Day 905: Three Kites
Foto specs: Canon 300D, Sigma 70-200 f/2.8 HSM, 1/1000s, f/6.3, ISO 100

In ieder geval, een fout is dat alle open HTML tags niet worden afgesloten.
Dus als er net een h1 tag geopend is, wordt de hele pagina dik gedrukt.

CyCloneNL wijzigde dit bericht 29-05-2008 17:23 (19%)

 


© 1998-2008 Tweakers.net BV - Based on React - Hosted by True - Served by Adrastos

© 1998-2008 Tweakers.net BV - Based on React - Hosted by True - Served by Adrastos

[RSS][XML]

Update Tracker

Active Topics
Active Topics
Frontpage Nieuws
Frontpage Nieuws