Kā uzlauzt vietni: tīmekļa vietņu uzlaušanas piemērs

Satura rādītājs:

Anonim

Vairāk cilvēku piekļūst internetam nekā jebkad agrāk. Tas ir pamudinājis daudzas organizācijas izstrādāt tīmekļa lietojumprogrammas, kuras lietotāji tiešsaistē var izmantot, lai mijiedarbotos ar organizāciju. Slikti uzrakstītu tīmekļa lietojumprogrammu kodu var izmantot, lai iegūtu nesankcionētu piekļuvi sensitīviem datiem un tīmekļa serveriem.

Šajā apmācībā jūs uzzināsiet, kā uzlauzt vietnes, un mēs jūs iepazīstināsim ar tīmekļa lietojumprogrammu uzlaušanas paņēmieniem un pretpasākumiem, kurus varat ieviest, lai aizsargātu pret šādiem uzbrukumiem .

Šajā apmācībā aplūkotās tēmas

  • Kas ir tīmekļa lietojumprogramma? Kas ir tīmekļa draudi?
  • Kā aizsargāt savu vietni pret uzlaušanu?
  • Vietņu uzlaušanas triki: uzlauzt vietni tiešsaistē!

Kas ir tīmekļa lietojumprogramma? Kas ir tīmekļa draudi?

Tīmekļa lietojumprogramma (aka vietne) ir lietojumprogramma, kuras pamatā ir klienta-servera modelis. Serveris nodrošina piekļuvi datu bāzei un biznesa loģiku. Tas tiek mitināts tīmekļa serverī. Klienta lietojumprogramma darbojas klienta tīmekļa pārlūkprogrammā. Tīmekļa lietojumprogrammas parasti tiek rakstītas tādās valodās kā Java, C # un VB.Net, PHP, ColdFusion Markup Language utt. Tīmekļa lietojumprogrammās izmantotie datu bāzu motori ietver MySQL, MS SQL Server, PostgreSQL, SQLite utt.

Lielākā daļa tīmekļa lietojumprogrammu tiek mitinātas publiskos serveros, kuriem var piekļūt, izmantojot internetu. Tas padara viņus neaizsargātus pret uzbrukumiem vieglās pieejamības dēļ. Tālāk ir izplatīti tīmekļa lietojumprogrammu draudi.

  • SQL Injection - šo draudu mērķis varētu būt apiet pieteikšanās algoritmus, sabotēt datus utt.
  • Pakalpojumu uzbrukumu liegšana - šo draudu mērķis varētu būt liegt likumīgiem lietotājiem piekļuvi resursam
  • Cross Site Scripting XSS - šo draudu mērķis varētu būt ievadīt kodu, kuru var izpildīt klienta puses pārlūkprogrammā.
  • Saindēšanās ar sīkfailiem / sesijām - šo draudu mērķis ir mainīt uzbrucēja sīkdatnes / sesijas datus, lai iegūtu nesankcionētu piekļuvi.
  • Veidlapas iejaukšanās - šo draudu mērķis ir modificēt veidlapas datus, piemēram, cenas e-komercijas lietojumprogrammās, lai uzbrucējs varētu saņemt preces par pazeminātām cenām.
  • Code Injection - šo draudu mērķis ir ievadīt serverī izpildāmu kodu, piemēram, PHP, Python utt. Kods var instalēt aizmugurējās durvis, atklāt slepenu informāciju utt.
  • Aptraipīšana - šo draudu mērķis ir modificēt vietnē parādīto lapu un novirzīt visus lapu pieprasījumus uz vienu lapu, kurā ir uzbrucēja ziņojums.

Kā aizsargāt savu vietni pret uzlaušanu?

