webForumDet fria alternativet

Hackad hemsida

ASPur ASP

29 svar · 3 693 visningar · startad av snowcat

Medlem sedan feb. 2007220 inlägg
Frågan#1

Jag har i fyra omgångar nu fått några av alla mina asp-filer ändrade. Mina å har ändrats till ? och dessutom har de i texten lite här och där lagt in länkar som ser ut bl.a. så här:

<a href="http://www.bigralphlaurenoutlet.co.uk/" title="ralph lauren outlet uk">ralph lauren outlet uk</a>
<a href="http://www.cheaplacostepoloonline.co.uk/" title="lacoste outlet">lacoste outlet</a>

Har varit i kontakt med Loopia som säger att jag har något säkerhetshål på mina sidor. Har haft min hemsida på nätet sedan 2004 och aldrig haft något problem. Har inga program/moduler eller något, endast asp och html-sidor. De säger att jag får gå igenom min kod, har ung 300 asp-sidor så det blir ju en del att gå igenom. Någon som vet hur man på ett enkelt sätt kan säkra sina sidor?
Börjar bli trött på att gå in varje dag och se om något ändrats...
Har ändrat lösenordet till FTP som de sa jag skulle göra men det hjälpte ju ingenting.
Hur säkrar man att man inte kan hacka asp-sidor är väl egentligen min fråga!!?? :(

Medlem sedan juni 20006 022 inlägg
#2

Är det alltid samma filer som drabbas?
Hur är dessa filer uppbyggda?
Hämtas text och länkar från en databas?
Finns det formulär som styr över detta innehåll?

Medlem sedan feb. 2007220 inlägg
#3

det är olika sidor varje gång. Texten hämtas från en mysql-databas. Du kan se t.ex. en som blev hackad igår här, en vanlig enkel sida, inga konstigheter.
http://www.historiesajten.se/kungarisland.asp

Medlem sedan juni 20006 022 inlägg
#4

Börja med att säkra upp emot SQL Injection.
http://sv.wikipedia.org/wiki/SQL-injektion

Medlem sedan feb. 2007220 inlägg
#5

tror inte de har kommit åt db:n utan endast ren asp-sida. Den ser ut så här den senaste de la in länkar på:

<center><table border="0" width="500" cellpadding="1" cellspacing="0">
<tr><td height="15" colspan="2"></td></tr>

<tr class="rubrik">
<td> Islands regenter från 1481 -   <img src="flaggor/flaggaisland.gif" alt="Islands flagga"></td> </tr>
<tr><td><img src="bilder/divider500.jpg" alt=""></td></tr>

<tr><td class="vtextcenter" colspan="2">Även Danska kungar fram till 1944, och Norska kungar fram till 1814.</td></tr>
<tr><td height="20" colspan="2"></td></tr>
<tr><td colspan="2"><div class="kungalistor">Ätten Oldenburg</div></td></tr></table>

<table width="500" cellpadding="3" cellspacing="0">

<tr class="vtextcenter">
<td><a href="visainfo.asp?id=242">Hans (Johan II)<br><img src="fotosmall/242.jpg" height="100" width="75" class="galleri" alt=""><br>av Oldenburg</A><br>1455-1513</td>
<td class="vtext">Dansk-<b>Isländsk</b> kung 1481-1513<br>Norsk kung 1483-1513<br>Svensk-Finsk kung 1497-1501</td>
<td><a href="visainfo.asp?id=514">Kristina<br><img src="fotosmall/514.jpg" height="100" width="75" class="galleri" alt=""><br>av Sachsen</A><br> 1461-1521</td></tr>
<tr><td colspan="3" height="35"><img src="bilder/divider500.jpg" alt=""></td></tr>

<tr class="vtextcenter">
<td width="31%"><a href="visainfo.asp?id=227">Kristian II<br><img src="fotosmall/227.jpg" height="100" width="75" class="galleri" alt=""><br>av Oldenburg</A><br>1481-1559</td>
<td width="35%" class="vtext">Dansk-Norsk-Isländsk kung 1513-1523<br>Svensk kung 1520-1521<br><br>Gift 1515 med » </td>
<td width="34%">Isabella<br><img src="fotosmall/isabella.jpg" height="100" width="75" class="galleri" alt=""><br>av Österrike<br>1501-1526</td>
</tr>
<tr><td colspan="3" height="35"><img src="bilder/divider500.jpg" alt=""></td></tr>

<tr class="vtextcenter">
<td><a href="visainfo.asp?id=246">Fredrik I<br><img src="fotosmall/246.jpg" height="100" width="75" class="galleri" alt=""><br>av Oldenburg</A><br>1471-1533</td>
<td class="vtext">Dansk-Norsk-Isländsk kung 1523-1533<br><br>Gift 1502 med »<br><br>Gift 1518 med Sofia av Pommern (1498-1568)</td>
<td>Anna<br><img src="fotosmall/anna.jpg" height="100" width="75" class="galleri" alt=""><br>av Brandenburg<br>1487-1514</td></tr>

<tr><td height="35"></td></tr>
------------
jag vet att koden ser förjäklig ut men hur säkrar man en sån sida mot SQL Injection.? Behövs det ens?

Medlem sedan juni 20006 022 inlägg
#6

I en länk som t.ex. visainfo.asp?id=246 kan man byta ut 246 mot kod och därmed utföra lite vad som helst. Så ja, du behöver säkra upp emot SQL Injektion.

Men när sidan hackas så ändras det alltså inte i databasen utan det läggs in hårdkodade länkar?

Medlem sedan feb. 2007220 inlägg
#7

ja om jag tänker efter så är det inte från databasen den hämtar utan jag har skrivit direkt in i asp-filen. Jag är ju helt rudis när det gäller sånt här. Har du något tips på hur man skall skriva i de filerna för att de inte skall kunna ändra i texten? jättetacksam för hjälp!!

Medlem sedan mars 20034 471 inlägg
#8

snowcat skrev:

ja om jag tänker efter så är det inte från databasen den hämtar utan jag har skrivit direkt in i asp-filen. Jag är ju helt rudis när det gäller sånt här. Har du något tips på hur man skall skriva i de filerna för att de inte skall kunna ändra i texten? jättetacksam för hjälp!!

Vissa saker som du ALLTID måste göra på alla sidor du har: Validera all indata! Med indata menas allting som kommer från formulär, allting som hämtas från URL:en, ev cookies, och liknande. Kort och gott all indata som användarna kan komma åt att ändra på.

Om du förväntar dig ett heltal, kolla att det verkligen är ett heltal du fått och BARA ett heltal. Om du förväntar dig en sträng, se till att den inte innehåller farliga tecken - hur detta bäst kollas i ASP är jag fel person att tipsa om -, om du förväntar dig värden i ett visst intervall, kolla att det värde du fick ligger i det intervallet. (Eller alternativt försäkra dig om att din asp-kod hanterar ett värde utanför intervallet på ett vettigt och säkert sätt.)

Se till att eventuella felmeddelanden inte lämnar ut onödigt detaljerade upplysningar i stil med tex kunde inte ansluta till databasen KALLE med användarnamn AAA och lösenord 123.

För sidor som har databaskoppling: Läs på om SQL Injections förslagsvis genom att söka på detta i Google. (Om du inte redan har koller mot detta måste de läggas in omedelbart annars kan vem som helst totalfördärva din databas precis när som helst! Ta bort den helt, tömma tabeller, lägga in egen data, ändra befintlig.... Det är som att resa bort och lämna ytterdörren vidöppen efter sig!

Jag vill inte påstå att detta är en uttömmande lista, men en bra start som du bör ta tag i omgående. Överväg även att stänga sidan helt tills du hunnit hitta och åtgärda hålen.

Medlem sedan feb. 2007220 inlägg
#9

Hejsan

Nu har jag hittat en asp-fil som låg i en img-katalog på loopia som inte är min. Den hade ändrats någon dag innan jag upptäckte att det var fel på min sida. test.asp hette den och låg i en "iphone"-katalog (som jag inte ens själv har på min stationära) vilket speglar det jag har på loopia....
Den var också helt kryptisk så jag tog bort den.

De filerna som har blivit ändrade har inte hämtat data från db:n. Och de ser ut ungf. så här http://www.historiesajten.se/kungar.asp så det hämtas ju inte från ett formulär eller liknande. Så jag vet inte hur jag skall skriva/göra då? Det är en vanlig fil jag har skrivit rätt in i och har inga strängar eller så alls?

Jag hoppas problemet försvinner nu när jag tagit bort test.asp...
Skall maila till loopia och berätta. Visst måste väl ändå de ha ett säkerhetshål om folk kan lägga in filer på servern??

Medlem sedan aug. 20039 340 inlägg
#10

Tog du en kopia av filen så man kan undersöka den?
Det kan ju vara fel på Loopias sida, men det finns även rootkits som du skulle kunna ha på din dator som tar sig in när du öppnar en FTP-anslutning och börjar lägga in filer den vägen.

Mitt personliga tips skulle vara att kanske satsa på att byta till Apache-server med PHP och köra MediaWiki. Det lär bli en del omställningsjobb, och det kanske känns surt att sumpa det arbete du har lagt ner på koden, men det går att ändra utseendet på MW, och mjukvaran har bra möjligheter att lagra dataposter (t ex listor över avrättade, freder och vad du nu har för föremål) på ett strukturerat sätt.

Medlem sedan feb. 2007220 inlägg
#11

Nej jag tog ingen kopia på filen tyvärr. Jag kollade dock i den och det var bara en massa konstiga tecken.
Har en fråga, är det någon här som på ett enkelt sätt kan förklara för mig hur jag skall göra för att dölja så det inte står t.ex. så här:
http://historiesajten.se/krigsinfo.asp?id=2
Har i ett annat forum fått en massa skäll, och jag är ju ingen utvecklare så jag har lite svårt att ta det tyvärr..
De säger att de kan pajja hela min databas om de sätter ett ' efter strängen. Och de kan de kanske men hur skall jag göra för att ändra/dölja?
Jag har ju 100-tals filer och har varken ork, lust eller tid att ändra i alla. Jag gillar ju att skriva om historiska saker, inte att koda. Någon som har ett enkelt exempel på hur man döljer ?id=2, för så får man visst inte ha enligt det andra forumet.. :(

Medlem sedan aug. 2008815 inlägg
#12

Det handlar inte om att dölja id=2. idt måste vara med för att du ska kunna hämta rätt innehåll. Det handlar om att du ser till att 2an är ett tal och inte en sträng. Att skriva något i stil med:

 sql="Select * where id=".$_GET['id'];

Är livsfarligt.

Medlem sedan feb. 2007220 inlägg
#13

så här skrev de i andra forumet:
Om din fil heter tillexempel visa.asp?id=1
så finns en variabel med id 1. Om variabeln innehåller 1' (med ') så går det att modifiera mysql queryn och göra vad som helst med databasen. Livsfarligt!!
Men hur skall jag skriva då? Jag kan inte sånt här.
Jag testade själv på en av mina filer, satte ett ' krigsinfo.asp?id=3' efter och fick då följande:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[MySQL][ODBC 3.51 Driver][mysqld-5.0.45-log]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' at line 1
Ser ju inte snyggt ut precis men något annat händer ju inte. Fast det kan man nog göra värre kanske.
Behöver något simpelt exempel på hur man förhindrar detta.

Medlem sedan juni 20019 519 inlägg
#14

snowcat, de flesta ha bett dig kolla in SQL injection det är det dom menar på de andra forumet (och blivit tipsad om här)

Medlem sedan maj 20012 237 inlägg
#15

Dessutom borde du stänga av visningen utav tekniska felmeddelanden. Dessa skall endast lagras i en loggfil eller liknande som bara du har tillgång till.

I stället kan du visa ett användarvänligare felmeddelande som inte undanröjer eventuella information om databasen osv.

Medlem sedan maj 20012 237 inlägg
Medlem sedan feb. 2007220 inlägg
#17

Med risk för att alla tycker jag är skitkorkad, men jag har redan sagt flera gånger att jag är inte alls hemma i det här. Har läst en massa om sql injection och har försökt lagt in det där jag tror det skall vara, men får felsidor när jag försökt lagt in det i koden.

I några av mina asp-sidor har jag följande.. är detta på rätt väg?

qid = Request.QueryString("id")
If IsNumeric(qid)= false then
qid = 1
End If

Sen hämtar jag ut qid från databasen.
Är säkert fel men men...

Och hur stänger man av visningen utav tekniska felmeddelanden? Lätt om man vet men obegripligt om man inte är utvecklare. Lägger man in en if-sats att om det är fel så visa "fel-sida" eller hur gör man?

Medlem sedan aug. 2008114 inlägg
#18

Har du testat att lägga in något av åäö i lösenordet? Om ditt webbhotell accepterar det.

Medlem sedan feb. 2007220 inlägg
#19

lösenordet till ftp menar du? Har inget annat lösenord?

Medlem sedan aug. 2008815 inlägg
#20

snowcat skrev:

I några av mina asp-sidor har jag följande.. är detta på rätt väg?

qid = Request.QueryString("id")
If IsNumeric(qid)= false then
qid = 1
End If

Sen hämtar jag ut qid från databasen.
Är säkert fel men men...

Det är så du ska göra och det där borde vara säkert. Men eftersom du inte hämtar data från databasen i detta fallet och eftersom det läggs till sidor som du inte har skapat så tror jag på det nitro2k01 skriver om rootkits. Hur hittar man och eliminerar sådant?

139 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)