2013-07-03 5 views
17

मैंने देखा कि यह हमारे अनुरोध लॉग में आया है। वे क्या हासिल करने की कोशिश कर रहे थे?एसक्यूएल इंजेक्शन? CHAR (45,120,49,45,81,45)

पूर्ण अनुरोध स्ट्रिंग है:

properties?page=2side1111111111111 UNION SELECT CHAR(45,120,49,45,81,45),CHAR(45,120,50,45,81,45),CHAR(45,120,51,45,81,45),CHAR(45,120,52,45,81,45),CHAR(45,120,53,45,81,45),CHAR(45,120,54,45,81,45),CHAR(45,120,55,45,81,45),CHAR(45,120,56,45,81,45),CHAR(45,120,57,45,81,45),CHAR(45,120,49,48,45,81,45),CHAR(45,120,49,49,45,81,45),CHAR(45,120,49,50,45,81,45),CHAR(45,120,49,51,45,81,45),CHAR(45,120,49,52,45,81,45),CHAR(45,120,49,53,45,81,45),CHAR(45,120,49,54,45,81,45) -- /* 

संपादित करें: एक गूगल खोज कुछ भी नहीं लौटाया के रूप में उपयोगी मैं लोग हैं, जो एक ही बात का सामना करने के लिए सवाल पूछने के लिए करना चाहता था।

+0

आश्चर्यजनक रूप से यह Google में किए गए मूल खोज के लिए दूसरा परिणाम है। – roo

उत्तर

7

इस इंजेक्शन के लिए सिर्फ एक परीक्षण है। यदि कोई हमलावर आउटपुट में xQs देख सकता है तो उन्हें पता चलेगा कि इंजेक्शन संभव है।

इस विशेष क्वेरी से कोई "जोखिम" नहीं है।

किसी डेवलपर को इंजेक्शन तंत्र, प्रारूप या अर्थों पर कोई ध्यान नहीं देना चाहिए - ये उनका कोई भी व्यवसाय नहीं है।

केवल एक इंजेक्शन की सभी अनंत संख्या के लिए कारण - अनुचित रूप से स्वरूपित क्वेरी है। जब तक आपके प्रश्न ठीक से स्वरूपित होते हैं तब SQL इंजेक्शन संभव नहीं होते हैं। एसक्यूएल इंजेक्शन के तरीकों के बजाय अपने प्रश्नों पर ध्यान केंद्रित करें।

+0

"एक डेवलपर को जो भी इंजेक्शन तंत्र, प्रारूप या अर्थों पर कोई ध्यान नहीं देना चाहिए - ये उनका कोई भी व्यवसाय नहीं है।" - क्या आप विस्तार से समझा सकते हैं?मेरे लिए ऐसा लगता है कि मुझे एसक्यूएल इंजेक्शन की परवाह नहीं करनी चाहिए। या मेरा पूरा विश्वास जो भी ढांचा मैं उपयोग करता हूं उसे रखें। – roo

+0

हां, हां। यही वह है - आपको नहीं करना चाहिए। –

+0

पागलपन था! अगर लोगों को ऐसा सोचने की सलाह दी जाती है तो आपने https://github.com/colshrapnel/safemysql क्यों लिखा? – roo

5

Char() फ़ंक्शन प्रत्येक मान को पूर्णांक के रूप में व्याख्या करता है और वर्णों को उन पूर्णांक के कोड मानों के आधार पर एक स्ट्रिंग देता है। Char() के साथ, कुल मूल्यों को छोड़ दिया गया है। फ़ंक्शन का उपयोग माइक्रोसॉफ्ट एसक्यूएल सर्वर, साइबेस, और MySQL के भीतर किया जाता है, जबकि CHR() आरडीबीएमएस द्वारा उपयोग किया जाता है।

एसक्यूएल का Char() फ़ंक्शन काम में आता है जब (उदाहरण के लिए) PHP के लिए addslashes() SQL क्वेरी के भीतर सावधानी पूर्वक उपाय के रूप में उपयोग किया जाता है। Char() का उपयोग इंजेक्शन क्वेरी के भीतर उद्धरण चिह्नों की आवश्यकता को हटा देता है।

कुछ PHP कोड Char() उपयोग करने के समान लगेगा एक एसक्यूएल इंजेक्शन की चपेट में का एक उदाहरण निम्नलिखित:

$uname = addslashes($_GET['id']); 
$query = 'SELECT username FROM users WHERE id = ' . $id; 

जबकि addslashes() इस्तेमाल किया गया है, स्क्रिप्ट ठीक से इनपुट स्वच्छ विफल रहता है के रूप में वहाँ कोई अनुगामी उद्धरण है निशान। यह /etc/passwd फ़ाइल को लोड करने के लिए निम्न एसक्यूएल इंजेक्शन स्ट्रिंग का उपयोग शोषण किया जा सकता है:

स्रोत: http://hakipedia.com/index.php/SQL_Injection#Char.28.29

+0

इंजेक्शन के लिए अच्छा परिचय लेकिन वास्तव में सवाल का जवाब नहीं देता है, जो कि "_pepecific_ एसक्यूएल क्या करने की कोशिश कर रहा था?" – paxdiablo

+0

मुझे उन विशिष्ट एसक्यूएल में दिलचस्पी है जो वे निष्पादित करने की कोशिश कर रहे थे, लेकिन यह भी कैसे काम कर सकता है। चूंकि एक Google खोज ने कुछ भी उपयोगी नहीं किया, इसलिए मैं उन लोगों के लिए चर्चा शुरू करना चाहता था जो खतरे में पड़ सकते थे। – roo

+0

@roo, चर्चा वास्तव में नहीं है जो SO के लिए है। यदि आप कह रहे हैं कि आप जानना चाहते हैं कि वर्तमान हमला कैसे काम करेगा (और ऐसा लगता है कि यह मामला यहां है), यह एक और मामला है। लेकिन चर्चा शुरू करने की इच्छा प्रश्नों को बंद और हटाए जाने की संभावना है। – paxdiablo

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