Just nu i M3-nätverket
Gå till innehåll

Säkerhetshål på inloggning


mindsleep

Rekommendera Poster

Ok, ny teknik, Sista försöket innan jag ger mig.

 

Vad finns det för svagheter här då som jag inte tänkt på? Jag är helt 100% säker på att jag glömt något i alla fall, med tanke på tidigare inlägg :) Men man kan ju alltid hoppas att jag inte glömt något utan att det verkligen fungerar, i alla fall i teorin.

---------------------------

Precis som tidigare så finns det 1 login.asp och 1 confirm.asp

 

På login.asp finns det ett formulär som i den förra ideén.

 

På login.asp så innan formuläret skickas så går det genom en 2 st MD5 det första MD5 skapas igenom:

användarnamn+lösenord=loginMD5

 

Det andra blir så här:

loginMD5+Session("rndValue")+"konstant värde"

 

Session("rndValue") är som tidigare ett slumpat värde.

 

Det är MD5 värde 2 som vi skickar till confirm.asp

 

 

Confirm.asp i sin tur hämtar upp ett MD5 värde från exempelvis:login.txt

Detta värde är alltså användarnamn+lösenord i MD5.

 

Sedan bildas ett nytt MD5 värde genom:

Textfilens MD5 värde+Session("rndValue")+"konstant värde"

 

Session("rndValue") är det man fick från login.asp. Det konstanta värdet är inget som skickats utan det är samma konstant som stog på login.asp

 

Efter detta körts jämför man det MD5 värde man fick från login.asp och det man nyss skapat på confirm.asp

 

Stämmer detta är allt ok.

------------------------------

Det var det, mitt sista försök i denna fråga:)

Vad har jag nu missat?

 

Som jag ser det så skyddar det mot både sniffning och försök att återposta eller posta fråm extern källa. Men jag kan ju ha fel :)

 

//MVH Mindsleep

 

*** The answer to knowledge is a question ***

 

Länk till kommentar
Dela på andra webbplatser

  • 1 year later...

En idé som borde fungera. En enkel sak.

(Kanske är ute och cyklar men man skickar inget okodat iaf)

 

När användaren först kommer in på login.asp så kör du en random-sträng på ca 10 tecken och sparar den i tex: Session("tempCode").

 

Sen så skriver du ut javascriptet med asp typ:

 

<SCRIPT>

var tempCode = "<%=Session("tempCode")%>";

 

bla bla bla

</SCRIPT>

 

Sen kan du ha två hidden inputfält i formen som heter typ: codeUsr och codePwd i en egen form som tex heter: codeForm

 

Sen i ett annat FORM fält skriver användaren användarnamn och lösen där du inte postar något utan den kör endast en javascriptsfunktion som tar det du skrivit i användarnamn och lösenords fälten (typ: document.formnamn.inputnamn.value) och kodar dessa med tempCode-variablen.

 

När dessa är kodade sätter du dessa i codeUsr och codePwd fälten (tex: document.codeForm.codeUsr.value = codedUsr) och sen submittar du detta formuläret. (document.codeForm.submit()).

 

Då är det endast de redan codade användarnamnet och lösenordet som postas till confirm.asp och du kan koda upp den igen med Session("tempCode") och göra vad du vill med dem. Tex koda dem så de matchar textfilen.

 

Sen gör du som andra redan tipsat om att döpa om .txt till .asp och skriva in <% i början.

 

På så sätt så blir strängen du kodar med dynamisk och kommer aldrig vara likadan två ggr.

 

Som jag ser det borde detta fungera.

 

Visst kan någon se enkelt genom javascriptet hur kodningsrutinen ser ut men de har ju ingen nytta av den eftersom de inte har den dynamiska strängen iaf.

 

 

[inlägget ändrat 2005-02-24 12:43:27 av sMe]

[inlägget ändrat 2005-02-24 12:46:53 av sMe]

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...