2010-06-24 20 views
5

बस उन लोगों से इनपुट प्राप्त करना चाहते हैं जो जानते हैं। मैं सीएसआरएफ भेद्यता पर विचार कर रहा था, और प्रतीत होता है कि यह सबसे लोकप्रिय तरीका है जिसे मैं इसके खिलाफ लड़ने के लिए जानता हूं। यह तरीका लौटा एचटीएमएल में टोकन बनाना और एक ही मूल्य के साथ एक कुकी जोड़ना है। तो यदि कोई स्क्रिप्ट एक पोस्ट करने का प्रयास करती है तो वे सफल होने के लिए have to guess the token thats embedded in the web page करेंगे।सीएसआरएफ भेद्यता/कुकीज़ प्रश्न

लेकिन अगर वे एक विशिष्ट वेबसाइट को लक्षित कर रहे है कि वे सिर्फ एक स्क्रिप्ट है कि

  1. पृष्ठ पर एक get (कुकी भले ही स्क्रिप्ट पर नहीं पहुंच सकता लौटा दी जाएगी कॉल उपयोग नहीं कर सकते)
  2. HTML को पार्स और टोकन
  3. उस में उस टोकन (कुकी कि वापस आया वापस भेजा जाएगा)
  4. वे सफलतापूर्वक उन ज्ञान के बिना एक फ़ॉर्म सबमिट करने के साथ एक पोस्ट कॉल हो जाता है

स्क्रिप्ट को कुकी की सामग्री को जानने की आवश्यकता नहीं है, यह केवल इस तथ्य का उपयोग कर रहा है कि कुकीज़ हर समय आगे और पीछे भेजती है।

मुझे यहां क्या याद आ रही है? यह संभव नहीं है? मुझे लगता है कि अगर आप इसके बारे में सोचते हैं तो यह बहुत डरावना है।

इस लाइन नीचे प्रश्न :)

तथ्य यह है कि कुकी की है, जो मुझे लगता है कि जिस तरह से मुख्य प्रमाणीकरण वर्तमान में हो रहा है है के आधार पर किया जाता है पर इस कमजोरी का फायदा बैंकों जवाब देने के लिए पढ़ने की आवश्यकता नहीं है।

एक अन्य समाधान जिसे मैं सोच सकता हूं प्रमाणीकरण पृष्ठ स्तर पर होना है। तो जब वे लौटाए गए HTML में लॉग इन करेंगे तो उसमें टोकन होगा। उनके द्वारा क्लिक किए जाने वाले प्रत्येक लिंक में टोकन होता है, इसलिए जब वेब सर्वर अनुरोध प्राप्त करता है तो उसके पास उपयोगकर्ता/सत्र की पहचान करने का एक तरीका होता है। इसके साथ समस्या यह है कि यदि वे इसके अलावा किसी अन्य नेविगेशन का उपयोग करते हैं तो वे 'अनधिकृत' (जैसे यूआरएल में टाइप करें) होंगे, यह यूआरएल में भी अच्छा नहीं लगेगा क्योंकि यह शायद ऐसा कुछ दिखाई देगा:

https://www.example.com/SuperSecretPage/1/123j4123jh12pf12g3g4j2h3g4b2k3jh4h5g55j3h3

लेकिन मुझे समझ नहीं है कि अगर सुरक्षा अधिक महत्वपूर्ण है, तो एक सुंदर यूआरएल दूसरे स्थान पर है।

मुझे कुकीज़ के बारे में सबकुछ पता नहीं है, लेकिन क्या होगा अगर उपयोगकर्ता एजेंट अपनी कुकीज़ के साथ थोड़ा और सावधान रहें?

उदाहरण के लिए, यदि टैब पर भेजे गए कुकीज़ को भेजा गया तो क्या होगा? हम सभी अब टैब का उपयोग कर सर्फ करते हैं, है ना? तो क्या होगा यदि कुकी का दायरा टैब था? यदि ऐसा है तो मैं अपने बैंकिंग साइट टैब 1 पर खोले गए और मैं टैब 2 पर सर्फिंग कर रहा हूँ, किसी भी स्क्रिप्ट बुला टैब 2 पर हो जाता है/पोस्ट केवल कुकीज़ टैब 2.

