webForumDet fria alternativet

Testa min sida för säkerhetshål

Datasäkerhet

30 svar · 2 607 visningar · startad av zarabud

Medlem sedan sep. 201028 inlägg
Frågan#1

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

Medlem sedan aug. 20039 340 inlägg
#2

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.

Medlem sedan sep. 201028 inlägg
#3

Tack så mycket för hjälpen. jag ska gå igenom alla dina synpunkter.
Tack en gång till.
Zara

Medlem sedan sep. 201028 inlägg
#4

Hej Nitro2K01! Du har nämnt något om bilden ! Jag kan inte se att du har bifogad något bild eller?

MVH
Zara

Medlem sedan aug. 20039 340 inlägg
#5

Förlåt mig. Den glömde jag. Kommer med detta inlägg istället.

Screen shot 2010-11-25 at 2.09.51 PM.png
Medlem sedan maj 20012 237 inlägg
#6

http://www.cwebconsultants.com/F1CashBack/index.php?page=company&id=13

Ger felet:

Notice: Trying to get property of non-object in /home/cwebcons/public_html/F1CashBack/html/company.php on line 44

Jag gav ett värde för id (13) som tydligen inte existerar i systemet.

Medlem sedan juni 2009920 inlägg
#7

Inte säkerhetsrelaterat, men tycker rubriken på sidan "F1CashBack" borde stå i ett annat typsnitt än times new roman. Annars fin sida :)

Medlem sedan sep. 201028 inlägg
#8

Tack Nitro2K01 nu ser jag bilden.
Zara

Medlem sedan sep. 201028 inlägg
#9

Tack Gildeebrand, jag ska tänka på det när jag har justera designen.

//Zara

Medlem sedan sep. 201028 inlägg
#10

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" ?

//Zara

Medlem sedan aug. 20039 340 inlägg
#11

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.

Medlem sedan sep. 201028 inlägg
#12

Tack nitro2K01.
Nu fattar jag hur man fick fel meddelanden.
//zara

Medlem sedan maj 20012 237 inlägg
#13

Glöm sedan inte att stänga av visning av fel är ni lanserar sidan. Fel skall loggas i en logg och ett generellt felmeddelande visas till besökaren.

Det är belagt med dubbel spöstraff om man visar "You have an error in your SQL query near INSERT INTO ..." ;)

Medlem sedan sep. 201028 inlägg
#14

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. "

//Zara

Medlem sedan maj 20012 237 inlägg
#15

"Refer a Frend " borde väl vara "Refer a friend"?

Medlem sedan sep. 201028 inlägg
#16

Du har rätt JME , sidan är inte klart än och kan innehålla många stavnings- och grammatikfel.

//Zara

Medlem sedan jan. 2005327 inlägg
#17

Ang js kod i namn, typ så här:

<script type="text/javascript">alert("Lite elak javascriptkod");</script>

Mailadressen görs någon form av validering på, men efternamn kunda man regga ovansående.

Så kan man få andra att se mitt namn så kommer de att få en popup (om javascript kod är aktiverat) .

Det var väl typ det nitro menade.

/pebi

Radera min användare, så slipper ni ju konstiga popups.

js_lastname.jpg
Medlem sedan sep. 201028 inlägg
#18

Tack pebi, det var klart och enkelt exempel.

//Zara

Medlem sedan sep. 201028 inlägg
#19

Hej Allihop ! Sidan är fixad enligt webbutvecklaren, och jag undrar om ni kan hitta ytterligare fel och svaghet i webben!

MVH
Zara

Medlem sedan juni 20014 421 inlägg
#20

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
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)