信息安全技术实用教程-第4版---张同光---ISBN-9787121423031---6.1.5实例——使用SQLmap进行SQL注入
信息安全技术实用教程-第4版---张同光---ISBN-9787121423031---6.1.5实例——使用SQLmap进行SQL注入
https://www.cnblogs.com/ztguang/p/12828764.html
主 编: 张同光
ISBN号: 978-7-121-42303-1 9787121423031
出版日期: 2021-11-20
出版社: 电子工业出版社
页码: 定价:¥69.80元
6.1.5 实例——使用SQLmap进行SQL注入
1.实验环境
实验环境如图6.26所示,使用宿主机(Windows 10)、虚拟机KaliLinux(攻击机)、虚拟机WinXPsp3(目标机),KaliLinux和WinXPsp3虚拟机的网络连接方式选择“仅主机(Host-Only)网络”。KaliLinux虚拟机有两块网卡,为了能够访问互联网,第二块网卡设置为NAT。从宿主机将文件xampp-win32-1.8.2-6-VC9-installer.exe、DVWA-20200503.zip拖放到目标机中。
图6.26 实验环境
本书配套资源中包含xampp-win32-1.8.2-6-VC9-installer.exe,读者可以从https://nchc.dl.sourceforge.net/project/xampp/XAMPP%20Windows/1.8.2/xampp-win32-1.8.2-6-VC9-installer.exe下载。XAMPP(X系统+Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包,可以在Windows、Linux、Mac OS等多种操作系统下安装使用。免去了开发人员将时间花费在繁琐的配置环境过程,从而腾出更多精力去做开发。
本书配套资源中包含DVWA-20200503.zip,读者可以从http://www.dvwa.co.uk/下载最新版。DVWA(Dam Vulnerable Web Application)是用PHP和Mysql编写的一套用于常规WEB漏洞教学和检测的WEB脆弱性测试程序。DVWA很容易受到攻击,其主要目标是帮助专业安全人员在自建环境中测试他们的技能和工具,帮助Web开发人员更好地了解保护Web应用程序的过程,通过简单直接的界面练习一些最常见的Web漏洞。DVWA共有十个模块,分别是:1)Brute Force(暴力(破解);2)Command Injection(命令行注入);3)CSRF(跨站请求伪造);4)File Inclusion(文件包含);5)File Upload(文件上传);6)Insecure CAPTCHA (不安全的验证码);7)SQL Injection(SQL注入);8)SQL Injection(Blind)(SQL盲注);9)XSS(Reflected)(反射型跨站脚本);10)XSS(Stored)(存储型跨站脚本)。同时每个模块的代码都有4种安全等级:Low、Medium、High、Impossible。通过从低难度到高难度的测试并参考代码变化可帮助读者更快的理解漏洞的原理。
本实验的目的是使用SQLmap枚举Mysql用户名与密码、枚举所有数据库、枚举指定数据库的数据表、枚举指定表中的所有用户名与密码。
2.安装XAMPP
在目标机(WinXPsp3)双击xampp-win32-1.8.2-6-VC9-installer.exe安装XAMPP,安装位置是C:\xampp,安装组件选择默认安装,如图6.27所示,安装完成后,出现XAMPP控制面板窗口,如图6.28所示,单击“Start”按钮,开启Apache和MySQL服务。
3.安装DVWA
在目标机(WinXPsp3),右键单击桌面DVWA-20200503.zip文件,将其解压到C:\xampp\htdocs,然后将DVWA-master命名为dvwa,因此DVWA的安装位置是C:\xampp\htdocs\dvwa。
在IE浏览器的地址栏中输入http://127.0.0.1/dvwa/并访问,会显示一个数据库设置页面,如图6.29所示。
将文件C:\xampp\htdocs\dvwa\config\config.inc.php.dist改名为config.inc.php,文件中$_DVWA['db_password']='p@ssw0rd'修改为$_DVWA['db_password']='',保存config.inc.php文件,如图6.30所示。
在图6.28中,重启Apache服务。回到浏览器(如图6.29所示),单击页面下方的“Create/Reset Database”按钮,进入登录页面,如图6.31所示。输入默认用户名/密码(admin/password),进入Web应用程序,如图6.32所示。
4.使用SQLmap进行SQL注入
下面操作都在攻击机(KaliLinux)中进行。
第1步:获得当前会话Cookie等信息
在Firefox浏览器中依次选择菜单栏“Tools”→“Add-ons”,在搜索栏里输入Tamper Data,从搜索结果中选择Tamper Data安装,如图6.33所示。
图6.33 安装插件Tamper Data
在Firefox浏览器的地址栏中输入http://192.168.56.102/dvwa/并访问,输入默认用户名/密码(admin/password),登录Web应用程序,为方便实验,将DVWA安全等级设置为Low,如图6.34所示。使用SQLmap之前,需要获得当前会话Cookie等信息,用来在渗透过程中维持连接状态。单击图6.34右上角的“Tamper Data”按钮,弹出窗口如图6.35所示,单击“Yes”按钮,启动插件Tamper Data。再次回到如图6.34所示页面,单击“F5”刷新页面,弹出窗口如图6.36所示,得到当前的Cookie为“security=low; PHPSESSID=b8fkg76oubth7bv28euhttnit5”。再次单击图6.34右上角的“Tamper Data”按钮,停止插件Tamper Data的运行。
图6.34 设置DVWA安全等级为Low
图6.35 启动插件Tamper Data
图6.36 获得当前会话Cookie等信息
第2步:获得目标页面
单击图6.34左侧栏的SQL Injection,接下来进入页面的“SQL Injection”部分,输入任意值(asd)并提交,如图6.37所示。
图6.37 获得目标页面URL
可以看到get请求的ID参数(在浏览器地址栏)如下,这就是所需目标页面的URL。
http://192.168.56.102/dvwa/vulnerabilities/sqli/?id=asd&Submit=Submit#
第3步:初步验证网站是否可以进行SQL注入
执行如下命令初步验证网站是否可以进行SQL注入,结果如图6.38所示。
sqlmap -u "http://192.168.56.102/dvwa/vulnerabilities/sqli/?id=asd&Submit=Submit#" --cookie="security=low;PHPSESSID=b8fkg76oubth7bv28euhttnit5"
图6.38 初步验证网站是否可以进行SQL注入
第4步:检索当前数据库和当前用户