Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 5685|Atbildi: 2

[Avots] ASP.NET Core (20) Novērst atvērtus novirzīšanas uzbrukumus

[Kopēt saiti]
Publicēts 06.06.2023 21:55:38 | | | |
Prasības: Es nesen izlasīju Microsoft ASP.NET Core dokumentu "Atvērtās novirzīšanas uzbrukumu novēršana ASP.NET Core", kas aptuveni nozīmēIzstrādātājiem ir jāpievērš uzmanība vietējās vietnes ceļam, pārejot uz atzvanīšanas adresi, lai daži lietotāji ļaunprātīgi viltotu atzvanīšanas adresi pikšķerēšanas uzbrukumiem。 Izpētiet kodu un sagatavojieties to pārnest uz ASP.NET MVC projektu.

Es atceros, ka lielākam ražotājam šī ievainojamība bija agrāk, un daži cilvēki to izmantoja, lai iztukšotu datplūsmu no QQ un WeChat, šādi:



Izmantojot ievainojamību, daži tērzēšanas rīki nespēja novērst lietotāju noklikšķināšanu uz saitēm, lai piekļūtu ļaunprātīgam vietnes saturam, jo viņi uzticējās lieliem uzņēmumu domēniem.

Kas ir atvērts novirzīšanas uzbrukums?

Tīmekļa lietojumprogrammas bieži novirza lietotājus uz pieteikšanās lapām, kad viņi piekļūst resursiem, kuriem nepieciešama autentifikācija. Novirzīšanā parasti ir iekļauts vaicājuma virknes parametrs returnUrl, lai lietotāji pēc veiksmīgas pieteikšanās varētu atgriezties sākotnēji pieprasītajā URL. Kad lietotājs ir autentificējies, viņš tiek novirzīts uz sākotnēji pieprasīto URL.

Uzbrukuma piemērs

Ļaunprātīgs lietotājs var izstrādāt uzbrukumu, kas paredzēts, lai ļaunprātīgam lietotājam piešķirtu piekļuvi lietotāja akreditācijas datiem vai sensitīvai informācijai. Lai sāktu uzbrukumu, ļaunprātīgs lietotājs maldina lietotāju, lai viņš noklikšķinātu uz saites uz jūsu vietnes galveno lapu, un šim URL pievienotu vaicājuma virknes vērtību returnUrl. laicontoso.comPiemēram, programma irhttp://contoso.com/Account/LogOn?returnUrl=/Home/AboutSatur galveno lapu. Uzbrukums notiek šādi:

  • Lietotājs noklikšķina uz ļaunprātīgas saites uzhttp://contoso.com/Account/LogOn?returnUrl=http://contoso1.com/Account/LogOn(Otrais URL ir "contoso1.com", nevis "contoso.com”) 。
  • Lietotājs veiksmīgi piesakās.
  • Lietotājs tiek novirzīts uz vietnihttp://contoso1.com/Account/LogOn(Ļaunprātīga vietne, kas izskatās tieši tāda pati kā īstā).
  • Lietotājs piesakās vēlreiz (sniedzot akreditācijas datus ļaunprātīgajai vietnei) un tiek novirzīts atpakaļ uz reālo vietni.
  • Lietotāji var domāt, ka pirmais pieteikšanās mēģinājums neizdevās un otrais mēģinājums bija veiksmīgs.Iespējams, ka lietotāji joprojām nezina, ka viņu akreditācijas dati ir apdraudēti




Papildus galvenajām lapām dažas vietnes piedāvā novirzīšanas lapas vai galapunktus. Pieņemsim, ka jūsu lietotnē ir lapa, kurā ir atvērta novirzīšana /Home/Redirect. Piemēram, uzbrucējs var izveidot punktu e-pasta ziņojumā[yoursite]/Home/Redirect?url=http://phishingsite.com/Home/Loginsaikne. Parastie lietotāji redzēs, ka URL sākas ar jūsu vietnes nosaukumu. Uzticības dēļ viņi noklikšķina uz saites. Atveriet novirzījumus, pēc tam nosūtiet lietotājus uz pikšķerēšanas vietnēm, kas izskatās tādas pašas kā jūsu, un lietotāji var pieteikties vietnēs, kuras viņi uzskata par jūsu.

Atklātu novirzīšanas uzbrukumu novēršana

Izstrādājot tīmekļa lietojumprogrammas, visi lietotāja sniegtie dati tiek uzskatīti par neuzticamiem. Ja jūsu lietotnē ir iespēja novirzīt lietotājus, pamatojoties uz URL saturu, pārliecinieties, ka šāda novirzīšana tiek veikta tikai lokāli jūsu lietotnē (vai novirzīt uz zināmiem URL, nevis uz vaicājuma virknē norādītajiem URL).

