Jag har anlitat ett företag för att utveckla en dynamisk webbsida åt mig, nu är det klart och vi tänkte testa den mot olika attacker och eventuella säkerhetshål.
Jag vet inte än hur jag ska gå till väga, vilka program och metoder jag ska använda! Om du Har några förslag så skriv det gärna här och berätta i korthet eller om du själv vill vara med och testa sidan med att attackera och försöka att sniffa information från sidan så får du göra det med mitt godkännande.
Webbsidan : http://www.cwebconsultants.com/F1CashBack/
Tack på förhand
Zara
Lite grundläggande testning.
Jag har testat lite och provat ett par vanliga mönster för SQL-injektioner, utan att lyckas hitta något. (Det betyder dock inte att sidan är helt säker förstås.)
På signup-sidan hittade jag lita fula saker, dock. Först och främst svengelskan "Sign upp". En annan liten sak är att man inte vet säkert om ettorna i CAPTCHAn är ettor eller annat. Lägg ev. till en text som säger "denna text kan innehålla ettor men inga små L" om så är fallet. Inget säkerhetsproblem, men en sak du bör tänka på för att inte irritera potentiella användare. Dock är den CAPTCHAn du har där extremt enkel att läsa av för en spambot. Använd reCAPTCHA istället.
Sedan Javascriptet som inte vill tillåta t ex tecknet ' ( :) ) Det går dock lätt att ta sig förbi t ex genom att inaktivera Javascript. Skriver man in något som serversidan ogillar så får man ett felmeddelande i form av "Array" som tyder på att någon klantskalle försöker använda echo/print på en array istället för på en sträng. Se bilden. (Notera dock att det som är ifyllt där inte är vad som orsakade felet, utan en ogiltig e-postadress.)
Sen när jag lyckades skapa ett konto, med ett enkelt citattecken i, märkte jag att det var escapat, dvs skrevs ut som \'. Detta är något man gör för att skydda mot sk SQL-injektioner. Dock är något fel om datat som kommer tillbaka till användarna ser ut så. Det betyder att samma text har escapats två gånger. Det kan vara så att så kallade magic quotes är påsatta på servern medan koden kör någon escape-funktion på strängar. Det kan vara så att kod kör någon escape-funktion dubbla gånger. Det kan också vara så att koden kör en escape-funktion trots att man använder en databas-koppling som använder "prepared statements" där det inte behövs.
Samma sak syns för övrigt på texten nere i högra hörnet: "we\'ll give you $100. What\'s more, we\'ll give the person you recommend $100 too."
Det ovan beskrivna problemet är i sig ingen säkerhetslucka (även om det skapar fula utskrifter av tecknet ') men det är ett tecken på att de som har gjort sidan inte kan sina saker.
Dessutom kan man skriva in HTML-kod i sitt användarnamn. Skapa en användare som heter <i>oeuioeuioeiu</i> så syns oeuioeuioeiu i kursiv stil. Detta låter oskyldigt, men går dock att utnyttja för att injicera Javascript. Tänk dig sedan att du från ditt admin-konto ska kolla någons profil. Den personen kan då genom ett särskilt utformat Javascript sno dina uppgifter från din profil-config-sida. Det kräver visserligen att du besöker personens sida (eller på annat sätt visar dennes namn) och att personen har tillräcklig kännedom om systemet. Men det är en säkerhetslucka icke desto mindre.
Jag skulle inte låtit sidan gå i produktion i nuvarande skick.
Hej Jme!
Eftersom jag är newbis, jag har en liten dum fråga.
Vad menar du med "Jag gav ett värder för id (13) som tydligen inte existerar i systemet" ?
Klicka på länken i jme's inlägg. Adressen slutar på "id=13". Du kunde lika gärna skriva id=42 eller id=1337 eller id=9001 eller annat valfritt nummer som inte existerar. Bara id=1 verkar existera, men det är bra att skriva ut ett bättre felmeddelande när en sida inte existerar.
Jag har kontaktat webbutvecklaren och framfört alla synpunkter till honom , men han undrar om någon kan ge ett exempel på vad netro2K01 har sagt här
"Dessutom kan man skriva in HTML-kod i sitt användarnamn. Skapa en användare som heter <i>oeuioeuioeiu</i> så syns oeuioeuioeiu i kursiv stil. Detta låter oskyldigt, men går dock att utnyttja för att injicera Javascript. Tänk dig sedan att du från ditt admin-konto ska kolla någons profil. Den personen kan då genom ett särskilt utformat Javascript sno dina uppgifter från din profil-config-sida. Det kräver visserligen att du besöker personens sida (eller på annat sätt visar dennes namn) och att personen har tillräcklig kännedom om systemet. Men det är en säkerhetslucka icke desto mindre. "
Om jag vore du hade jag inte betalat för den sidan. Att idag använda magic_quotes (speciellt när man inte kan använda funktionerna för att hantera det korrekt) är bara *fel*, högst troligt används mysql_*-funktionerna och utan prepared statements, vilket öppnar för datastöld. Beroende på hur affärskritisk din data är skulle jag nog hyra in någon som går igenom koden.
258 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2