新手渗透测试训练营——SQL注入

DVWA下sql注入的操作指南
学习渗透测试,一定要掌握各种漏洞的检测和利用方法。今天我们分析一下dvwa环境中sql注入从低级到高级的渗透步骤。

手动挖掘Sql注入,首先要发现注入点。以low级别为例,发现一个可以输入内容的文本框时,首先测试一下是不是存在sql注入。

Low Level
分别在文本框中输入1和1’进行测试。输入1时,回显正常,如下:
在这里插入图片描述
输入1’时,提示错误。此外,我们可以看到,我们在文本框中输入的内容会显示在url中,也就是说id参数通过get 方式传递。
在这里插入图片描述
确定了存在注入的点,就开始尝试注入。通过union select 1,2……测试该注入点可以显示的字段数。union select 1,unionselect1,2 均正常。union select1,2,3时出现报错,说明该注入点最多可以显示两个不同的字段。
在这里插入图片描述在这里插入图片描述确定该注入点可以显示的字段数之后,通过database()函数,获取当前数据库名称。当前数据库名称时“dvwa”
在这里插入图片描述
特别需要注意的是:直接用1’union selectdatabase(),user()进行注入,查看当前数据库和用户时,会报错,提示有三个单引号。这三个单引号是系统自动加上的,只要用“–”注释掉,就可以正常执行了。’–’是mysql数据库的单行注释符,而且第二个’-'后面一定要有一个空格(下面构造的SQL语句也是如此),这里它把后台添加的单引号注释掉了。用#注释时,会把submit注释掉。
在这里插入图片描述
知道当前数据库名称后,可以利用information_schema数据库获取当前数据库中存在的表。如下图所示,dvwa数据库中有两个表,分别为:guestbook和users。
在这里插入图片描述
知道当前数据库以及数据库中的表的名称之后,就可以猜解每个表中的有那些列。如下所示们可以dvwa.users表中有user和password这两组非常重要的数据。获得这个两组数据,就可以明确知道登陆用户以及该用户对用的密码。
在这里插入图片描述
用1’union select password,user fromdvwa.users — 命令查看password和 user这两列中的数据。两列中的数据如下:
在这里插入图片描述
Medium Level
ID通过下拉菜单进行选择。选择不同ID时,URL并没有任何变化。
在这里插入图片描述
那么参数id并不是通过get方式传递的。通过burpsuit抓包,看一下抓取的请求包,发现参数使用post方式传递。可以看到我们上传的id参数如下:
在这里插入图片描述
通过修改参数id后面的注入语句进行注入尝试。具体可参考low级别的渗透过程。

在用1 union select1,table_name from information_schema.table wheretable_schem=dvwa命令,尝试查找dvwa数据库中的表时提示Unknown column ‘dvwa’ in ‘where clause’。所以改用database()函数获取数据库名。Database()函数获取数据库名称时,没有出现报错。该命令显示,dvwa数据库中有两张表,分别是:guestbook和users。
在这里插入图片描述
知道dvwa中是的两个表的名字之后,继续查看每个表中包含那几个列:1 union select table_name,column_name from information-schema.columns where table_schema=database() and table_name=table_name。
在这里插入图片描述
由上一句注入测试,可以看到users表中有user和password两列。将这两列内容导出,我们就可以得到用户登录数据库。用select password,user from dvwa.users命令,查看password和user两列的内容。
在这里插入图片描述

High Level
先测试是否存在注入点。Id=1正常,id=1’时报错。可以确定存在sql注入漏洞。
在这里插入图片描述利用union selectdatabase(),user()进行注入,发现只能显示一行内容,那么可以猜测源代码中,对回显的数量,做了限制。
在这里插入图片描述
在sql命令中,用#注释,发现可以回显多行内容。那么源代码中,应该是在id参数之后,对显示的内容做了限制。#注释掉id参数后面的命令,把对回显的限制注释掉了。
在这里插入图片描述可以回显之后,后面的注入操作与low级别相同。

反过来,我们查看一下源码,可以发现,在id之后,利用limit语句限制select语句返回的数据数量。
在这里插入图片描述

*本文作者:EVA。本文属丁牛科技原创,如需转载请标明出处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值