Organizācija var pieņemt šādu politiku, lai pasargātu sevi no tīmekļa servera uzbrukumiem.

  • SQL Injection - lietotāju parametru attīrīšana un validēšana pirms to iesniegšanas datu bāzē apstrādei var palīdzēt samazināt uzbrukumu iespējas, izmantojot SQL Injection. Datu bāzes motori, piemēram, MS SQL Server, MySQL utt., Atbalsta parametrus un sagatavotos paziņojumus. Tie ir daudz drošāki nekā tradicionālie SQL priekšraksti
  • Pakalpojumu atteikumu uzbrukumi - ugunsmūrus var izmantot, lai samazinātu trafiku no aizdomīgas IP adreses, ja uzbrukums ir vienkāršs DoS. Pareiza tīklu un ielaušanās detektēšanas sistēmas konfigurācija var arī palīdzēt samazināt veiksmīgas DoS uzbrukuma iespējas.
  • Vairāku vietņu skripti - galvenes, parametru, kas tiek pārsūtīti caur URL, formas parametri un slēptās vērtības validēšana un dezinficēšana var palīdzēt samazināt XSS uzbrukumus.
  • Saindēšanās ar sīkfailiem / sesijām - to var novērst, šifrējot sīkfailu saturu, pēc kāda laika tos izslēdzot, saistot sīkfailus ar klienta IP adresi, kas tika izmantota to izveidošanai.
  • Formas atlaidināšana - to var novērst, pirms lietotāja apstrādes validējot un pārbaudot lietotāja ievadīto ievadi.
  • Koda ievadīšana - to var novērst, visus parametrus uzskatot par datiem, nevis par izpildāmo kodu. Lai to īstenotu, var izmantot sanitizāciju un apstiprināšanu.
  • Aptraipīšana - labai tīmekļa lietojumprogrammu izstrādes drošības politikai būtu jānodrošina, ka tā aizlīmē bieži izmantotās vājās vietas, lai piekļūtu tīmekļa serverim. Tā var būt pareiza operētājsistēmas, tīmekļa servera programmatūras konfigurācija un vislabākā drošības prakse, izstrādājot tīmekļa lietojumprogrammas.

Vietņu uzlaušanas triki: uzlauzt vietni tiešsaistē

Šajā tīmekļa vietnes uzlaušanas praktiskajā scenārijā mēs nolaupīsim tīmekļa lietojumprogrammas lietotāja sesiju, kas atrodas vietnē www.techpanda.org. Mēs izmantosim vairāku vietņu skriptu, lai nolasītu sīkfailu sesijas id, pēc tam izmantosim, lai atdarinātu likumīgas lietotāja sesijas.

Pieņemtais pieņēmums ir tāds, ka uzbrucējam ir piekļuve tīmekļa lietojumprogrammai un viņš vēlas nolaupīt citu lietotāju sesijas, kuri izmanto to pašu lietojumprogrammu. Šī uzbrukuma mērķis varētu būt administratora piekļuve tīmekļa lietojumprogrammai, pieņemot, ka uzbrucēja piekļuves konts ir ierobežots.

Darba sākšana

  • Atveriet vietni http://www.techpanda.org/
  • Prakses nolūkos ir ļoti ieteicams piekļūt, izmantojot SQL Injection. Skatiet šo rakstu, lai iegūtu vairāk informācijas par to, kā to izdarīt.
  • Pieteikšanās e- pasta adrese ir Šī e-pasta adrese ir aizsargāta no mēstuļu robotiem. Lai to aplūkotu, jums ir jābūt aktivizētam JavaScript. Parole ir Password2010
  • Ja esat veiksmīgi pieteicies, jūs saņemsiet šādu informācijas paneli
  • Noklikšķiniet uz Pievienot jaunu kontaktu
  • Kā vārdu ievadiet šo

Tumšs

ŠEIT,

Iepriekš minētais kods izmanto JavaScript . Tas pievieno hipersaiti ar notikumu onclick . Kad nenojaušais lietotājs noklikšķina uz saites, notikums izgūst PHP sīkfailu sesijas ID un nosūta to uz lapu snatch_sess_id.php kopā ar sesijas ID vietrādī URL

  • Ievadiet atlikušo informāciju, kā parādīts zemāk
  • Noklikšķiniet uz Saglabāt izmaiņas
  • Jūsu informācijas panelis tagad izskatīsies kā nākamais ekrāns
  • Tā kā starpvietņu skriptu kods tiek glabāts datu bāzē, tas tiks ielādēts katru reizi, kad lietotāji ar piekļuves tiesībām piesakās
  • Pieņemsim, ka administrators piesakās un noklikšķina uz hipersaites, kas saka Dark
  • Viņš / viņa saņems logu ar sesijas ID, kas redzams URL