या क्या में उपार्जित भेजेगा कि कुकीज़ संग्रहीत किया गया/डोमेन। तो जब मैं example.com पर हूं, तो कोई भी कुकीज़ जो वापस आती है example.com कुकी संग्रह में जाती है। और फिर जब मैं www.mybankingsite.com पर हूं, तो सभी कुकीज़ mybankingsite.com संग्रह में डाल दी जाती हैं। तो अगर मैं example.com पर जाता हूं और यह एक स्क्रिप्ट चलाता है जो उपयोगकर्ता एजेंट को प्राप्त/पोस्ट करता है तो केवल example.com कुकीज़ भेज देगा। यह अनुरोधित डोमेन की कुकीज़ भेजने से अलग है। जैसे यदि एक स्क्रिप्ट example.com के वेब पेज के भीतर mybankingsite.com प्राप्त करती है तो उपयोगकर्ता एजेंट mybankingsite.com कुकीज़ नहीं भेजेगा।

मैं मैं क्या उपयोगकर्ता एजेंटों करना पर कोई नियंत्रण नहीं पता है, लेकिन मैं सिर्फ संभावनाओं

उत्तर

1

CSRF टोकन प्रति सत्र अनूठा हो गया है की खोज कर रहा हूँ। यदि एक दुर्भावनापूर्ण सर्वर एक ही पृष्ठ का अनुरोध करता है, तो उन्हें एक अलग टोकन मिलेगा। यदि वे क्लाइंट की मशीन पर जावास्क्रिप्ट के माध्यम से पृष्ठ की सामग्री का अनुरोध करने का प्रयास करते हैं, तो वही मूल नीति उन्हें रोक देगा।

4

तो मुझे लगता है कि यहां समस्या पृष्ठ की सामग्री प्राप्त करने के लिए हमलावर के प्रयास बन जाती है। प्रमाणित उपयोगकर्ता के पृष्ठ को प्राप्त करने के लिए, हमलावर को उनकी ओर से और सामग्री को पढ़ने के लिए अनुरोध भेजने में सक्षम होना चाहिए। AJAX क्रॉस-डोमेन अनुरोध नहीं भेजेगा, iframes आपको प्रतिक्रिया को पढ़ने नहीं देगा। मैं अन्य तरीकों के बारे में सोचने के लिए संघर्ष कर रहा हूं जिसमें हमलावर को सामग्री मिल जाएगी।

एक अधिक होने की संभावना हैक उपयोगकर्ता के लिए clickjacking उपयोग कर रहा है सिर्फ फ़ॉर्म सबमिट करें। यह तकनीक बहुत अधिक प्रतीत नहीं होती है। (चेतावनी:। यह सुरक्षा है, हम हमेशा गलत हो सकता है)

2

के रूप में मैं सिर्फ CSRF के साथ मेरी खुद की साइट (उत्पादन में नहीं) को हैक कर लिया इस मुद्दे पर कुछ कोड साझा करने के लिए किसी को भी देखभाल करता है। निम्नलिखित एचटीएमएल

img src = "www.goodguy.com/secure/user/delete/5" लिखने www.badguy.com/>

: सभी मैं करना पड़ा निम्नलिखित

पर था

इस क्या करता है तो व्यवस्थापक www.badguy.com/ करने के लिए चला जाता है और छवि से उपयोगकर्ताओं को ब्राउज़र www.goodguy.com/secure/user/delete/5 से एक अनुरोध करता तो व्यवस्थापक अनजाने में बस एक उपयोगकर्ता हटा दिया। यदि आप कुछ परेशानी में लूप बनाते हैं। उम्मीद है कि मैं डेटा को कभी भी अपनी स्थिति बदल नहीं सकता :) लेकिन फिर भी मुझे इसकी पसंद पसंद नहीं है।

+0

अच्छी तरह से आप केवल उस यूआरएल के लिए एक पोस्ट Http कार्रवाई को स्वीकार कर इससे बचने के सकता है, लेकिन यह एक स्क्रिप्ट उस तक पहुँच डोम है गया है और एक तत्व एक और साइट से जानकारी प्राप्त कर सकते हैं, तो आपको समझौता किया जा सकता तथ्य को खोलने करता है – Jose

संबंधित मुद्दे