Sql注入简单入门之-DVWA安装&使用教程
Sqlmap是一款自动化sql注入的工具,其功能强大,支持多种数据库,包括mysql,sqlserver等主流的数据库,采用独特的sql注入方法来达到自动化注入扫描漏洞的目的。
(1)python2.7版本下载
(2)sqlmap下载:http://sqlmap.org/,将sqlmap文件放在python2.7的文件夹下
(3)环境变量设置,添加sqlmap文件夹的环境变量
(4)打开命令窗口,输入sqlmap.py -h则安装成功
搭建一个包含了sql注入,xss等漏洞的测试环境以便学习sql注入知识点。
由于源码是php的则需要安装php的环境。wampserver下载安装:Apache+mysql+php集成安装环境,简化该集合环境安装配置流程,减少了环境配置的繁琐。
问题1:安装完成后打开时报错:
解决方案:因为计算机中丢失 MSVCR110.dll。尝试重新安装该程序以解决此问题。安装完成后,重启电脑即可。
如果还是弹出该错误,首先检查下下载的软件是32位的还是64位的,第二可以卸载wampserver重新下载安装即可。
问题2:wampserver本地环境启动后显示橙色不显示绿色
解决方案:80端口号被占用,修改端口号即可
将wampserver>bin>apache>apachex.xx>httpd.conf文件以下信息的端口号换成8080
Listen 0.0.0.0:80
Listen [::0]:80
改成:
Listen 0.0.0.0:8080
Listen [::0]:8080
右键图标refresh即可。
https://github.com/ethicalhack3r/DVWA
解压:
解压到运行代码的位置,即将解压的安装包放在wampserver下的www文件夹下
复制dvwa解压的路径
图标鼠标右键Apache>http.config,修改文件
添加host
c盘>windows>system>drivers>etc>hosts,文件结尾添加127.0.0.1 dvwa的域名
dvwa的域名:dvwa.localhost
即127.0.0.1 dvwa.localhost,修改时显示权限不足时,在弹出的窗口点击是即可
测试是否域名添加成功
打开命令窗口,ping dvwa.localhost
重启wampserver
打开dvwa>config>复制config文件,将文件后缀名改为php结尾
打开config.inc.php,修改用户名,密码,端口号(3306)
用户名为root,密码修改为空,端口号5432改为3306
浏览器打开
http://localhost:8080/dvwa/setup.php,进入安装界面
点击Create/Reset Database创建数据库,过会页面会自动跳转到登录页面:
数据库的登录账号和密码获取
右键dvwa图标>phpMyadmin>users表:admin/password
登录dvwa
默认的用户名和密码为:admin/password,进入到以下的页面
登录dvwa,设置安全的等级,设置为low,网站的安全等级为low时才能进行注入测试。
点击SQL injection输入注入的信息,复制注入信息后提交的url
a.sqlmap的参数格式:
sqlmap.py -u 目标地址
#不加入地址后面的#
sqlmap.py -u "http://localhost:8080/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="" --batch
查找注入点以及可注入的方式,得到数据库是mysql,以及数据库的版本,注入点的参数为id
sqlmap.py -r 保存的请求头文件
谷歌浏览器>测试的网站右键>检查
>Networks>F5重新加载网站>选中网址信息右键>copy>copy request header
在sqlmap文件夹下新建一个文本文件重新命名,将复制的头文件的信息粘贴保存
通过sqlmap获取数据库的数据
查看数据库
查找大数据库的名称为‘dvwa’
-
sqlmap.py -u 目标地址 --cookie=“” --dbs:查看数据库名称
扫描数据表
查看数据库表名称:
-
sqlmap.py -u 目标地址 --cookie=“” --table:查询出所有数据库的所有表
导出数据
-
sqlmap.py -u 目标地址 --cookie=“” --dump-all
指定数据库查询
dvma下所有数据表数据
(1)指定数据库名称查找数据表:
sqlmap.py -u 目标地址 --cookie=“” -D 数据库名称 --dump
指定dvwa数据库查找到两个表:users,guestbook,查询结果:
(2)指定数据表名称查找数据表的数据:
sqlmap.py -u 目标地址 --cookie=“” -D 数据库名称 --dump -T 数据表名称
指定查找dvwa数据库users数据表的数据查询结果:
(3)指定查询users表的表结构:
查询结果:
(4)破解密码
查询到了users表的数据后发现密码都是md5加密存储的
可以网上直接搜索md5解密,将加密后的字符解密后得到的admin用户的密码为:password
另外,也可以用sqlmap自带的字典破解密码:
在获取users数据表的过程中会出现问题选择,询问是否破解密码
最后破解密码显示为:
括号内的为破解后的密码
1、post注入参数介绍
2、如何使用post请求注入
-
sqlmap.py -u "url" --cookie="" --data=“post源码” --batch --smart
注:--batch --smart启发式判断,batch自动执行yes,smart智能判断
post源码的获取:
(1)dvwa网站>xss stored>输入参数点击提交
(2)复制提交后的url
(3)谷歌浏览器>测试的网站右键>检查>Network,复制cookie以及Form Data
选择view source复制:
(4)运行post注入测试
(5)刷新dvwa的网站查看注入的结果
sqlmap.py -l txt文件名 --batch --smart
(1)谷歌浏览器>测试的网站右键>检查>Network,Request Header>view source
(3)多个请求即批量注入,复制添加以上信息放在文件的后面,用分割符区分开保存即可