Piezīme : skripts varētu nosūtīt vērtību uz kādu attālo serveri, kur tiek glabāts PHPSESSID, un lietotājs tiek novirzīts atpakaļ uz vietni, it kā nekas nebūtu noticis.

Piezīme : iegūtā vērtība var atšķirties no šīs tīmekļa lapu uzlaušanas apmācības vērtības, taču jēdziens ir tāds pats

Uzdošanās par sesiju, izmantojot Firefox un Tamper Data papildinājumu

Zemāk esošajā blokshēmā ir norādītas darbības, kas jāveic, lai pabeigtu šo vingrinājumu.

  • Šajā sadaļā jums būs nepieciešama Firefox tīmekļa pārlūkprogramma un Tamper Data papildinājums
  • Atveriet Firefox un instalējiet pievienošanu, kā parādīts zemāk esošajās diagrammās
  • Meklējiet datus par viltojumiem, pēc tam noklikšķiniet uz instalēšanas, kā parādīts iepriekš
  • Noklikšķiniet uz Pieņemt un instalēt ...
  • Kad instalēšana ir pabeigta, noklikšķiniet uz Restartēt tūlīt
  • Iespējojiet Firefox izvēlņu joslu, ja tā netiek parādīta
  • Noklikšķiniet uz izvēlnes Rīki, pēc tam atlasiet Tamper Data, kā parādīts zemāk
  • Jūs saņemsiet šādu logu. Piezīme: Ja Windows nav tukšs, nospiediet pogu Notīrīt
  • Noklikšķiniet uz izvēlnes Sākt viltojumu
  • Pārslēdzieties atpakaļ uz Firefox tīmekļa pārlūku, ierakstiet http://www.techpanda.org/dashboard.php un pēc tam nospiediet taustiņu Enter, lai ielādētu lapu
  • Jūs saņemsiet šādu uznirstošo informāciju no Tamper Data
  • Uznirstošajā logā ir trīs (3) iespējas. Opcija Tamper ļauj modificēt HTTP galvenes informāciju pirms tās iesniegšanas serverī .
  • Noklikšķiniet uz tā
  • Jūs saņemsiet šādu logu
  • Kopējiet no uzbrukuma URL nokopēto PHP sesijas ID un ielīmējiet to pēc vienādības zīmes. Jūsu vērtībai tagad vajadzētu izskatīties šādi

PHPSESSID = 2DVLTIPP2N8LDBN11B2RA76LM2

  • Noklikšķiniet uz pogas Labi
  • Jūs atkal saņemsiet uznirstošo logu Tamper dati
  • Noņemiet atzīmi no izvēles rūtiņas, kas prasa Turpināt iejaukšanos?
  • Kad esat pabeidzis, noklikšķiniet uz pogas Iesniegt
  • Jums vajadzētu redzēt informācijas paneli, kā parādīts zemāk

Piezīme : mēs nepiesakāmies, mēs atdarinājāmies pieteikšanās sesijai, izmantojot PHPSESSID vērtību, kuru ieguvām, izmantojot vairāku vietņu skriptu

Kopsavilkums

  • Tīmekļa lietojumprogrammas pamatā ir servera-klienta modelis. Klienta puse izmanto tīmekļa pārlūkprogrammu, lai piekļūtu servera resursiem.
  • Tīmekļa lietojumprogrammas parasti ir pieejamas internetā. Tas padara viņus neaizsargātus pret uzbrukumiem.
  • Tīmekļa lietojumprogrammu draudi ietver SQL Injection, Code Injection, XSS, Defacement, saindēšanos ar sīkfailiem utt.
  • Laba drošības politika, izstrādājot tīmekļa lietojumprogrammas, var palīdzēt tās padarīt drošas.