Vietējā novirzīšana

Kontrollera palīga metodes izmantošana LocalRedirect bāzes klasē:

Ja ir norādīts URL, kas nav lokāls, LocalRedirect rada izņēmumu. Pretējā gadījumā tā darbojas tāpat kā novirzīšanas metode. Izņēmuma informācija ir šāda:

InvalidOperationException: The supplied URL is not local. A URL with an absolute path is considered local if it does not have a host/authority part. URLs using virtual paths ('~/') are also local.
Avota kods ir šāds:



Izpildes process: LocalRedirect -> LocalRedirectResult -> IActionResultExecutor<LocalRedirectResult> -> LocalRedirectResultExecutor -> UrlHelper -> IsLocalUrl -> CheckIsLocalUrl, un galu galā IsLocalUrl tiks aicināts spriest (UrlHelperFactory pēc noklusējuma ievieš IUrlHelperFactory interfeisu. )。

Avota koda adrese:Hipersaites pieteikšanās ir redzama.

IsLocalUrl

IsLocalUrl pirms novirzīšanas pārbaudiet URL, izmantojot šo metodi:

Kods ir šāds:

Testa kods ir šāds:



Ja jums ir atļauts pāriet uz citām domēna nosaukumu vietnēm, varat ieviest IUrlHelperFactory interfeisu un modificēt IServiceCollection, lai aizstātu noklusējuma ieviešanas klasi, startējot programmu.

Atsauce:Hipersaites pieteikšanās ir redzama.

(Beigas)





Iepriekšējo:Docker veido attēlus uz Windows sistēmām
Nākamo:[Turn] (MSSQL) SQL Server datu bāzes int un guid primārās atslēgas salīdzināšanai
 Saimnieks| Publicēts 06.06.2023 21:57:12 |
ASP.NET Core (deviņpadsmit) izmanto BackgroundService, lai izpildītu fona uzdevumus
https://www.itsvse.com/thread-10591-1-1.html

ASP.NET kodols (18) Vienkāršas OutputCache izvades kešatmiņas pielāgošana
https://www.itsvse.com/thread-10583-1-1.html

ASP.NET Core (17) integrē MiniProfile lietojumprogrammu veiktspējas analīzi
https://www.itsvse.com/thread-10571-1-1.html

ASP.NET Core (16) Atkarīgs no dinamiskās reģistrācijas pakalpojumu ievadīšanas
https://www.itsvse.com/thread-10560-1-1.html

ASP.NET Core (XV) izmanto HttpClient, lai nosūtītu HTTP pieprasījumus
https://www.itsvse.com/thread-10311-1-1.html

ASP.NET Core (četrpadsmit) ir balstīts uz SkiaSharp attēlu captcha
https://www.itsvse.com/thread-10287-1-1.html

ASP.NET Core (XIII), lai noteiktu, vai tas ir Ajax pieprasījums vai nē
https://www.itsvse.com/thread-10284-1-1.html

ASP.NET Core (divpadsmit) priekšgala JS, CSS komplektēšana un saspiešana
https://www.itsvse.com/thread-10282-1-1.html

ASP.NET Core (XI) galapunkta maršruts pievieno starpprogrammatūru, lai parādītu visus DI pakalpojumus
https://www.itsvse.com/thread-10269-1-1.html

ASP.NET Detalizēts skaidrojums par konfigurācijas prioritātēm kodolā [10].
https://www.itsvse.com/thread-10265-1-1.html

ASP.NET Detalizēts skaidrojums par Core starpprogrammatūru (9).
https://www.itsvse.com/thread-9647-1-1.html

ASP.NET Swagger lietotāja interfeisa noklusējuma parametru bedre Core(8).
https://www.itsvse.com/thread-9640-1-1.html

ASP.NET Core (7) Sistēmas pirmkoda padziļināta analīze
https://www.itsvse.com/thread-9601-1-1.html

ASP.NET Core (VI) DI manuāli iegūst objektu injicēšanas metodi
https://www.itsvse.com/thread-9595-1-1.html

ASP.NET Core (pieci) ir balstīts uz CAP sadalītajiem darījumiem
https://www.itsvse.com/thread-9593-1-1.html

ASP.NET Core(4) filtra vienotā ModelState modeļa validācija
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET Core (iii) Dinamiski izveidojiet instances, izmantojot ActivatorUtilities
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET kodols (2) Restartējiet lietojumprogrammu pēc koda
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) izmanto Redis kešatmiņu
https://www.itsvse.com/thread-9393-1-1.html
 Saimnieks| Publicēts 06.06.2023 22:01:21 |
Metode IsLocalUrl tiek pārnesta uz .NET struktūru šādi:

Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com