Gathering of Tweakers

Quicksearch
quote:
ChessSpider schreef op woensdag 21 mei 2008 @ 11:16:
[...]
Je snapt dat dit net zo goed geld als voor POST he? Je moet GET hetzelfde beschouwen als POST wat het je applicatie betreft. Cookie gegevens beveilig je toch ook goed?
Inderdaad, op zich maakt het niet veel verschil al zal een simpele eindgebruiker eerder geneigd zijn om op die manier dingen aan je request te wijzigen dan een POST te spoofen. Uiteraard moet er nog altijd geverifieerd worden of deze user input toegelaten is op de server.

Wat ik dan soms ook nog wel eens tegen durf komen is dat ontwikkelaars dergelijke ID's gaan encoderen tot iets onleesbaars.. maar uiteindelijk blijf je dan nog altijd met hetzelfde probleem zitten.

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

Geen idee...

quote:
YopY schreef op woensdag 21 mei 2008 @ 11:13:
[...]


Bbbbbaaaaahhhh, al die ifs zijn ten eerste redundant en ten tweede kunnen ze gecombineerd worden. Wat is er mis met

[...]
Klopt helemaal. :)
Helaas programmeer ik op m'n werk ook andere programmeertalen waarbij de compiler de variabelen in een if-statement soms van plaats wisselt zodat controles in een andere volgorde langs komen dan je eigenlijk wil.

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.

Om verwarring en dit soort fouten te voorkomen werk ik daarom eigenlijk altijd met losse if-statements. :Y)


Zoals ik de reacties zo lees zit er, zoals ik al had verwacht, geen veiligheidsverschillen tussen POST en GET. Afhankelijk van de toepassing wordt voor een GET of juist voor een POST gekozen, en voor mijn codevoorbeeld had ik daarom een GET gekozen omdat je dan gemakkelijk het resultaat kan testen. :)

Mijn Nederlands moet beter!
Spel- of grammaticafout gevonden? Geef het even door via DM (en ook waarom het fout is).

quote:
Onbekend schreef op woensdag 21 mei 2008 @ 23:09:
Helaas programmeer ik op m'n werk ook andere programmeertalen waarbij de compiler de variabelen in een if-statement soms van plaats wisselt zodat controles in een andere volgorde langs komen dan je eigenlijk wil.
Mijn god :X Welke programmeertaal is dat?

.oisyn wijzigde dit bericht 21-05-2008 23:48 (49%)

Voor id's gebruik ik (in PHP) altijd ctype_digit(), wat volgens mij echt garandeert dat je alleen maar numerieke tekens in je ID hebt.

Ik heb gesproken...
Specificaties | AndriesLouw.nl

Fulltime #whatpulsert

quote:
Omdat PHP zo is ontwikkeld dat het ontzettend veel toelaat, het is ontzettend makkelijk om er mee te werken. Het nadeel daarvan is dus dat er veel exploits mogelijk zijn.

Acties: [view][quote]


Door: Creepy Moderator PRG/SEA/DTE
Eye Have You

quote:
Doe er wat aan zou ik zeggen ;) .oisyn heeft ook al een C++ voorbeeld gepost.

Jij schijt ook altijd op die showmodel toiletpotten bij de Gamma? "Ja, ik zag een toiletpot en..."
"Intelligent input darlin'. Why don't you just have another beer then? - Kate Nash.

Alanis Rulez! Ik trouwens ook


code:
1
2
3
:start
echo %1
goto start

geen php ;)

En inderdaad interessant topic :)

Guillome wijzigde dit bericht 22-05-2008 13:42 (35%)

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%)

Berichten: 3767
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: 4750
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 948: Alpaca
Foto specs: Canon 300D, Tamron 17-50 f/2.8, 1/50s, 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 ;)
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 | Raids'R'Us - Laurelin raid groep | 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 948: Alpaca
Foto specs: Canon 300D, Tamron 17-50 f/2.8, 1/50s, f/6.3, ISO 100

Tenzij de titel en de tekst al escaped (htmlentities / htmlspecialchar) in de database staan heb je last van XSS.
 


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

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

[RSS][XML]

Update Tracker

Active Topics
Active Topics
Frontpage Nieuws
Frontpage Nieuws